Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings. (bloaty 依赖)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Nguyen Anh Quynh 9f0e6c24ae on x86_64, install libs to /usr/lib64 if /usr/lib is inexistent. bug reported by Anton Bolshakov 11 years ago
arch change API cs_disasm_dyn(): break cs_insn into 2 structures, and put all details into new structure cs_detail. this break API compatibility 11 years ago
bindings python: update to new API cs_disasm_ex() 11 years ago
include rename API cs_disasm_dyn() to cs_disasm_ex(), and intentionally breaks compatibility with 1.0 11 years ago
tests rename API cs_disasm_dyn() to cs_disasm_ex(), and intentionally breaks compatibility with 1.0 11 years ago
.gitignore python: rename some public python classes to follow python naming convention 11 years ago
COMPILE minor fix to mention *BSD rather than *nix 11 years ago
CONFIG move PKG_* away from cs.c to CONFIG 11 years ago
CREDITS.TXT CREDITS.TXT 11 years ago
HACK more notes for HACK 11 years ago
LEB128.h initial import 11 years ago
LICENSE.TXT put website address into the license file 11 years ago
LICENSE_LLVM.TXT initial import 11 years ago
MCDisassembler.h initial import 11 years ago
MCFixedLenDisassembler.h initial import 11 years ago
MCInst.c arm: fix a memory leaking bug 11 years ago
MCInst.h change API cs_disasm_dyn(): break cs_insn into 2 structures, and put all details into new structure cs_detail. this break API compatibility 11 years ago
MCInstrDesc.c initial import 11 years ago
MCInstrDesc.h initial import 11 years ago
MCRegisterInfo.c initial import 11 years ago
MCRegisterInfo.h ARM: Fix bunch of issues 11 years ago
Makefile on x86_64, install libs to /usr/lib64 if /usr/lib is inexistent. bug reported by Anton Bolshakov 11 years ago
MathExtras.h initial import 11 years ago
README minor fix for README 11 years ago
SStream.c initial import 11 years ago
SStream.h initial import 11 years ago
SubtargetFeature.h initial import 11 years ago
TODO add reducing binary size to TODO list 11 years ago
compile.sh add a note on gcc-multilib requirement for cross-compile to 'nix32' 11 years ago
config.mk initialize all_arch in constructors 11 years ago
cs.c rename API cs_disasm_dyn() to cs_disasm_ex(), and intentionally breaks compatibility with 1.0 11 years ago
cs_priv.h reduce MAX_ARCH to save some memory. this is for internal usage only, so we can increase it in future if needed without having any compatibility issue 11 years ago
utils.c size down insn_map structructure by reducing the size of some fields. this alone makes lib binary size 2.6MB smaller 11 years ago
utils.h size down insn_map structructure by reducing the size of some fields. this alone makes lib binary size 2.6MB smaller 11 years ago

README

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 (aka ARMv8), Mips & X86.

- 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 wrappers for C++, Python,
Ruby, OCaml, C#, Java and Go available.

- Native support for Windows & *nix platforms (MacOSX, Linux & *BSD confirmed).

- Thread-safe by design.

- Distributed under the open source BSD license.

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


[Compile]

See COMPILE file for how to compile and install Capstone


[Status]

- Capstone can only compile to Windows via Cygwin, or cross-compile using
MingW. Visual Studio support will be done in the future.

- X86 engine cannot handle many malware tricks yet. Please report all the raw
binary code that Capstone cannot disassemble, or does that wrongly, so we can
fix that in the next version

- This package only contains Java & Python bindings. For C#, Go, Ocaml & Ruby,
refer to the corresponding git repositories.


[Hack]

See HACK file for the structuture 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.