工具
ghidrecomp 命令行 Ghidra 批量反编译工具
通过 pyghidra 驱动 Ghidra 的 Python 命令行反编译工具:把二进制中的所有函数分别反编译为独立的 C 文件,或借助 Ghidra 的 C++ 导出器生成一个 C 文件和头文件,并保留 Ghidra 项目以便后续运行复用分析结果。可按正则筛选函数,从本地文件或 Microsoft、Chromium、Mozilla、Intel、NVIDIA、AMD 符号服务器应用 PDB 符号,加载额外的 GDT 数据类型库,输出 Mermaid 调用图 Markdown,生成 BSim 函数签名,并用 Semgrep 规则扫描反编译代码、输出 SARIF 报告。
- 目标
- 二进制
- 类别
- 原生分析工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 审阅时最新版本为 v0.5.9,于 2026-01-06 发布到 PyPI 和 GitHub;所审阅的 main 分支提交即该标签。setup.cfg 要求 Python 3.10+ 和 pyghidra 2.2.1+,并将项目标为 alpha 阶段;CodeQL 选项只是占位,运行时仅提示即将推出。
- 需要另行安装 Ghidra 及其所需的 Java 运行环境,并通过 GHIDRA_INSTALL_DIR 指定位置。Dockerfile 和 devcontainer 基于作者的 ghidra-python 镜像,并在 Ghidra 11 下固定 pyghidra 2.2.1;CI 在该镜像中针对最新版 Ghidra 以及 11.3、11.3.2 和 11.4.2 运行 pytest。SAST 扫描需要 Semgrep,可通过 sast 可选依赖安装。
- 待反编译的二进制须由分析者自备;除非设置 --skip-symbols,符号查询会访问所列的公共符号服务器。测试数据附带 tests/data/afd.sys.10.0.22621.1415(一个 Microsoft Windows 驱动版本,README 示例也使用它)、一个 AArch64 ls 二进制和 ntddk_64.gdt 数据类型库;这些文件遵循各自发布者的条款。
- README 将输出定位为用于研究和分析的反编译结果,未声称可重新编译;测试检查的是函数数量、调用图、应用 GDT 后的一个函数签名、BSim 和 SAST 输出,而非反编译代码的整体准确性。采用 GPL-3.0(LICENSE);Ghidra 和 Semgrep 各自保留其许可证。本次未反编译任何二进制,所审来源未确立 REA 关联。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · clearbluejar/ghidrecomp · 修订 7a82556
- setup.cfg GitHub · clearbluejar/ghidrecomp · 修订 7a82556
- ghidrecomp/sast.py GitHub · clearbluejar/ghidrecomp · 修订 7a82556
- Dockerfile GitHub · clearbluejar/ghidrecomp · 修订 7a82556
- .github/workflows/pytest-devcontainer-all.yml GitHub · clearbluejar/ghidrecomp · 修订 7a82556
- tests GitHub · clearbluejar/ghidrecomp · 修订 7a82556
- LICENSE GitHub · clearbluejar/ghidrecomp · 修订 7a82556
- https://github.com/clearbluejar/ghidrecomp/releases/tag/v0.5.9
- https://pypi.org/project/ghidrecomp/0.5.9/
同分区更多条目:原生二进制
- Vivisect 二进制分析与调试框架 · 工具
- r2pipe radare2 多语言脚本接口 · 工具
- GREASE 欠约束符号执行二进制分析工具 · 工具
- PLASMA 交互式反汇编器 · 工具
- mobdevim iOS 设备命令行工具 · 工具
- XPEViewer PE 文件查看与编辑工具 · 工具