ios 应用程序的可执行文件中的奇怪编码

weird encoding in ios executable file of an app

我想看看某些 ios 应用程序的可执行文件是什么样子的,我所做的是使用 iexplorer 将应用程序文件导出到我的计算机,然后我查看了 info.plist 查看可执行文件,之后我用我的记事本打开它们以使用 UTF - 8 编码,但是这两个文件中的东西看起来如何 - 在两个文件的打开中我看到表示目录的英文单词:

文件 1 的示例:

‹"Ò.(?!ÑNÓU£C°îXjøe”Ú5O•½°{^ÿÝŒEÌrôðæ$@[3,ÔÜ£æ»8I∼hGw!*aHÒQ•tœl²þ„™AÍçÍ憴³)è :cÌ7H5æß-eFç¯î&Ø\n,$È$y»¥ÁB^6ÙP; i(q,AÅ âðð·'©=Ÿa"v!PBÛÚ"¤¬‹Wj·;ÈsÌŽÚâZüŠ–ÇüÉ;ÜA´sI«¸Üæ¿÷ ›‚‰.êøLž

文件 2 样本:

ßꪧgö«húDªÝn¡±CÅÁ¹ â=؉ˆ4|®b¡ ¬RS;Y¥!ÜzGò“vî©6ØR¡‚>Ì0m5 ŸzrPÐiDMÊ|Þ·9âëYß,p؃‹£x—.àN5îüÝrjœG]Æ·

具有讽刺意味的是,在第二个文件中我可以看到一大堆英文单词,但我不明白为什么我看不到整个文件?我还尝试在将文件制作成 .m 后在 objective-c 编译器中打开这些文件,但这又是无用的???

可执行文件包含机器语言(二进制),人类无法轻易阅读或理解。你仍然看到的英文单词可能是编译器留下的未执行的注释。

尝试在编译器中打开这些文件是行不通的,因为如果编译器的角色是将 objective-c 转换为机器语言,他将无法转换为其他方式。对于同一套机器指令,在objective-c中有多种编码方式。

从二进制可执行文件中获取源代码的唯一方法是进行一些逆向工程。它是通过将二进制可执行文件转换为汇编语言(这是一种非常低级的语言,但具有可理解的语法)然后尝试使用更高级的语言(例如 objective-C.

重现指令来完成的