Win10 + Bindiff 6.0 + IDA 7.5 安装教程

第二次安装 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 标签页,插件功能正常

在这里插入图片描述

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值