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), Mips, PPC, Sparc, SystemZ, XCore and X86 (including X86_64).
Opdis is a wrapper for the libopcodes disassembler library distributed as part of GNU
binutils. It extends the libopcodes library by offering linear and control-flow disassembly algorithms, instruction and operand objects that are suitable for analysis, and a command-line utility to perform disassembly on arbitrary locations in a file.
These features are lacking in
objdump. The design of libopcodes makes it awkward to use for binary analysis; it assumes that disassembled instructions are going to be printed, not stored or analyzed, and therefore it invokes a callback with an
fprintf(3) signature. The shortcomings of
objdump are even greater: it does not support control-flow disassembly, nor does it allow the user to specify which bytes in the file to disassemble.
The Opdis project consists of the
libopdis library and the
opdis command-line utility.
Opdis supports the disassembly of all architectures that GNU
binutils supports. On most of these architectures, however, only the ASCII string for the disassembled instruction is available.
You can find more libraries here