iPhone可执行(MACH-O)解密

pra*_*919 5 iphone encryption executable mach-o

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

第一个障碍是二进制文件是加密的,而解析器无法读取它们.这可以通过从gdb转储解密的文件内容来克服.

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

  1. 有没有一个工具可以为你解密文件?有什么建议?
  2. 是否有关于该过程如何工作的信息?显然它是AES加密?用什么钥匙?用自己的程序复制是否容易?

感谢您的任何指示!

小智 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