ida 7.0 发布了,拥有调试iOS应用的能力,自己尝试了一下,踩了很多坑,这方面资料太少了,按照官方文档操作也是失败的,在这里总结一下.
目前只能调试个人App,对于系统的,我还是无能为力,下面讲解过程
一.将应用脱壳
脱壳过程就不多说了, 参考网上的各种脱壳方案, iClutch, dumpdecrypted 等.
二.将脱壳应用安装到手机
过程不多说, 助手, ideviceinstall等
三.修改签名get-task-allow
此处的签名不指平时用的重签名, 而是要修改get-task-allow的值, 用用发布后默认是没有开启的,以MobileSafari为例:
1.在越狱iOS设备上,利用iOS系统文件管理工具(itools,ifunbox),在Applications/MobileSafari.app目录下,找到MobileSafari这个执行文件
ldid -e MobileSafari >> MobileSafari.xml
2.打开MobileSafari.xml细心看看,好多的私有key。不过不必天真,Code signing Entitlements若出现了私有key,是不允许上架的。在MobileSafari.xml添加get-task-allow这个key,并赋值为true,保存退出
<key>get-task-allow</key>
<true/>
3.对MobileSafari进行重签名:
ldid -SMobileSafari.xml ./MobileSafari
三.将脱壳的二进制文件用ida打开
然后选择刚才要调试的app
1.Debugger -> Select debugger 选择 Remote iOS debugger
2.Debugger -> Process options 里面有两个选项Application
,inputfile
3.找到你要下断点的位置
4.然后Debugger ->Start process
就可以调试了, 操作, 然后触发断点就可以调试了
四.常用指令
F7 step in
F8 setp
F9 run
F4 run into cursor
基本就这样了