
Uno strumento di dump iOS per Frida aggiornato, con supporto per le ultime API di Frida 17.5.2
Uno strumento moderno di decrittazione della memoria delle applicazioni iOS, costruito per Frida 17.5.2+ con pieno supporto per iOS 14-16 e multipli jailbreak.
Stato: ✅ Funzionante e testato - Dumpa e decritta con successo le app iOS usando Frida 17.5.2 su:
/cores/binpack/ del jailbreak palera1nL'originale frida-ios-dump (ultimo aggiornamento 2020) usa API Frida deprecate che non funzionano con Frida 17.5.2. Questo strumento è costruito da zero usando le moderne API Frida ed è specificamente testato con le patch Frida compatibili con Taurine.
paramiko (libreria SSH Python - installata automaticamente)iproxy (per connessione USB tramite 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: l'app deve essere in esecuzione prima del dump a causa delle restrizioni 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 sul dispositivoPerché funziona su iOS 16:
Lo strumento crea:
Struttura di output di esempio:
/tmp/Ventusky_decrypted/
├── Payload/
│ └── Ventusky.app/
│ ├── Ventusky (decrypted main binary)
│ ├── Frameworks/
│ │ └── *.framework (decrypted frameworks)
│ └── ... (other app resources)
└── Ventusky_decrypted.ipa
Questo strumento è progettato per funzionare con il server Frida patchato per Taurine che include:
# 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
Se ricevi errori sui metadati su iOS 16 dopo la patch:
Diagnostica il 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
Cose fondamentali da controllare:
Lo strumento ora legge la dimensione del file originale dal disco per evitare di eseguire il dump delle regioni di memoria espanse in fase di esecuzione.
Buone notizie: lo strumento ora imposta automaticamente cryptid=0 durante il dump, quindi la patch manuale non è più richiesta!
Compatibilità con iOS 16: lo strumento usa un approccio ibrido:
Questo previene gli errori "Il file è stato estratto manualmente dalla cache condivisa DYLD?" e "I metadati Objective-C appaiono alterati" su iOS 16.
Verifica il dump:
# 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!
Patch manuale (legacy - non più necessaria):
Se per qualche motivo la patch automatica del cryptid non ha funzionato:
# 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
Risultato atteso:
Dettagli tecnici - fixup a catena iOS 16:
Questo strumento usa le moderne API Frida 17.5.2:
Se trovi utile questo strumento o hai bisogno di ulteriori aggiornamenti, considera di supportare il progetto. Boba ha bisogno di:
Licenza MIT - Gratuito per ricerca sulla sicurezza e scopi educativi.
Questo strumento è pensato per:
| Vecchia API (Deprecata) | Nuova API (Moderna) | Note |
|---|
Module.ensureInitialized() | Non necessario | ObjC auto-inizializzato |
Module.findExportByName(null, 'name') | Module.findGlobalExportByName('name') | Esportazioni globali |
Process.getModuleByName() | Process.findModuleByName() | Restituisce null se non trovato |
| I/O file POSIX manuale | new File(path, 'wb') | API File integrata |
Memory.writeByteArray() | file.write(arrayBuffer) | Scrittura binaria diretta |