BinDiff

BinDiff 是一款二进制文件比对工具,可帮助漏洞研究人员和工程师快速找到反汇编代码的异同,同时,使用 BinDiff 还可以识别和隔离供应商提供的补丁中的漏洞修复


安装

  1. BinDiff 是一款 java 程序,因此需要安装 java jdk 环境,用 java -version 验证安装是否成功

  2. BinDiff 需要借助 IDA pro 进行分析,所以需要安装 IDA Pro 7.7.220118 (SP1) 全插件绿色版 (官方说明需要 6.8 及以上版本)

  3. 下载 BinDiff (BinDiff 同时支持 Windows、Linux、Mac)
    Windows 平台选择 bindiffx.msi 下载
    像平时安装软件一样正常安装即可(低版本的 BinDiff 可能需要手动选择 IDA pro 的安装路径,否则 BinDiff 无法正常运行


在 BinDiff 中使用

注意,BinDiff 并不能直接分析 exe 程序,只能分析 IDA 生成的 .i64 数据库文件

  1. 将想要对比相似性的两个二进制程序分别用 IDA 打开,待 IDA 分析完成后,关闭 IDA,IDA 会在本地生成一个数据库文件

  2. 在 BinDiff 中 主菜单 ——> File ——> New Workspace 新建一个工作空间
    然后 主菜单 ——> Diffs ——> New Diff,选择生成的两个 IDA 数据库文件,待分析完成即可

  3. 我就是这样操作的,但是会有一个报错,暂时还没有解决报错问题。。。

  4. 如果你的情况跟我一样,那就试试下面的方法吧


在 IDA 中使用

如果还是报错,可以直接在 IDA 中使用 BinDiff 插件

  1. 因为在安装 BinDiff 时,选择了本地正确的 IDA 安装目录,BinDiff 会把插件放在 IDA 的安装目录下的 plugins 文件夹里,如图:

二进制文件相似性2.png

如果没有的话,其实 IDA Pro 7.7.220118 (SP1) 全插件绿色版 这个版本的 IDA 是内置了 BinDiff 的,可以直接使用

  1. 打开其中一个 IDA 数据库文件,在 IDA 中使用快捷键:Ctrl + 6

二进制文件相似性1.png

点击 Diff Database...,然后选择另外一个二进制程序的 IDA 数据库文件

待分析完成,界面如下:

二进制文件相似性3.png

到此,说明插件安装成功

  1. 左边绿色框中,Similarity 的值表示两个文件中函数的相似度,值越接近 1 表示越相似