Apple App Store 应用程序是如何加密的?

逆向工程 解密 ios
2021-06-21 03:51:33

我知道如何解密 iOS 应用程序使用工具。

这种加密是如何进行的?为什么iOS应用只能在设备上解密?是否有用于加密的特定于设备的密钥?

1个回答

当您从 App Store 下载应用程序时,Apple 会在使用与您的 iTunes 帐户关联的公钥加密的签名二进制文件中注入一个特殊的 4196 字节长的标头。此公钥/私钥对在您创建 iTunes 帐户时生成,并在您使用 iTunes 帐户或 Apple ID 登录时传输到您的 iOS 设备。这是 Apple 的 FairPlay DRM 的一部分。在安装时,您的 iOS 设备会尝试使用您的密钥解密标头,如果应用程序是从 App Store 下载的,并且具有匹配的凭据,则会成功。

AppSync 等工具如何绕过检查?

许多旧版本的 AppSync 基于原始工具 PPSync,这是臭名昭著的中国 iOS 盗版网站 25pp 制作的补丁,它修改 installd 的启动守护程序 plist 文件以插入其签名检查例程。这是不安全的,并且会导致运行时不稳定。AppSync Unified 等较新的工具利用MSHookFunction()Cydia Substrate 中的动态挂钩功能绕过安装的签名检查。这意味着 AppSync Unified 不会修改任何系统文件,因此更加稳定和安全。

为什么您只能从实际设备上的 iOS 应用程序中删除 DRM?

Crackulous 之类的工具只是 Clutch(一种 DRM 删除工具)之上的前端。在运行时执行额外的签名检查,以确保应用程序已配置为在您的 iOS 设备上运行。Clutch 挂钩到设备运行时以将应用程序从内存中转储到未签名的二进制文件中。

资料来源:

复制保护概述 - iPhone Wiki

GitHub 上的 AppSync 统一

GitHub 上的离合器