IDA pro 9.0泄漏之后,本一直没有去关注,因为我有Ghidra…
但是奈何最近要跟踪一个大工程,用Ghidra分析的速度实在是头大的很,于是下载ida开始折腾。
首先crack之后,patch替换了文件,运行会crash,需要给patch后的文件签名
sudo codesign --force --deep --sign - /Applications/IDA\ Professional\ 9.0.app/Contents/MacOS/libida.dylib
sudo codesign --force --deep --sign - /Applications/IDA\ Professional\ 9.0.app/Contents/MacOS/libida64.dylib
再运行,运行报错"Oops! internal error 30016 occurred."
这个问题来自于arm_mac_user64.dylib,这是一个本地debugger插件,如果不需要的话删掉它无影响:
rm /Applications/IDA\ Professional\ 9.0.app/Contents/MacOS/plugins/arm_mac_user64.dylib
再次运行,运行成功
但是,思来想去得把arm_mac_user64.dylib的问题解决啊,于是在互联网上狗刨,终于刨到了这篇文章
由于错误都一样,直接搜索立即数30016,找到了两处:
通过反编译代码对比得知应该是要修改第二处的代码
本来以为问题轻轻松松解决,但是,文中的指令
nop nop指令反编译之后结构变得完全看不懂了。于是乎,开始魔改这里我选择对
0x232ac开始的指令进行修改,cmp使用的是w8,w8的值我管不着,但x19程序前面都用了,总不可能还等于0吧。于是乎
原始的:
1F 01 00 71 2D 01 00 54
修改为:
7F 02 00 F1 20 01 00 54
即:
cmp w8, #0
b.le #0x28
修改为:
cmp x19, #0
b.eq #0x28
再次运行,查看debugger

这么修改不知道会不会存在什么问题,水平有限,只能先这样用着:-)
结尾提供我修改好的,担心我乱改了的朋友可以用对比工具进行对比。这里,我没有对该文件进行签名,下载替换之后需要运行
sudo codesign --force --deep --sign - /Applications/IDA\ Professional\ 9.0.app/Contents/MacOS/plugins/arm_mac_user64.dylib
arm_mac_user64.dylib (237.6 KB)








