我想说我只是一个新手,它试图了解复杂的越狱宇宙。我不是软件破解者或逆向工程师,只是一个好奇的人。
所以,最近我开始使用Hopper反汇编程序,并开始研究ARM Assembly。但是,我提出了i0n1c's dumpdecrypted,一个C脚本,它基本上为任何iOS应用程序转储未加密的可执行文件。我也读过有关Mach-O文件结构,以及Apple如何保护他们的代码免受黑客攻击。
最后,我尝试在我的设备上拆解一些游戏,只是为了让一些程序集阅读并尝试应用我的基本知识。我注意到一些可执行文件反编译没有任何问题,我在Hopper的左窗格中拥有所有(或大部分)Objective-C方法和声明。此外,Hopper会自动将可执行加载程序识别为ARMv7
。
现在,对于其他可执行文件,大多数代码仍然是加密的。并且Hopper将加载器设置为ARMv7s
。
所以我研究过,甚至尝试了一些破解调整,例如clutch
。我注意到clutch
有效地转储并打包了代码全部由i0n1c脚本解密的游戏的IPA文件。它取而代之的是dumpdecrypted
半解密的可执行文件失败,并显示以下错误消息:
Cracking XXX...
error: Cannot crack ARMV6 portion of fat binary.
error: Could not crack binary
Failed.
那么,一些可执行文件使用2种不同的ARM架构?怎么可能?这就是为什么Hopper将加载器设置为ARMv7s
?
我真正的问题是:是否有一种有效的方法可以解密iOS可执行文件的所有代码(或90%代码)?为什么有些人在没有问题的情况下被抛弃为什么其他人不这样做呢?
同样,我不是一个软件破解者,我正在学习ARM以获取个人知识和测试我的应用程序。
我对这种奇怪的加密感到好奇。如果有人能回答我的问题,请提前感谢!
我也不知道StackOverflow是否适合发布,但我认为是的,因为程序集仍然是一种编程语言。