Capstone:开源多架构反汇编引擎安装与使用指南
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | https://github.com/capstone-engine/capstone |
| 官方网站 | https://www.capstone-engine.org |
| 开源协议 | BSD(BSD 2-Clause) |
| 主要语言 | C(约 91.2%) |
| Star 数 | 约 9.1k |
Capstone 是一个反汇编框架(disassembly framework),目标是成为安全社区里二进制分析与逆向的终极反汇编引擎。它由 Nguyen Anh Quynh 创建,后由小型社区维护,现已迁移到 capstone-engine 组织以便纳入更多维护者。
它的核心特点:
- 多硬件架构:ARM、ARM64(ARMv8)、Ethereum VM、M68K、Mips、MOS65XX、PPC、Sparc、SystemZ、TMS320C64X、M680X、XCore 以及 X86(含 X86_64)。
- 干净、简单、轻量、直观的架构中立 API。
- 提供反汇编指令的细节信息(其他工具称为“decomposer”)。
- 给出指令语义,例如该指令隐式读取与写入的寄存器列表。
- 用纯 C 实现,并提供 D、Python、Ruby、C#、Java、Go、Rust 等大量语言绑定。
- 线程安全、可嵌入固件或操作系统内核,性能高、适合恶意软件分析。
注意:README 说明
master分支已弃用,后续开发基于next分支。克隆时建议git clone -b next https://github.com/capstone-engine/capstone。

二、官方图片
上图为 Capstone 仓库在 GitHub 上的社交预览图。Capstone 是一个底层库,本身没有界面,通常被其他工具(如 angr、radare2、各类调试器/模拟器)链接调用,或通过其 Python 绑定直接在脚本中使用。
三、环境要求
- 操作系统:Linux / macOS / Windows(官方原生支持 Windows、macOS、iOS、Android、Linux、*BSD、Solaris)。
- Python 方式:Python 3.x,直接
pip install capstone(官方提供 PyPI 包)。 - C 编译方式:C 编译器(如 gcc/clang),按仓库内 COMPILE.TXT 编译安装。
- 内存建议 512MB 以上;反汇编本身很轻量。
四、安装步骤
方式 A:Python 绑定(最快上手)
官方在 PyPI 提供 capstone 包:
pip install capstone
验证:
python -c "import capstone; print(capstone.__version__)"
方式 B:从源码编译(C 库)
克隆时建议直接基于 next 分支:
git clone -b next https://github.com/capstone-engine/capstone
cd capstone
按仓库内 COMPILE.TXT 的说明编译并安装 C 库(典型为标准的 configure/make/make install 流程)。编译完成后,C 程序可 #include <capstone/capstone.h> 并链接 -lcapstone。
五、使用方法
1. Python 反汇编示例
Capstone 的经典用法是给定一段机器码和架构,逐条反汇编出指令:
from capstone import *
# 一段 X86 机器码
CODE = b"\x31\xc0\x90\x8d\x49\x00"
# 初始化:CS_ARCH_X86 架构,CS_MODE_32 模式
md = Cs(CS_ARCH_X86, CS_MODE_32)
for i in md.disasm(CODE, 0x1000):
print("0x%x:\t%s\t%s" % (i.address, i.mnemonic, i.op_str))
要点:
Cs(架构, 模式)创建反汇编器;架构选CS_ARCH_ARM、CS_ARCH_ARM64、CS_ARCH_MIPS、CS_ARCH_X86等,与目标二进制对应。disasm(代码, 起始地址)迭代产出每条指令,可访问mnemonic(助记符)与op_str(操作数)。
2. 获取指令语义
Capstone 可给出指令的隐式寄存器读写等细节(开启对应细节选项后),这对写模拟器、指令重写、污点分析很有用。
3. 作为底层引擎被集成
很多二进制分析工具直接以 Capstone 为反汇编后端。你也可以在自己的 C/C++/Python 工具中链接 Capstone,免去自己维护多架构反汇编器。
4. 参考文档
- 官方网站与文档:https://www.capstone-engine.org;
- 源码内
docs/README说明如何基于 Capstone 开发自己的工具; - 源码内
HACK.TXT说明源码结构。
六、常见问题 FAQ
-
master分支还能用吗? README 明确master已弃用,后续开发基于next分支。新克隆请用git clone -b next https://github.com/capstone-engine/capstone。 -
Python 怎么装? 直接
pip install capstone,官方在 PyPI 发布。验证import capstone不报错即可。 -
支持哪些 CPU 架构? README 列出 ARM、ARM64、Mips、X86/X86_64、PPC、Sparc、SystemZ、TMS320C64X 等。选架构时用对应的
CS_ARCH_*常量,并配合正确的CS_MODE_*。 -
Capstone 能反汇编任意二进制吗? 它按你指定的架构与模式反汇编给定机器码片段。你需要先知道目标代码是哪种架构(X86/ARM 等)和 32/64 位模式,否则反汇编结果无意义。
-
它和 angr 是什么关系? angr(符号执行框架)底层使用 Capstone 做反汇编、unicorn 做模拟执行。两者常配合使用,但 Capstone 是独立的底层反汇编库。
-
许可证是什么? BSD 许可证。再分发二进制或源码时需随产品附上 LICENSE.TXT。