Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), Alpha, BPF, Ethereum VM, HPPA, LoongArch, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.
Go to file
Keegan Saunders aff05e613a
Option to generate install target (#1700)
Co-authored-by: meme <meme@users.noreply.github.com>
2020-10-28 23:34:48 +08:00
.github/workflows CIFuzz action (#1590) 2020-02-24 10:21:08 +08:00
arch Two RISC-V fixes (#1682) 2020-09-16 17:04:18 +08:00
bindings Added export for Python CS_MODE_RISCVC binding (#1691) 2020-09-18 22:34:35 +08:00
contrib Constify backends (#1549) 2019-12-23 20:30:57 +08:00
cstool systemz: pad instruction width up to 6 bytes (#1679) 2020-09-16 17:03:34 +08:00
docs Update README (#1534) 2019-08-30 23:39:52 +08:00
include include: avoid UB with signed overflow/shift (#1675) 2020-09-16 17:03:28 +08:00
msvc msvc: Add more test projects. (#1446) 2019-03-24 11:37:09 +08:00
packages merge next to master 2018-07-20 12:36:50 +08:00
suite x86: fix testcase of MOVSD 2020-05-07 21:51:54 +08:00
tests tests: fix typo in test_detail.c 2019-08-15 15:28:15 +08:00
windows Fix user data alignment in MEMBLOCK (#1471) 2019-05-09 10:24:47 +08:00
windowsce Added documentation for building for Windows CE. 2016-04-12 09:26:47 +02:00
xcode merge next to master 2018-07-20 12:36:50 +08:00
.appveyor.yml rename appveyor.yml to .appveyor.yml 2016-03-15 00:01:10 +08:00
.clang-format Update AARCH64 to ARMv8.1-4 (minus tablegen stuff) (#1425) 2019-03-18 13:29:45 +08:00
.editorconfig Add editorconfig to maintain consistent style (#1486) 2019-05-18 19:30:55 +07:00
.gitattributes Fix language statistics by considering *.inc files to be C files. (#1078) 2018-01-14 20:42:20 +08:00
.gitignore fix for make.sh for android (#1523) 2019-07-29 10:32:03 +08:00
.travis.yml Fuzzit integration (#1520) 2019-07-25 09:06:52 +08:00
capstone-config.cmake.in Add cmake config and export targets. (#1637) 2020-06-02 20:58:33 +08:00
capstone.pc.in capstone.pc.in: use CMAKE_INSTALL_LIBDIR for libdir (#1659) 2020-07-19 17:08:47 +08:00
ChangeLog ChangeLog 2019-01-10 13:18:49 +08:00
cmake.sh fix cmake.sh 2019-04-29 21:17:34 +08:00
CMakeLists.txt Option to generate install target (#1700) 2020-10-28 23:34:48 +08:00
COMPILE_CMAKE.TXT [RISCV] Use CS_ASSERT (#1493) 2019-05-23 08:25:36 +07:00
COMPILE_MSVC.TXT Add vcpkg installation instructions (#1602) 2020-03-24 16:29:17 +08:00
COMPILE.TXT Update top-level COMPILE.TXT file (#1578) 2020-01-01 09:53:16 +08:00
config.mk RISCV support ISRV32/ISRV64 (#1401) 2019-03-09 08:41:12 +08:00
CREDITS.TXT Update AARCH64 to ARMv8.1-4 (minus tablegen stuff) (#1425) 2019-03-18 13:29:45 +08:00
cs_priv.h [M680X] Fix #1483: errors logged to stderr, using abort (2) (#1489) 2019-05-20 10:22:27 +07:00
cs.c Two RISC-V fixes (#1682) 2020-09-16 17:04:18 +08:00
functions.mk Fixed 47 missing dependencies and 51 excessive dependencies in Makefile (#1522) 2019-07-29 14:15:05 +08:00
HACK.TXT Adds corpus generation for bpf architecture (#1396) 2019-02-21 10:42:31 +08:00
LEB128.h sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
LICENSE_LLVM.TXT initial import 2013-11-27 12:11:31 +08:00
LICENSE.TXT a a newline to LICENSE.TXT 2014-02-20 17:08:28 +08:00
make.sh build: add xlc and AIX support (#1559) 2019-10-31 04:02:31 +08:00
Makefile Fix Makefile CAPSTONE_BUILD_CORE_ONLY (#1617) 2020-05-05 01:12:21 +08:00
MathExtras.h sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
MCDisassembler.h sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
MCFixedLenDisassembler.h RISCV support ISRV32/ISRV64 (#1401) 2019-03-09 08:41:12 +08:00
MCInst.c MCInst: fix uninitialized value in operand value (#1685) 2020-09-16 17:06:27 +08:00
MCInst.h x86: printf64m should print qword ptr by default. TODO: fix related cases in tablegen instead 2019-06-09 01:58:03 +08:00
MCInstrDesc.c sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
MCInstrDesc.h sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
MCRegisterInfo.c sync with LLVM 7.0.1. X86 is first 2019-02-26 15:19:51 +08:00
MCRegisterInfo.h arm64: sync with LLVM 7.0.1 2019-04-10 14:17:08 +08:00
nmake.bat Add cmake option to tell whether architectures should be included by default (#1463) (#1466) 2019-04-29 19:20:01 +07:00
pkgconfig.mk next version = 5.0 2019-01-09 13:53:17 +08:00
README.md Fuzzit integration (#1520) 2019-07-25 09:06:52 +08:00
RELEASE_NOTES empty RELEASE_NOTES for v4.1 2018-12-19 07:50:18 +07:00
SPONSORS.TXT Add webassembly arch (#1359) 2019-02-01 23:03:47 +08:00
SStream.c ppc: sync with llvm 7.0.1 2019-04-30 13:50:42 +08:00
SStream.h ppc: sync with llvm 7.0.1 2019-04-30 13:50:42 +08:00
TODO TODO 2015-03-11 11:33:00 +08:00
utils.c arm64: sync with LLVM 7.0.1 2019-04-10 14:17:08 +08:00
utils.h arm64: sync with LLVM 7.0.1 2019-04-10 14:17:08 +08:00

Capstone Engine

Build Status Build status pypi package pypi downloads Fuzzit Status

Capstone is a disassembly framework with the target of becoming the ultimate disasm engine for binary analysis and reversing in the security community.

Created by Nguyen Anh Quynh, then developed and maintained by a small community, Capstone offers some unparalleled features:

  • Support multiple hardware architectures: ARM, ARM64 (ARMv8), BPF, Ethereum VM, Webassembly, M68K, Mips, MOS65XX, PPC, Sparc, SystemZ, TMS320C64X, M680X, XCore, RISC-V(rv32G/rv64G) and X86 (including X86_64).

  • Having clean/simple/lightweight/intuitive architecture-neutral API.

  • Provide details on disassembled instruction (called “decomposer” by others).

  • Provide semantics of the disassembled instruction, such as list of implicit registers read & written.

  • Implemented in pure C language, with lightweight bindings for D, Clojure, F#, Common Lisp, Visual Basic, PHP, PowerShell, Emacs, Haskell, Perl, Python, Ruby, C#, NodeJS, Java, GO, C++, OCaml, Lua, Rust, Delphi, Free Pascal & Vala ready either in main code, or provided externally by the community).

  • Native support for all popular platforms: Windows, Mac OSX, iOS, Android, Linux, *BSD, Solaris, etc.

  • Thread-safe by design.

  • Special support for embedding into firmware or OS kernel.

  • High performance & suitable for malware analysis (capable of handling various X86 malware tricks).

  • Distributed under the open source BSD license.

Further information is available at http://www.capstone-engine.org

Compile

See COMPILE.TXT file for how to compile and install Capstone.

Documentation

See docs/README for how to customize & program your own tools with Capstone.

Hack

See HACK.TXT file for the structure of the source code.

Fuzz

See suite/fuzz/README.md for more information.

License

This project is released under the BSD license. If you redistribute the binary or source code of Capstone, please attach file LICENSE.TXT with your products.