5

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

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

4

3 回答 3

4
  1. IPA 文件不是二进制文件。这是一个 ZIP 存档,您必须将其解压缩才能获得应用程序包目录,其中包含实际的可执行文件。

  2. 即使那个可执行文件格式也不正确。它使用下载它的用户的 AppleID 进行加密。您需要先对其进行解密,然后才能在其上运行strings(您可以为此使用一些流行的 iOS 应用程序破解工具)。

于 2013-04-18T04:30:13.617 回答
2

要从 ipa 获取硬编码字符串,请执行以下步骤:

  • 从这里获取离合器。

  • Clutch <ipaToDecrypt>使用 Clutch ( )解密应用程序

  • 解压解密后的ipa,得到app bundle目录。

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

于 2016-01-05T05:26:52.223 回答
0

这已经很老了,但是我遇到了一个特殊的问题,我试图在启用了 Bitcode 的应用程序中找到硬编码的字符串,并且我已经建立了一个存档以导出到 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,您将需要使用越狱设备,您可以在其中运行离合器等。

于 2018-09-26T02:26:43.440 回答