Loading...

文章背景图

Capstone:开源多架构反汇编引擎安装与使用指南

2026-10-27
2
- 字
- 分钟
|

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 仓库封面

二、官方图片

上图为 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

  1. master 分支还能用吗? README 明确 master 已弃用,后续开发基于 next 分支。新克隆请用 git clone -b next https://github.com/capstone-engine/capstone。

  2. Python 怎么装? 直接 pip install capstone,官方在 PyPI 发布。验证 import capstone 不报错即可。

  3. 支持哪些 CPU 架构? README 列出 ARM、ARM64、Mips、X86/X86_64、PPC、Sparc、SystemZ、TMS320C64X 等。选架构时用对应的 CS_ARCH_* 常量,并配合正确的 CS_MODE_*。

  4. Capstone 能反汇编任意二进制吗? 它按你指定的架构与模式反汇编给定机器码片段。你需要先知道目标代码是哪种架构(X86/ARM 等)和 32/64 位模式,否则反汇编结果无意义。

  5. 它和 angr 是什么关系? angr(符号执行框架)底层使用 Capstone 做反汇编、unicorn 做模拟执行。两者常配合使用,但 Capstone 是独立的底层反汇编库。

  6. 许可证是什么? BSD 许可证。再分发二进制或源码时需随产品附上 LICENSE.TXT。

七、跳转链接

评论交流

文章目录