我正在尝试学习如何使用BinDiff工具,但无法弄清楚如何打开两个二进制文件进行比较。在浏览他们的手册时,似乎我需要为此使用IDA Pro。

评论

相关:BinDiff reverseengineering.stackexchange.com/q/26196/3934的替代项?

#1 楼

是的,现在可以使用Ghidra来实现。

最新版本BinDiff 6具有对Ghidra反汇编程序的实验性支持。它附带一个扩展程序,该扩展程序允许将Ghidra反汇编导出为差异所需的.BinExport格式。 />
最近的Java运行时(OpenJDK 11或更高版本)
Ghidra 9.1.2(https://ghidra-sre.org/releaseNotes_9.1.2.html)

安装Ghidra扩展

安装BinDiff之后,在安装文件夹中找到“ BinExport”扩展。

默认值为


Windows :C:\Program Files\BinDiff\extra\ghidra

Linux:/opt/bindiff/extra/ghidra

macOS:/Applications/BinDiff/Extra/Ghidra


如果已找到ghidra_BinExport.zip文件,则扩展名可以像其他任何Ghidra扩展名:


启动Ghidra,然后选择FileInstall Extensions...
单击+按钮到Add extension
Select Extension对话框中,导航到包含
ghidra_BinExport.zip的目录。
选择.zip文件,然后单击OK
单击OK确认并再次取消重启消息。然后重新启动
Ghidra。

用法

此版本的基于Java的Ghidra导出器具有以下功能
,与IDA的本机C ++版本相比Pro:

|                                         | Ghidra | IDA |
| --------------------------------------- | ------ | --- |
| Protocol Buffer based full export       |    ✓¹  |  ✓  |
| Statistics text file                    |    -   |  ✓  |
| Text format for debugging               |    -   |  ✓  |
| BinNavi export into PostgreSQL database |    -   |  ✓  |

¹ No operand trees


验证安装版本


在Ghidra中,选择File | Install Extensions...
验证BinExport已列出并具有正确的Install Path


调用


在Ghidra中,打开一个项目或创建一个
如果尚未完成,请在“代码浏览器”工具中打开要导出的二进制文件,然后运行Ghidra的初始分析。您可能需要启用“ aggressive
指令查找器”选项以在导出中获得更好的覆盖。
在项目视图中,右键单击要导出的二进制文件,然后选择Export...

从下拉列表中选择Binary BinExport (v2) for BinDiff

选择输出文件的路径。这可以是原始文件名,因为会附加
.BinExport
单击OK。结果显示在其UI中:


按照上述说明导出两个二进制文件。
以下步骤假定primary.BinExportsecondary.BinExport。在当前
目录中创建文件primary_vs_secondary.BinDiffbindiff命令应位于您的系统路径中。

通过bindiff --ui或使用启动器运行
您的操作系统来启动BinDiff UI。
创建一个新的工作区或打开一个
选择Diffs | Add Existing Diff...
Choose Diff下,选择在步骤2中创建的primary_vs_secondary.BinDiff
单击OK,然后单击Add。现在,差异显示在
的树视图中,可以通过双击将其打开。
通常使用BinDiff显示匹配功能的调用图或流程图。

开源

最后,BinExport扩展(以及IDA Pro插件)是开源的,可以在GitHub上使用。 v11标签对应于BinDiff6。

评论


谢谢。我很高兴摆脱对IDA Pro的依赖!

–c00000fd
10月31日18:55



#2 楼

Bindiff可以是IDA中的插件,也可以是独立的,但您仍然需要IDA数据库来比较二进制文件。



评论


我怀疑没有安装IDA就能打开.idb

–伊戈尔·斯科钦斯基♦
19-10-23在10:48

@ismael_akez:我可以生成没有IDA的数据库文件吗?

–c00000fd
19-10-25在8:44