我的意思是可以在iPhone上运行的iOS应用程序吗?
Nor IDA或Hopper具有任何iOS版本
#1 楼
如果您的iPhone已越狱,则可以在其上使用radare2。您可以在此处进行交叉编译的过程,也可以直接从Cydia中获取最新版本。radare2的一个简洁功能是可以在iPhone上运行它,并调试/分析应用程序。远程,因为radare2实例可以通过生成Web界面或使用说唱协议进行通信,请参见此处记录。
如果您的iPhone没有越狱,则无法使用任何应用程序分析另一个,因为它们每个都在单独的沙箱中运行。
#2 楼
我认为您可以尝试使用非常基本的otool命令行工具,但会进行一些反汇编,它仅显示函数名称和说明,而没有花哨的链接“显示代码将跳转到哪里”,它仅显示连衣裙,但是肯定你需要越狱
#3 楼
很长时间以来,我在iPad 2上使用了Cydia的gdb(它仍然可以在任何32位设备上运行)。您可以通过将gdb附加到正在运行的应用程序的pid上来转储内存:ps ax | grep [app name]
和gdb -p -q [pid]
。如果要在符号或选择器处添加断点,则首先需要从应用程序中提取标头。使用Class Dump的任何变体(我使用class-dump-z),我可以中断从生成的接口中转储的任何符号。达到断点后,只需运行
disassemble
命令。图像源
评论
r2可以在(越狱)iphone上运行。参见github.com/radare/radare2/blob/master/doc/iphone.mdiOS的基本思想不是每个应用程序都在自己的沙箱中运行吗?因此,这意味着您必须将外部数据加载到其中-除了在台式机系统上,您无法在已安装的任何设备上运行它。
实际上,IDA已移植到iOS(越狱)letsunlockiphone.guru/ida-pro-disassembler-ported-iphone,它确实可以运行,我之前已经使用过。我确实更喜欢radare2。 (请参阅jvoisins答案)