用于 Linux 的 OTOOL 替代方案

逆向工程 linux 二进制 ios 图书馆 苹果系统
2021-06-25 23:43:47

我在 Mac 机器上设置了逆向工程。此设置对 iOS 应用程序(.ipa 文件)进行了一些逆向工程。我正在将设置从 Mac 迁移到 linux 机器。

目前在 Mac 上,我在 ipa 二进制文件上使用 OTOOL 并使用以下命令:

  1. otool -L /iOS/二进制/路径
  2. otool -lv /iOS/二进制/路径
  3. otool -hv /iOS/二进制/路径

现在,我必须做同样的操作,即对 iOS 应用程序进行逆向工程,但现在是在 linux 机器上。AFAIK,OTOOL 不适用于 linux 机器。

  1. 我遇到了 JTOOL,我认为到目前为止最相关。我可以在 linux 上使用它,它的作用类似于 OTOOL,但不完全相同。例如,在 JTOOL 上使用 -L 命令时,我还需要指定架构。然而,OTOOL 提供了所有可用架构的共享库。
  2. 我试过 ldd,但我收到错误 - “不是动态可执行文件”。
  3. 我试过 objdump,但它要求提供目标文件。

我不确定我可以使用哪种工具。我想找出可以做与 OTOOL 相同的替代工具。或者,如果不一样,那么我需要进行哪些更改才能使用替代工具。

2个回答

如果您已经剥离了二进制文件,那么无论您在哪个平台上都无能为力。

要在 Linux 上查看反汇编代码,就像在 Mac 上使用 Otool 一样,您可以使用 objDump:

objdump --disassemble-all thebinary

我在 Ubuntu 主机上从事与 iOS 相关的工作。

objdump除非它是在 Mach-O 二进制文件的支持下专门编译的,否则使用的建议将不起作用,这在 Linux 上通常不是这种情况。

jtool2到目前为止,我发现它是最好的基于 Linux 的等价物,并且您列出的命令应该是可用的,因为这些标志列在OTool Compatible Options. 只是您不想将拱门作为参数传递吗?

llvmLinux上提供了许多工具,它们的页面确实列出了otool等效的工具。这似乎并不在我的OS安装,但其他的一些llvm工具,如llvm-nmllvm-objdump两个支持的Mach-O二进制文件。

如果您更喜欢视觉表示,您可以尝试XMachOViewer,或者如果您乐于编写自己特定于您的特定需求的脚本,您可以查看Pythonlief库。