工具

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 关联。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · clearbluejar/ghidrecomp · 修订 7a82556
  2. setup.cfg GitHub · clearbluejar/ghidrecomp · 修订 7a82556
  3. ghidrecomp/sast.py GitHub · clearbluejar/ghidrecomp · 修订 7a82556
  4. Dockerfile GitHub · clearbluejar/ghidrecomp · 修订 7a82556
  5. .github/workflows/pytest-devcontainer-all.yml GitHub · clearbluejar/ghidrecomp · 修订 7a82556
  6. tests GitHub · clearbluejar/ghidrecomp · 修订 7a82556
  7. LICENSE GitHub · clearbluejar/ghidrecomp · 修订 7a82556
  8. https://github.com/clearbluejar/ghidrecomp/releases/tag/v0.5.9
  9. https://pypi.org/project/ghidrecomp/0.5.9/

同分区更多条目:原生二进制

原生二进制分区全部 158 项资源