Bindiff工具使用-[GDOUCTF 2023]L!s!

目录

题目:

学到的点:


题目:

打了GDOUCTF的比赛(被暴打了hhh),学到很多新东西,这里总结一下

Diff的文件是ida数据库文件,选择i64或者idb文件进行Diff

打开附件,有两个文件,一个是ls-original一个是ls-patched,这种可以考虑使用bindiff工具比较文件修改的部分,这里引用大佬的一段话

分析过old.so,做了大量繁琐的逆向工程,比如自定义了很多数据结构、重命名了很多函数。现在有new.so,想充分利用old.so的已有逆向成果。比如,想从old.i64迁移一批名为”Private_*”的函数名到new.i64中。再比如,已经卸掉old.so中的过期时间检查,想快速定位new.so中匹配代码,对之进行静态Patch。二进制比较工具正是为解决此类需求而生的。

这种情况下就可以使用bindiff二进制比较工具。

工具下载地址:https://zynamics.com/software.html

我是用的是win11+IDA7.7+bindiff7,点开后可以直接下载bindiff7.msi,但是不要忘记勾选上面的框框,不然是没法下载的

 具体下载流程可以参考https://www.cnblogs.com/lsdb/p/10543411.html

下载完成就可以在IDA中使用了,拿这题举个例子

Diff的文件是ida数据库文件,选择i64或者idb文件进行Diff

在使用bindiff之前需要将文件先在ida中打开,得到.i64文件。再用.i64文件进行操作

 先打开patched.i64文件(即new.i64),再在Edit->Plugins->BinDiff (Ctrl-6)->Diff Database->选中old.i64

 

 完成了就会显示这样的画面,显示四个窗口,作用分别如下(参考大佬文章)

 Matched Functions :完全匹配的函数
Statics:匹配的一些数据
Primary unmatch: 初级不匹配
Secondary Unmatch :二级不匹配

 Matched Functions窗口时看old文件与new文件相匹配程度,越绿代表匹配度越高,越红代表匹配度越低,可以在本题中找到不那么绿的那一栏,打开它

 

 代码有点乱..与old文件进行相比可以看到多了对lmao进行异或运算,但是异或的值并不知道,看了大佬的wp知道可以用Cyberchef

 得到了flag

学到的点:

Bindiff工具使用,需要i64文件,将old.i64与new.i64进行比较,可以找到不同的地方。具体使用参考:http://blog.nsfocus.net/bindiff/

Cyberchef的使用:https://gchq.github.io/CyberChef/,具体使用可以参考:https://www.secrss.com/articles/12449

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值