第二次安装 Bindiff 依旧踩了大坑,为了避免重蹈覆辙,详细记录下正确的安装方式
安装 Bindiff 不是随便找个版本安装下就能用的,不同版本的 Bindiff 对应不同版本的操作系统,JAVA 和 IDA,所以安装前最好先根据个人实际情况选择正确的软件版本,环境没问题了,神器用起来才得心应手。
本人的操作系统是 Win10 x64,如果想在其它操作系统上安装 Bindiff 的小伙伴可以找找其他博主的安装教程,简单参考下本文章就好,不要照搬。
比如早期的 Win7 环境,IDA 6.8,Bindiff 4.3,可以看下这篇文章:
https://www.cnblogs.com/lsdb/p/10543411.html
JAVA 环境搭建
我的 JAVA 环境是 JDK8,下载安装包后,可以参考这篇文章配置下环境参数:
https://www.runoob.com/w3cnote/windows10-java-setup.html
IDA 7.5 安装
可以从吾爱破解的爱盘下载 编写免安装版的 IDA 7.5,支持 MIPS 反汇编,逆向小伙伴们的福音,解压即用。
https://down.52pojie.cn/Tools/Disassemblers/IDA_Pro_v7.5_Portable.zip
Bindiff 6 安装
官网下载地址: https://www.zynamics.com/software.html , 选择 .msi 安装包
安装过程只有一项需要注意的,要选择自己本地的 IDA 安装目录,否则 Bindiff 就没法正常工作
打开 Bindiff 进入如下界面:
新建 workspace
编写比较测试程序
Bindff1 代码:
# include <stdio.h>
int main(){
int a = 1;
if (a > 1){
printf("if brance\n");
}
else{
printf("else brance\n");
}
getchar();
}
Bindff2 代码:
# include <stdio.h>
int main(){
int a = 1;
if (a < 1){
printf("if brance\n");
}
else{
printf("else brance\n");
}
getchar();
}
使用ida创建数据库
bindiff不能直接分析可执行程序,而只能先使用ida pro的.i64数据库基础上进行分析。
因此需要先用ida pro分别打开bindiff1.exe和bindiff2.exe再关闭,以创建.i64数据库。
选择对比文件
查看对比结果,确认功能正常,安装成功:
Bindiff 简单对比文件
左边功能目录中的 Matched Functions 是对相似函数的对比,右边是各方面的对比结果,其中Similarity 是相似度评估值,值越高,相似度越大,反之差异越大,从结果可以看出 main 函数差异最大,双击进入函数的详细对比页面。
从右边的菜单栏看出,main 函数被分成四个部分进行对比,第一部分代码有差异对比出来,红框中的内容就是两份源码中的条件选择语句。
安装 IDA Bindiff 插件
在安装 Bindiff 时选择了本地正确的 IDA 安装目录,Bindiff 会把插件放在安装目录下的 plugins 文件夹里,就是下面这四个文件:
打开其中一个要对比的 IDA 数据库,比如 bindiff1,快捷键 ctrl + 6,弹出窗口
点击 Diff Database 后选择 bindiff2
成功调出 Bindiff 标签页,插件功能正常