如何从iPA二进制文件中获取硬编码信息

时间:2013-04-18 04:24:09

标签: ios

我在应用程序二进制文件上尝试了字符串..但它显示以下错误: strings:object:格式错误的对象(未知加载命令19)

从iOS应用程序的二进制文件中读取硬编码信息的任何其他方式

3 个答案:

答案 0 :(得分:4)

  1. IPA文件不是二进制文件。它是一个ZIP存档,您必须提取该档案以获取应用程序包目录,其中包含实际的可执行文件。

  2. 即使是可执行文件也不是很好。它已使用下载它的用户的AppleID加密。您需要先解密它才能在其上运行strings(您可以使用一些流行的iOS应用程序破解工具来实现此目的)。

答案 1 :(得分:2)

要从ipa获取硬编码字符串,请按照以下步骤操作:

  • here获取离合器。

  • 使用Clutch(Clutch <ipaToDecrypt>

  • 解密应用程序
  • 解压缩解密的ipa,并获取应用包目录。

  • 在其中找到可执行文件,并对二进制文件运行strings命令。 (strings <app-binary>

答案 2 :(得分:0)

这已经很老了,但是我遇到了一个特殊的问题:我试图在启用了位码的应用程序中查找硬编码的字符串,并建立了一个存档以导出到AppStore。 最终的.ipa文件照常解压缩,其中包含位于Payload / appname.app / appname的二进制文件,但是strings和类似工具无法处理此文件。 相反,我使用了以下命令:

segedit Payload/appname.app/appname -extract __LLVM __bundle llvm.xar xar -xf llvm.xar llvm-dis 1

您需要安装llvm工具(例如brew install llvm)以获取llvm-dis。 这将产生一个名为1.ll的文件,该文件显然包含我正在寻找的硬编码字符串(以及完全可读的伪源)。如果1.ll中没有任何内容,请查看是否有名为2、3、4等的文件,然后对它们运行llvm-dis

但是,对于实际上已经从AppStore下载的ipa,很不幸,您将需要使用一个越狱设备,在该设备上可以运行离合器等。