打破真机砸壳宿命:从 SINF/SUPF 格式到白盒查表变换,剖析 fairplay-decrypt 的离线密钥派生架构
在传统的 iOS 逆向工程与安全审计流程中,“砸壳”(Decryption / App Dumping)始终是一道必须跨越的物理门槛。长期以来,无论是经典的 dumpdecrypted、Clutch,还是主流的 frida-ios-dump 与 bagbak,社区普遍遵循一条根深蒂固的技术路径:依赖一台处于越狱或调试状态的物理 iOS 设备,将目标 App 实际拉起运行,待操作系统内核与 dyld 在缺页异常中完成动态解密后,再从进程虚拟内存中转储明文代码并重构 Mach-O 文件。这种动态内存转储不仅环境准备极为繁琐,且极其容易触发高级 App 的反越狱、反注入或反调试探针,导致进程启动阶段直接闪退。
很多移动安全研究者曾据此推论:App Store 的 FairPlay DRM 必然将二进制执行段的解密过程深度锁死在 A 系列处理器的 Secure Enclave(SEP)硬件信任根内,脱离物理芯片的运行时环境,纯算法层面的“离线静态脱壳”在密码学上是不可能实现的。然而,安全研究员 Ethan Arbuckle 开源的 fairplay-decrypt 项目彻底打破了这一“真机砸壳”的技术宿命:该项目证明,只要通过极轻量的硬件调试手段一次性提取购买账号对应的 16 字节凭据,便可以在 Linux 或 macOS 桌面环境中,基于公开的 SINF、SUPF 资源与白盒密码学变换,实现 100% 离线、纯算法驱动的 App Store IPA 静态脱壳。