我正在尝试查看某些ios应用程序可执行文件的样子,我所做的是使用iexplorer将应用程序文件导出到我的计算机,然后我查看了info.plist以查看可执行文件,之后我用记事本打开它们来使用UTF-8编码,但这里两个文件中的情况如何 - 在两个文件的开头我看到表达目录的英文单词:
文件1的样本:
<“O(?ÑNÓU£C°îXjøe。”Ú5O•½°{^ÿÝŒEÌrôðæ$ @ [3,OU£Æ»8I~hGw *aHÒQ•tœl²þ“™AÍçßÍæ†'³!)E:cÌ7H5æß -eFç¯î&安培;Ø\ N,$ E $ Y»¥AB ^ 6UP;Ⅰ(q,AA
âðð·'= =Ÿa“v!PBÛÚ”¤¬
文件2的样本:
ßꪧgö«húDªÝn¡CÅÁ¹=؉4 |®b¡JeW-ɯðó|xgýgeéÀXœH7ßJÉ“3‡rÜ6ÒI_ƒrcdÅá¸|íð¼l;Töl±”>MÛ〜±o /ôÇô#RS ; Y!¥ÜzGò“VI©6ØR¡,&GT;Ì0m5 ŸzrPÐiDMÊ|Þ·9âëYß,p؃<£的x.àN5îüÝrjœG]Æ·
具有讽刺意味的是,在第二个文件中,我可以看到一大块英文单词绝对可以,但我不明白为什么我看不到整个文件非常好?我已经尝试在我制作它们之后在Objective-c编译器中打开文件。但是这又没用了???答案 0 :(得分:0)
可执行文件包含机器语言(二进制),人类无法轻易阅读或理解。你仍然用英语看到的这个词可能是编译器留下的未执行的注释。
尝试在编译器中打开这些文件是行不通的,因为如果编译器角色是在机器语言中转换objective-c,那么他就无法转换其他方式。对于同一组机器指令,有许多方法可以在objective-c中对其进行编码。
从二进制可执行文件中获取源代码的唯一方法是进行一些逆向工程。它是通过在汇编语言中转换二进制可执行文件来完成的(它是一个非常低级别的语言,但语法可以理解),然后尝试使用更高级别的语言(例如objective-C)重现这些指令。