# ghidriff Ghidra 二进制差异分析引擎

> 命令行二进制差异分析引擎，通过 pyghidra 以无界面方式驱动 Ghidra：导入并分析新旧两个版本的二进制，列出新增、删除和修改的函数，主要用于补丁比对。默认的 VersionTrackingDiff 引擎组合了多个 Ghidra 版本跟踪关联器和 BSim 匹配，另有基于符号名和结构图的较简单引擎，并提供 GhidraDiffEngine 基类供编写自定义比对器。结果以 JSON 和带 Mermaid 图表的 Markdown 输出，附有字符串、被调用与调用函数及二进制元数据的元差异，也可另外生成并排对照的 HTML。

- 类型：工具
- 目标：二进制 · 固件
- 类别：二进制对比工具
- 关联：基础工具
- 来源复核于：2026-10-19
- 收录于：2026-10-19
- 原始资源：<https://github.com/clearbluejar/ghidriff>
- 一手来源：<https://github.com/clearbluejar/ghidriff/blob/4f5d895fcbb1eacd65efd81145922c15bb7e741d/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/ghidriff/>
- 记录 JSON：<https://awesomerea.org/resources/ghidriff/record.json>
- 英文版：[English](https://awesomerea.org/resources/ghidriff/index.md)

## 使用条件与局限

- 审阅时最新版本为 v1.0.0，于 2025-07-04 发布到 GitHub 和 PyPI，要求 Python 3.9+ 和 pyghidra 2.0+。所审阅的 main 分支提交合并于 2026-05-11，比该版本多六个提交，版本号仍为 1.0.0：它要求 Python 3.10+ 和 pyghidra 3.x，以 Ghidra 12.0.4 为目标版本，运行其他版本的 Ghidra 或 pyghidra 时会记录警告。setup.cfg 将该软件包标为 Alpha 阶段。
- 需安装 Ghidra 及该版本支持的 JDK，设置 GHIDRA_INSTALL_DIR，再用 pip 或 uvx 安装；README 介绍了 Windows、Linux 和 macOS 上的配置，其 x64/arm64 Docker 镜像内置 PyPI 发布版，无需在主机上安装 Ghidra 和 Java。分析大型二进制时可能需要调高 JVM 内存占比。
- 需提供同一二进制的两个或更多版本，按从旧到新的顺序排列，多个新版本时可附加汇总；凡是 Ghidra 能导入和分析的文件都可比较，并可为固件或引导程序镜像指定基址、自定义分析器选项和 GDT 类型库。支持平台页面指出原生代码效果最好，托管 .NET 代码结果不一，APK 中的原生库需先取出。预检若发现两个程序的处理器语言不同，或符号数量相差 4,000 个及以上，就会中止比对，除非指定 --force-diff。默认会配置 Ghidra 内置的知名 PDB 符号服务器和本地符号库，可用 --no-symbols 关闭。
- 采用 GPL-3.0 许可。匹配质量取决于 Ghidra 的分析和反编译结果。README 的用例和文档站的示例差异报告针对另行获取的 Windows 和 macOS 系统二进制；仓库本身不附带任何目标二进制。

## 一手来源

1. <https://github.com/clearbluejar/ghidriff/blob/4f5d895fcbb1eacd65efd81145922c15bb7e741d/README.md>
2. <https://github.com/clearbluejar/ghidriff/blob/4f5d895fcbb1eacd65efd81145922c15bb7e741d/README.md#L282-L315>
3. <https://github.com/clearbluejar/ghidriff/blob/4f5d895fcbb1eacd65efd81145922c15bb7e741d/setup.cfg>
4. <https://github.com/clearbluejar/ghidriff/blob/4f5d895fcbb1eacd65efd81145922c15bb7e741d/ghidriff/ghidra_diff_engine.py#L205-L226>
5. <https://github.com/clearbluejar/ghidriff/blob/4f5d895fcbb1eacd65efd81145922c15bb7e741d/ghidriff/ghidra_diff_engine.py#L845-L876>
6. <https://github.com/clearbluejar/ghidriff/blob/4f5d895fcbb1eacd65efd81145922c15bb7e741d/ghidriff/ghidra_diff_engine.py#L1453-L1474>
7. <https://github.com/clearbluejar/ghidriff/blob/4f5d895fcbb1eacd65efd81145922c15bb7e741d/www/docs/README/Supported%20Platforms.md>
8. <https://github.com/clearbluejar/ghidriff/blob/4f5d895fcbb1eacd65efd81145922c15bb7e741d/docs/progress-log.md>
9. <https://github.com/clearbluejar/ghidriff/blob/4f5d895fcbb1eacd65efd81145922c15bb7e741d/LICENSE>
10. <https://github.com/clearbluejar/ghidriff/releases/tag/v1.0.0>
11. <https://pypi.org/project/ghidriff/1.0.0/>

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

- [Ddisasm Datalog 可重汇编反汇编器](https://awesomerea.org/zh/resources/ddisasm/index.md) · 工具
- [PINCE GDB 前端与内存分析工具](https://awesomerea.org/zh/resources/pince/index.md) · 工具
- [uncompyle6 跨版本 Python 字节码反编译器](https://awesomerea.org/zh/resources/uncompyle6/index.md) · 工具
- [ret-sync 调试器与反汇编器同步插件](https://awesomerea.org/zh/resources/ret-sync/index.md) · 工具
- [PyInstaller Extractor（pyinstxtractor）PyInstaller 程序提取工具](https://awesomerea.org/zh/resources/pyinstxtractor/index.md) · 工具
- [BAP 二进制分析平台](https://awesomerea.org/zh/resources/bap/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
