Capstone disassembly/disassembler framework: Core (Arm, Arm64, EVM, M68K, M680X, Mips, PPC, Sparc, SystemZ, TMS320C64x, X86, X86_64, XCore) + bindings (Python, Java, Ocaml, PowerShell, Visual Basic)
Clone or download
Permalink
Failed to load latest commit information.
arch Correct use of strncpy function (#1247) Sep 15, 2018
bindings bindings: update PPC constants Sep 17, 2018
contrib merge next to master Jul 20, 2018
cstool cstool: fix memleak to prevent ASAN from complaining (#1222) Jul 24, 2018
docs fix typo, style Sep 28, 2016
include Use doxygen style comments. (#1249) Sep 17, 2018
msvc merge next to master Jul 20, 2018
packages merge next to master Jul 20, 2018
suite Avoids memory leak with fuzz driver (#1233) Aug 27, 2018
tests fix warnings on const char * discards qualifiers Jul 23, 2018
windows provide a validity check to prevent against Integer overflow conditio… Mar 13, 2017
windowsce Added documentation for building for Windows CE. Apr 12, 2016
xcode merge next to master Jul 20, 2018
.appveyor.yml rename appveyor.yml to .appveyor.yml Mar 14, 2016
.gitattributes Fix language statistics by considering *.inc files to be C files. (#1078 Jan 14, 2018
.gitignore merge next to master Jul 20, 2018
.travis.yml Revert "cleanup travis and use environment variables" Oct 9, 2017
CMakeLists.txt Fix typos. (#1248) Sep 17, 2018
COMPILE.TXT add Ethereum VM architecture Mar 31, 2018
COMPILE_CMAKE.TXT add Ethereum VM architecture Mar 31, 2018
COMPILE_MSVC.TXT merge next to master Jul 20, 2018
CREDITS.TXT merge next to master Jul 20, 2018
ChangeLog Merge branch 'v4' Jul 23, 2018
HACK.TXT M680X: Target ready for pull request (#1034) Oct 21, 2017
LEB128.h Undefined shifts (#1154) Jun 2, 2018
LICENSE.TXT a a newline to LICENSE.TXT Feb 20, 2014
LICENSE_LLVM.TXT initial import Nov 27, 2013
MCDisassembler.h 2015 Mar 4, 2015
MCFixedLenDisassembler.h 2015 Mar 4, 2015
MCInst.c Add Availability.h include to fix macOS SDK instrinsics Jun 15, 2018
MCInst.h merge next to master Jul 20, 2018
MCInstrDesc.c merge next to master Jul 20, 2018
MCInstrDesc.h merge next to master Jul 20, 2018
MCRegisterInfo.c merge next to master Jul 20, 2018
MCRegisterInfo.h merge next to master Jul 20, 2018
Makefile MacOS: do not build in Universal format by default Jul 27, 2018
MathExtras.h fix undefined shift in countLeadingZeros (#1157) Jun 3, 2018
README.md README Jul 24, 2018
RELEASE_NOTES update RELEASE_NOTES Jul 15, 2015
SStream.c merge next to master Jul 20, 2018
SStream.h merge next to master Jul 20, 2018
TODO TODO Mar 11, 2015
capstone.pc.in fixed hardcoded paths with variables. (#1018) Sep 27, 2017
config.mk add Ethereum VM architecture Mar 31, 2018
cs.c merge next to master Jul 20, 2018
cs_priv.h merge next to master Jul 20, 2018
functions.mk Makefile: put common functions into functions.mk May 1, 2014
make.sh MacOS: do not build in Universal format by default Jul 27, 2018
nmake-x86.bat fix nmake-x86.bat May 22, 2017
nmake.bat add nmake.bat Mar 13, 2017
pkgconfig.mk Python: Automatically conform to PEP440 for version numbers. ported f… Feb 1, 2017
utils.c Fix typos. (#1248) Sep 17, 2018
utils.h Fix typos. (#1248) Sep 17, 2018

README.md

Capstone Engine

Build Status Build 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), Ethereum VM, M68K, Mips, PPC, Sparc, SystemZ, TMS320C64X, M680X, XCore 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 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.

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.