fairplay-decrypt:iOS IPA 离线解密(砸壳)工具,支持 Mac 和 Linux

最近看到一个开源项目叫 fairplay-decrypt,支持在 macOS、Linux 上离线解密 App Store 的 IPA。这个过程也叫“砸壳”,它是 iOS 逆向分析里的俗称,指去除 App Store 应用可执行文件的 FairPlay 加密,让分析工具能够读取其中的程序代码。但是这里拿到的仍是编译后的程序,并不是开发者的原始源码。

对做 iOS 应用分析的人来说,这个项目值得关注。

它比较有意思的地方是:目标 App 不需要安装到越狱设备上运行,解密过程可以放在电脑上完成。

项目的思路是,先从受支持的越狱设备中提取一份 16 字节的 FairPlay 账号凭据,再结合该账号拥有的 IPA 及其授权数据,在电脑上完成解密。这份账号凭据可以重复使用,不必每分析一个 App 就重新提取。

这就缓解了一个常见问题:手里的越狱机系统比较旧,目标 App 却要求更高版本的 iOS。由于目标 App 不必在旧机上启动,分析时就少了一道系统版本的限制。当然,砸壳只解决解密问题,不会让新版 App 自动兼容旧系统。

不过,它还不是“随便拿个 IPA 就能解密”的工具。目前支持加密的 arm64 Mach-O,授权格式也有要求:支持 SUPF v3、v5,以及指定格式的 SINF 记录。IPA 需要有与账号凭据匹配的授权数据。首次提取凭据仍需受支持的越狱设备,项目说明支持 iOS 10 及以上,设备上也需要安装该账号下具有受支持授权的 App。

我觉得它最值得关注的,就是把目标 App 的解密从“必须在越狱机上运行”转移到了电脑端。对于手头只有旧越狱设备、又想研究新版 App 的人,这个思路很实用。

项目地址:
https://github.com/EthanArbuckle/fairplay-decrypt