
Una herramienta actualizada de dump para iOS compatible con las últimas APIs de Frida 17.5.2
Una herramienta moderna de descifrado de memoria de aplicaciones iOS, creada para Frida 17.5.2+ con soporte completo para iOS 14-16 y múltiples jailbreaks.
Estado: ✅ Funcionando y probado - Volca y descifra aplicaciones iOS con Frida 17.5.2 en:
/cores/binpack/ de palera1nEl frida-ios-dump original (última actualización en 2020) usa API de Frida obsoletas que no funcionan con Frida 17.5.2. Esta herramienta está construida desde cero con API modernas de Frida y está específicamente probada con los parches de Frida compatibles con Taurine.
paramiko (librería SSH de Python: se instala automáticamente)iproxy (para la conexión USB mediante libimobiledevice)will add my patch repo)cd /Users/username/git/frida-ios-dump-modern
# Create virtual environment with uv:
uv venv
source .venv/bin/activate
# Install dependencies
uv pip install -r requirements.txt
# Make script executable
chmod +x dump.py
# Install libimobiledevice if needed
brew install libimobiledevice
# Start USB tunnel (in a separate terminal)
iproxy 2222 22
python dump.py -l
Importante: La aplicación debe estar en ejecución antes de volcarla debido a las restricciones del jailbreak Taurine.
# 1. Launch the app on your device manually
# 2. Run the dumper:
python dump.py com.example.app
# With custom SSH password:
python dump.py com.example.app -P your_password
# With custom output directory:
python dump.py com.example.app -o /path/to/output
# 1. Open Ventusky on your iOS device
# 2. Run:
python dump.py com.in-meteo.ventusky -P mypassword
/tmp en el dispositivoPor qué funciona esto en iOS 16:
La herramienta crea:
Estructura de salida de ejemplo:
/tmp/Ventusky_decrypted/
├── Payload/
│ └── Ventusky.app/
│ ├── Ventusky (decrypted main binary)
│ ├── Frameworks/
│ │ └── *.framework (decrypted frameworks)
│ └── ... (other app resources)
└── Ventusky_decrypted.ipa
Esta herramienta está diseñada para funcionar con el servidor de Frida parcheado para Taurine, que incluye:
# Check frida-server is running on device:
ssh -p 2222 root@localhost "ps aux | grep frida-server"
# Restart frida-server if needed:
ssh -p 2222 root@localhost "killall frida-server; frida-server &"
# List apps to find correct bundle ID:
python dump.py -l
# Launch the app manually on your device first
# This is required due to Taurine jailbreak restrictions
# Test SSH connection:
ssh -p 2222 root@localhost
# If password prompt works, use -P flag:
python dump.py com.example.app -P your_password
Si estás obteniendo errores de metadatos en iOS 16 después del parcheo:
Diagnostica el problema:
# Run diagnostic on dumped binary
./diagnose_ios16.sh /tmp/AppName_decrypted/Payload/AppName.app/AppName
# Compare with working iOS 14 binary
./diagnose_ios16.sh /path/to/working/ios14/binary
Puntos clave a revisar:
La herramienta ahora lee el tamaño del archivo original del disco para evitar volcar regiones de memoria expandidas en tiempo de ejecución.
Buenas noticias: la herramienta ahora establece cryptid=0 automáticamente durante el volcado, ¡así que el parcheo manual ya no es necesario!
Compatibilidad con iOS 16: la herramienta usa un enfoque híbrido:
Esto evita los errores "Is this a file manually extracted from the DYLD shared cache?" y "Objective-C Metadata looks mangled" en iOS 16.
Verifica el volcado:
# Check that cryptid is 0 (should be automatic now)
otool -l Payload/App.app/App | grep cryptid
# Should show: cryptid 0
# Check file has all segments
otool -l Payload/App.app/App | grep "segname __"
# Should show: __TEXT, __DATA_CONST, __DATA, __LINKEDIT
# Open in Hopper - should work without warnings!
Parcheo manual (heredado: ya no es necesario):
Si por alguna razón el parcheo automático de cryptid no funcionó:
# Check if patching needed
otool -l Payload/App.app/App | grep cryptid
# If shows cryptid 1, run:
python patch_cryptid.py Payload/App.app/App
mv Payload/App.app/App.patched Payload/App.app/App
Resultado esperado:
Detalles técnicos: chained fixups de iOS 16
Esta herramienta usa las API modernas de Frida 17.5.2:
Si te resulta útil esta herramienta o necesitas más actualizaciones, considera apoyar el proyecto. Boba lo necesita:
Licencia MIT: libre para investigación de seguridad y fines educativos.
Esta herramienta está destinada a:
| API antigua (obsoleta) | API nueva (moderna) | Notas |
|---|
Module.ensureInitialized() | No es necesario | ObjC se auto-inicializa |
Module.findExportByName(null, 'name') | Module.findGlobalExportByName('name') | Exportaciones globales |
Process.getModuleByName() | Process.findModuleByName() | Devuelve null si no se encuentra |
| E/S de archivos POSIX manual | new File(path, 'wb') | API de archivo integrada |
Memory.writeByteArray() | file.write(arrayBuffer) | Escritura binaria directa |