iPhone可执行文件(MACH-O)解密

问题描述 投票:0回答:1

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

第一个障碍是二进制文件是加密的,反汇编器无法读取它们。这可以通过从 gdb 转储解密的文件内容来解决。

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

  1. 有没有可以为您解密文件的工具?有什么推荐吗?
  2. 有关于该流程如何运作的信息吗?显然是 AES 加密?使用什么键?用你的复制很容易吗? 自己的程序?

感谢您的指点!

iphone encryption executable mach-o
1个回答
0
投票

简短回答

从 AppStore 下载的应用程序中的主要二进制文件的 TEXT 部分按照加载命令所示进行加密

LC_ENCRYTPION_INFO{_64}

此加密不是由开发人员执行的,加密是在您下载应用程序时发生的。每个应用程序都会使用登录期间创建的公钥/私钥对为您在该设备上的 AppStore 帐户进行加密。

二进制文件在加载时由内核解密,因此本质上,当您想要解密二进制文件时,您可以在加载后将其从内存中转储。这意味着您需要“参与其中”,这需要越狱设备。如今,如果您正在进行研究,您会使用像 Frida 这样的工具将自己插入到流程中,许多 python 脚本 和纯 javascript 工具正是这样做的。

Stefan Esser 的项目dumpdecrypted(来自 2011 年)用 C 语言简洁地说明了二进制图像解密步骤。

无论如何,从设备上获取应用程序的解密版本都会破坏应用程序,因为它不再有效签名,并且需要重新签名整个应用程序包。要重新签署应用程序需要 Apple 开发者帐户。

这一切意味着什么?

只要越狱存在,所有 iOS 应用程序都容易受到重新打包攻击、静态和动态分析。

© www.soinside.com 2019 - 2024. All rights reserved.