用于解密越狱 iOS 11.x 上 App Store 应用的工具
以下是使用 https://github.com/BishopFox/bfinject 在 Electra 越狱 iPhone 上解密 Reddit 应用的示例:
Cs-iPhone:~ root# bash bfinject -P Reddit -l dylibs/bfdecrypt.dylib
[+] Electra detected.
[+] Injecting into '/var/containers/Bundle/Application/BCEBDD64-6738-45CE-9B3C-C6F933EA0793/Reddit.app/Reddit'
[+] Getting Team ID from target application...
[+] Thinning dylib into non-fat arm64 image
[+] Signing injectable .dylib with Team ID 2TDUX39LX8 and platform entitlements...
[bfinject4realz] Calling task_for_pid() for PID 3218.
[bfinject4realz] Calling thread_create() on PID 3218
[bfinject4realz] Looking for ROP gadget... found at 0x1016a5110
[bfinject4realz] Fake stack frame at 0x10a06c000
[bfinject4realz] Calling _pthread_set_self() at 0x181303814...
[bfinject4realz] Returned from '_pthread_set_self'
[bfinject4realz] Calling dlopen() at 0x1810c3460...
[bfinject4realz] Returned from 'dlopen'
[bfinject4realz] Success! Library was loaded at 0x1c03e1100
[+] So long and thanks for all the fish.
你的设备上会显示这个屏幕:
完成后,系统会弹出一个 UI 提示,询问你是否要启动一个服务,以便从该服务下载解密后的 IPA:
如果你点按 Yes,设备上会启动一个监听 31336 端口的服务。连接到该端口后,你会收到一份原始 IPA 数据,可以使用 netcat 下载,如下所示:
carl@calisto-3 /tmp $ nc 192.168.1.33 31336 > decrypted.ipa
carl@calisto-3 /tmp $ ls -l decrypted.ipa
-rw-r--r-- 1 carl wheel 14649063 Jan 25 16:57 decrypted.ipa
carl@calisto-3 /tmp $ file decrypted.ipa
decrypted.ipa: iOS App Zip archive data, at least v2.0 to extract
另外,也可以查看设备的控制台日志,它会告诉你解密后的 IPA 存储在何处。例如:
[dumpdecrypted] Wrote /var/mobile/Containers/Data/Application/6E6A5887-8B58-4FC5-A2F3-7870EDB5E8D1/Documents/decrypted-app.ipa
你也可以这样在文件系统中搜索 IPA:
find /var/mobile/Containers/Data/Application/ -name decrypted-app.ipa
将 .ipa 从设备上取下来可以使用 netcat。在你的笔记本电脑上设置一个监听服务:
ncat -l 0.0.0.0 12345 > decrypted.ipa
然后在越狱设备上执行:
cat /path/to/decrypted.ipa > /dev/tcp/<IP_OF_YOUR_COMPUTER>/12345
该 .ipa 将是 App Store 原始 .ipa 的副本,但主二进制文件及其所有附带框架和共享库都会被解密。每个此前加密的文件中的 CRYPTID 标志都会变为 0。你可以获取该 .ipa,提取应用,按需修改,使用自己的开发者证书重新签名,然后按需部署到未越狱的设备上。
已在 Electra 和 LiberiOS 上成功测试。