IOS终端安全(8) – 使用IDA动态调试IOS终端应用

、需要用到的工具:

1.一个被砸壳后的二进制文件,即

2.ida64 逆向分析工具

二、IDA基本配置和设置

把PandaDelivery文件丢进ida64里面,稍后一会等待分析完成。然后点击IDA菜单栏的Debugger–>Select debugger

然后选择 “Remote iOS debugger”

点击 “OK”后,再次点击菜单栏的Debugger,会发现有更多选项,此刻选择 Debug options…

弹出对话框如下:

点击 “Set specific options”,在弹出的对话框中输入 Symbols 文件的路径,

具体的Symbol path路径可以到电脑的~/Library/Developer/Xcode/iOS DeviceSupport 目录下查找,下图:

如果是越狱手机,取消掉”Launch debugserver automatically”选项,在 Device 栏选好需要调试的设备,设备的系统版本号和Symbol path的版本号要相匹配,

点击“OK“后,再选择IDA菜单栏Debugger–>Process options…对话框如下:

其中,Application和input file填写的路径是手机中Pandadelivery应用的实际执行文件路径,如何获得这个路径,在手机上先打开PandaDelivery应用,然后使用ssh登陆手机,使用命令

ps -ef |grep "PandaDelivery"

即可查看到相应的app可执行文件路径

hostname那里填写手机的ip,端口随意,因为要在手机上启动debugserver。

使用ssh登陆手机,然后启动debugger 监听23946端口,最后,点击“OK”按钮,如下

表示IDA远程连接成功。

然后点击debug。

之后会有个风险提示,点击“YES”

之后还会提示,程序已经在远程设备上debug了,是否需要附加上去,点击“YES”

IDA经过漫长的加载之后,如下图所,左侧显示的是反汇编代码窗口,右侧显示的是寄存器和栈信息。F7 是单步步入,F8 是单步步过。

使用IDA做动态调试,速度上有点慢,个人建议Mac上动态调试,还是使用Disassembler+lldb+debugserver方便。

原本想删了这个文章的,后来想想还是算了,写出来就留着吧…. 蛋疼的狠,因为IDA在处理应用过程中,时常这样子

就很无奈….。

End.