【软件逆向-ida pro mac版F5插件移植过程分享】此文章归类为:软件逆向。
ida Pro mac版F5插件移植过程分享
因为今天看到了隔壁论坛发布的8.3全插件版,因此把之前迁移mac版F5插件的流程发出来,抛砖引玉,希望对有需要人有点帮助吧。
- 环境:
- ida pro 7.6 macos arm64版 带 x86/64,arm32/64 插件
- ida pro 8.3 macos arm64版 带 arm32/64 插件
- 目标:
- 把ida pro 7.6的 x86/64插件移植到ida pro 8.3
- 不需要重算key来增加对x86/64插件的支持
流水账记录(以x64为例)
hexx64.dylib的分析
首先,把ida7.6的hexx64.dylib直接复制到8.3的plugins文件夹。此时打开ida,直接crash

使用lldb 调试一下,触发错误:

看一下崩溃位置:

此函数就是dlsym的一个wrapper,是从libida64.dylib加载函数。按理说应该不会出问题,现在出了问题,大概率是动态导入函数的时候,出了问题。交叉引用,向上看一下

发现一个要加载函数的列表

通过 nm libida64.dylib
之后,发现8.3的libida64并没有导出红框部分的函数。但是下面3个函数导出了,patch吧,感觉有点难受,不知道下面的3个函数用不用了。
看一下保存位置的数组吧:

正好,看了一下保存的数据,交叉引用发现,红框部分的函数,都没有使用,非常nice,但是不知道ida这是啥意思
此时再次回到崩溃位置:

只有这里判断了返回值的正确,直接patch掉就行。

此时打开ida8.3,出现了下图的提示:

NICE!!!这是一个号兆头,至少插件正常加载了。
这个部分的提示,应该在libida64里面,进去看一下有没有搞头
libida64.dylib的分析
没有字符串我可怎么活啊!!!
字符串启动!




意思就是这个函数的返回值!=0,说明加载的license就会报错,因此直接把返回值改成0试试看。


这是不是就是之前说的ida 1字节patch
GOGOGO!此时打开ida8.3,F5成功了!

此时:

32位同理。
更多【软件逆向-ida pro mac版F5插件移植过程分享】相关视频教程:www.yxfzedu.com