
Utilidad para descifrar aplicaciones de App Store en iOS 11.x con jailbreak.
Utilidad para descifrar apps del App Store en iOS 11.x con jailbreak
Este es un ejemplo que usa https://github.com/BishopFox/bfinject para descifrar la app de Reddit en un iPhone con jailbreak de Electra:
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.
Verás esta pantalla en tu dispositivo:
Cuando termine, se te presentará una alerta de UI para preguntar si quieres levantar un servicio desde el que puedas descargar tu IPA descifrada:
Si tocas Yes, se levantará un servicio en el puerto 31336 de tu dispositivo. Conéctate a él y recibirás una copia sin procesar del IPA que puedes descargar con netcat de la siguiente manera:
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
Alternativamente, revisa el registro de consola del dispositivo; te indicará dónde se almacena el IPA descifrado. Por ejemplo:
[dumpdecrypted] Wrote /var/mobile/Containers/Data/Application/6E6A5887-8B58-4FC5-A2F3-7870EDB5E8D1/Documents/decrypted-app.ipa
También puedes buscar el IPA en el sistema de archivos de la siguiente manera:
find /var/mobile/Containers/Data/Application/ -name decrypted-app.ipa
Puedes sacar el .ipa del dispositivo con netcat. En tu portátil, configura un servicio de escucha:
ncat -l 0.0.0.0 12345 > decrypted.ipa
Y en el dispositivo con jailbreak:
cat /path/to/decrypted.ipa > /dev/tcp/<IP_OF_YOUR_COMPUTER>/12345
El .ipa será un clon del .ipa original del App Store, excepto que el binario principal y todos sus frameworks y librerías compartidas asociados estarán descifrados. El flag CRYPTID será 0 en cada archivo previamente cifrado. Puedes tomar el .ipa, extraer la app, modificarla según sea necesario, volver a firmarla con tu propio certificado de desarrollador e implementarla en dispositivos sin jailbreak según sea necesario.
Esto ha sido probado con éxito con Electra y LiberiOS.