我的意思是可以在iPhone上运行的iOS应用程序吗?

Nor IDA或Hopper具有任何iOS版本

评论

r2可以在(越狱)iphone上运行。参见github.com/radare/radare2/blob/master/doc/iphone.md

iOS的基本思想不是每个应用程序都在自己的沙箱中运行吗?因此,这意味着您必须将外部数据加载到其中-除了在台式机系统上,您无法在已安装的任何设备上运行它。

实际上,IDA已移植到iOS(越狱)letsunlockiphone.guru/ida-pro-disassembler-ported-iphone,它确实可以运行,我之前已经使用过。我确实更喜欢radare2。 (请参阅jvoisins答案)

#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命令。





图像源