Capstone框架是一款轻量、多平台、多架构的反汇编引擎。
Capstone开发团队的目标是为二进制分析提供一款全能的反汇编引擎。
Capstone的特性
- 支持多架构:Arm, Arm64 (Armv8), BPF, Ethereum Virtual Machine, M68K, M680X,Mips,MOS65XX,PowerPC, RISCV, Sparc, SystemZ, TMS320C64X, Web Assembly, XCore & X86 (include X86_64)
- 简单易用的API(C/C++、Python、Rust、..)
- 支持指令细节反汇编
- 支持提供指令的语义信息(例如隐式读写的寄存器信息)
粗粒度,反汇编出来的,如ida的指令
细粒度,显式/隐式的读写了那些寄存器,那些内存,指令所属的分类,各种寻址以及寻址内部的细节,比如各种偏移量的系数
from capstone import *
CODE = b"\x55\x48\x8b\x05\xb8\x13\x00\x00"
md = Cs(CS_ARCH_X86, CS_MODE_64 + CS_MODE_LITTLE_ENDIAN)
for i in md.disasm(CODE, 0x1000):
print("0x%x:\t%s\t%s" %(i.address, i.mnemonic, i.op_str))对应的输出为
0x1000: push rbp
0x1001: mov rax, qword ptr [rip + 0x13b8]
评论(0)
暂无评论