iPhone可执行(MACH-O)解密

时间:2011-10-24 04:05:31

标签: iphone encryption executable mach-o

我一直在玩iPhone上的/调试/反汇编二进制文件。

第一个障碍是二进制文件已加密,并且解密程序无法读取它们。这可以通过从gdb转储解密的文件内容来克服。

我的问题是关于所有MACH-O可执行文件的二进制文件解密(在程序启动时动态完成),其中LC_ENCRYPTION_INFO部分中的encryption_id设置为1。

  1. 有没有为您解密文件的工具?有什么建议吗?
  2. 是否有关于该过程如何运作的信息?显然它是 AES加密?用什么钥匙?用你的复制品很容易复制吗? 自己的计划?
  3. 感谢您的任何指示!

1 个答案:

答案 0 :(得分:7)

关于黑客攻击/破解/等的道德问题,让我们讨论一下细节:

  • 在OS X中,二进制解密由Do not Steal MacOS X.Kext(亲切地称为DSMOS)执行。
  • 在iOS中,二进制解密由FairPlay kext执行。

    在这两种情况下,内核Mach-O加载器都对此负责。如果真的需要详细介绍,那就是处理解密的Apple Protect寻呼机。在XNU的说法中,“寻呼机”是一个负责获取VM页面并从后备存储(交换,内存映射文件等)中检索它们的组件。它是Apple Protect寻呼机,它调用kext(以上两种之一)

    有一本很棒的书涵盖了内核细节 - http://www.amazon.com/Mac-OS-iOS-Internals-Apples/dp/1118057651

    正如您所说的那样,这种加密很容易被破坏 - 在越狱设备(或具有root权限的PC)上,您可以使用Mach VM API来读取解密图像。这实际上在上面的书中提到过,有一个示例工具可以做到这一点(以及其他VM技巧)。或者,Stefan Esser有一个简单的工具,它使用DYLD_INSERT_LIBRARIES通过在加载时将简单的.dylib注入进程地址空间来解密二进制文件。 github.com> stefanesser> dumpdecrypted。

希望这会有所帮助

TG