IPA decryptor:一款离线解密 FairPlay 加密 App Store IPA 的开源工具

IPA decryptor 是一款专为 iOS 安全研究人员和开发者设计的开源工具,旨在离线解密经过苹果 FairPlay 数字版权管理(DRM)加密的 App Store IPA 文件。与传统的解密方案不同,该工具彻底摆脱了对实时联网或特定越狱真机环境持续运行的依赖,提供了一种高度灵活且纯粹的本地化解密体验。

核心机制与工作原理

FairPlay 加密是苹果用于保护 App Store 分发应用的核心机制。IPA decryptor 通过以下精密的底层逻辑实现解密:

  • 凭据驱动解密:解密过程的核心在于使用与下载该 IPA 的 Apple ID 账户绑定的 16 字节凭据(credential.bin)。
  • 密钥派生与页面解密:工具通过解析 IPA 内部的 SINF(Signature Information)和 SUPF(Support Files)记录,精确派生出页面密钥。随后,利用这些密钥解密加密的 arm64 Mach-O 切片页面。
  • 标志位清除:在成功解密所有加密页面后,工具会自动清除 Mach-O 文件头中的 cryptid 标志,从而生成一个完全解密且可被常规工具分析的二进制文件。
  • 广泛的格式兼容性:全面支持 version-3 和 version-5 的 SUPF 记录,以及 448 字节和 440 字节(要求必须以 8 个零字节结尾)的 SINF priv 记录。

环境配置与跨平台支持

IPA decryptor 的核心解密逻辑采用纯 Python 编写,原生支持 macOS 和 Linux 操作系统。

  1. 基础环境准备:
    需要 Python 3.9 或更高版本。建议通过虚拟环境隔离依赖:python3 -m venv .venv source .venv/bin/activate # Windows 下为 .venv\Scripts\activate python -m pip install -r requirements.txt
  2. macOS 特殊依赖(凭据获取包):
    虽然解密器本身是纯 Python,但若需在 macOS 上构建用于从越狱设备提取凭据的获取包,则需要使用 make 命令,并预先安装 Xcode 命令行工具及 ldid(用于伪造代码签名)。

使用指南:从凭据提取到离线解密

整个工作流分为凭据获取和离线解密两个独立阶段:

步骤 1:获取 16 字节凭据
用户需通过受支持的越狱 iOS 设备,提取与目标 IPA 对应的 16 字节账户凭据,并将其保存为 credential.bin 文件至本地输出目录。

步骤 2:执行离线解密
在配置好 Python 环境后,使用以下命令执行解密:

python decrypt.py /path/to/encrypted.ipa /path/to/decrypted.ipa --credential /path/to/credential.bin
  • 输入与输出:指定加密 IPA 的输入路径和解密后 IPA 的输出路径。注意:输出路径必须是一个尚不存在的文件,以防止意外覆盖。
  • 凭据参数:通过 --credential 指定凭据文件路径。若省略此参数,工具将默认在当前工作目录下寻找 ./credential.bin。