Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
BinDiffHelper — Ghidra 扩展,集成 BinDiff 用于函数匹配 | Kitploit
工具/GitHubGitHub/ubfx/bindiffhelper
静态分析代码分析逆向工程恶意软件分析实用工具与框架二进制分析二进制利用
GitHububfx/bindiffhelper

BinDiffHelper

Ghidra 扩展,集成 BinDiff 用于函数匹配

查看仓库
2962322天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

BinDiffHelper

Ghidra 扩展,在您的 Ghidra 项目中使用 BinDiff 来查找匹配的函数并自动重命名它们(支持 BinDiff 6、7、8)。 查看 BinDiff 手册 了解其工作原理以及如何匹配函数/基本块。不过,使用此扩展后,BinDiff 在 Ghidra 内部自动运行,因此您无需自己对比二进制文件。

请通过 GitHub 的 issue 功能报告 bug

更新日志

v0.7.1

  • 更新以支持 Ghidra 12

v0.7.0(Ghidra 版本 >= 11.4)

  • 除 Ghidra 版本兼容性外无其他更改

v0.6.4(Ghidra 版本 < 11.4)

  • 支持导出命名空间
  • 修复对比时无限挂起的问题

v0.6.3

  • 允许表格排序

v0.6.2

  • 修复在 BinDiff 8 上对比永久挂起的 bug
  • 双击符号时,在主代码列表和次代码列表中同时跟随该符号

v0.6

  • 更新 sqlite 驱动库,现在应可在 Apple 芯片上运行
  • 支持反编译函数之间的外部文本对比(参见 https://github.com/ubfx/BinDiffHelper/pull/24)
  • UI 更新

v0.5

  • 支持 BinDiff 8
  • 针对 Ghidra 11.1 发布
更早的更改 ### v0.4.3 * 针对 Ghidra 11.0 发布

v0.4.2

  • 添加导入所有函数的功能(不仅仅是表格中勾选的函数)
  • 添加切换表格中多个元素复选框的功能
  • 更新以支持 Ghidra 10.3

v0.4.1

  • 更新以支持 Gradle 7.5 和 Ghidra 10.1

v0.4.0

  • 支持 BinDiff 7 和 Ghidra 10

v0.3.2

  • 修复了使用同一项目中不同文件进行对比时无法工作的 bug
  • 修复了名称较短(少于 3 个字符)的文件无法对比的 bug

v0.3.1

  • 修复了通过“从项目”选项打开文件时崩溃的问题

v0.3

  • 在列表中为匹配的函数着色
  • 在列表中为匹配的函数添加注释,链接到另一个二进制文件
  • 修复了某些构建中缺少 protobuf 库的 bug
  • 新增文件加载菜单

v0.2

  • 修复了需要签出目标导入文件的 bug。
  • 增大项目文件选择对话框的尺寸

v0.1

  • 将 Ghidra 中打开的二进制文件与同一 Ghidra 项目中的另一个二进制文件进行 BinDiff 对比,显示结果并导入函数名称
  • 打开由 BinDiff 6 从两个 .BinExport 文件创建的 BinDiff 文件,并在 Ghidra 中导入匹配的函数名称

如何安装

如果与您的 Ghidra 版本兼容,可以从 release 下载 .zip 文件,否则请参阅下方的 如何构建。

  1. 打开 Ghidra
  2. 在 主窗口 中:转到 File->Install Extensions...
  3. 点击右上角的 + 按钮并选择 BinDiffHelper zip 文件
  4. 关闭插件管理器。重启 Ghidra 以加载新插件
  5. 参阅下方的 使用方法

推荐的其他工具

  • BinExport 插件 二进制文件 或从 源码 为您的特定 Ghidra 版本编译
  • BinDiff (https://zynamics.com/software.html)

没有这些工具,您将只能导入 .BinDiff 文件,而无法从 Ghidra 项目自动导出和对比

使用方法

确保插件已在代码浏览器中加载,方法是在 Ghidra 中打开一个文件,然后在 代码浏览器 中转到 File->Configure

点击右上角的小插头图标:

Configure tool

并确保 BinDiffHelperPlugin 旁边的复选框已勾选。

Configure plugins

导入外部 .BinDiff

相应的 .BinExport 文件需要位于同一文件夹中。

在代码浏览器中打开您想要导入名称的文件,然后转到 Window->BinDiffHelper Open BinDiffHelper

使用 Open from BinDiff 按钮或菜单项,选择您的 .BinDiff 文件。

Example import

选择您想要导入的所有函数名称,然后点击右上角的 Import function names 按钮或菜单项。

在 Ghidra 项目中的文件之间进行对比

转到 Window->BinDiffHelper,确保没有关于 BinExport 或 BinDiff 的警告,然后点击 Open from project 按钮。

从树中选择另一个文件并点击 OK。

Example project import

如何构建

要求:

  • Ghidra 安装 (https://ghidra-sre.org) 或从源码编译
  • 某个 jdk。根据您的 Ghidra 构建方式以及您使用的其他插件,可能存在某些限制。我推荐使用 Temurin 21 LTS,因为这目前似乎可以同时适用于 BinExport 和 BinDiffHelper。
  • gradle(已测试 7.5、8.10)

克隆仓库

递归克隆仓库,因为它依赖 BinExport 中相应的 protocol buffer 定义。

git clone --recurse-submodules https://github.com/ubfx/BinDiffHelper.git

构建

您需要将 GHIDRA_INSTALL_DIR 环境变量设置为 Ghidra 安装目录。 如果您安装了不同的 JDK,请确保环境变量 JAVA_HOME 指向您的 Ghidra 安装所使用的那个。

该扩展将专门针对该 Ghidra 版本构建。

然后在您的 shell 中进入 BinDiffHelper 文件夹 并执行

gradle

这将构建相应子模块中的 BinExport 以及父目录中的 BinDiffHelper。dist 目录中应该已经创建了一个 .zip 文件。使用该 .zip 文件按照上述说明进行安装。

开发 / 调试设置

有时能够与 Ghidra 一起调试扩展是很有用的,以下是一些相关说明:

  1. 克隆并构建 Ghidra,并让 gradle 根据 DevGuide 创建 eclipse 项目
  2. 将项目导入 eclipse(确保它具有扩展开发所需的相关插件)
  3. 安装 PyDev(http://www.pydev.org/updates 作为 eclipse 仓库)
  4. 安装 GhidraDev
  5. 解压 Ghidra 构建并将 GhidraDev 链接到它。可能需要设置 GHIDRA_INSTALL_DIR 环境变量
  6. 从 eclipse 运行 Ghidra 并安装 BinExport 扩展
  7. 使用 gradle build eclipse 创建 BinDiffHelper eclipse 项目
  8. 将其导入 eclipse 并使用 GhidraDev 将其链接到 Ghidra 构建。
  9. Debug As->Ghidra

由 gradle build eclipse 生成的 classpath 与 GhidraDev 所做的 classpath 修改之间可能存在一些 classpath 冲突。从扩展项目中移除核心 Ghidra 安装中的所有 .jar 文件并让 GhidraDev 重新添加它们可能会有所帮助。如果之后 eclipse 调试失败,在 eclipse 中关闭并重新打开扩展项目可能会有所帮助。 当从 eclipse 外部调试带有扩展的 Ghidra 时,扩展会自动加载到 Ghidra 中(不要走通常的扩展安装流程)。但是,插件必须在代码浏览器中启用。

参考资料

  • https://github.com/google/bindiff/releases
  • https://www.zynamics.com/bindiff/manual/
  • https://github.com/google/binexport/

图标来自:Fatcow free icons

下载工具