
Ein aktualisiertes Frida-iOS-Dump-Tool, das die neuesten Frida-17.5.2-APIs unterstützt.
Ein modernes iOS-App-Speicher-Entschlüsselungstool, entwickelt für Frida 17.5.2+ mit voller Unterstützung für iOS 14-16 und mehrere Jailbreaks.
Status: ✅ Funktionsfähig und getestet – Dumpen und Entschlüsseln von iOS-Apps mit Frida 17.5.2 erfolgreich auf:
/cores/binpack/-Jailbreak-PfadeDas ursprüngliche frida-ios-dump (zuletzt 2020 aktualisiert) verwendet veraltete Frida-APIs, die mit Frida 17.5.2 nicht funktionieren. Dieses Tool wurde von Grund auf mit modernen Frida-APIs entwickelt und speziell mit den Taurine-kompatiblen Frida-Patches getestet.
paramiko (Python-SSH-Bibliothek – wird automatisch installiert)iproxy (für USB-Verbindung über 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
Wichtig: Die App muss wegen der Einschränkungen des Taurine-Jailbreaks vor dem Dumpen ausgeführt werden.
# 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 auf dem GerätWarum das unter iOS 16 funktioniert:
Das Tool erstellt:
Beispiel für die Ausgabestruktur:
/tmp/Ventusky_decrypted/
├── Payload/
│ └── Ventusky.app/
│ ├── Ventusky (decrypted main binary)
│ ├── Frameworks/
│ │ └── *.framework (decrypted frameworks)
│ └── ... (other app resources)
└── Ventusky_decrypted.ipa
Dieses Tool ist für die Verwendung mit dem Taurine-gepatchten Frida-Server konzipiert, der Folgendes umfasst:
# 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
Wenn nach dem Patchen unter iOS 16 Metadatenfehler auftreten:
Problem diagnostizieren:
# 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
Wichtige Prüfpunkte:
Das Tool liest nun die ursprüngliche Dateigröße von der Festplatte, um das Dumpen von zur Laufzeit erweiterten Speicherbereichen zu vermeiden.
Gute Nachrichten: Das Tool setzt jetzt cryptid=0 automatisch beim Dumpen, manuelles Patchen ist nicht mehr erforderlich!
iOS-16-Kompatibilität: Das Tool verwendet einen Hybridansatz:
Dies verhindert die Fehler „Is this a file manually extracted from the DYLD shared cache?“ und „Objective-C Metadata looks mangled“ unter iOS 16.
Den Dump überprüfen:
# 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!
Manuelles Patchen (Legacy – nicht mehr erforderlich):
Falls das automatische cryptid-Patchen aus irgendeinem Grund nicht funktioniert hat:
# 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
Erwartetes Ergebnis:
Technische Details – iOS-16-Chained-Fixups:
Dieses Tool verwendet moderne Frida-17.5.2-APIs:
Wenn dir dieses Tool nützlich ist oder du weitere Updates benötigst, erwäge bitte, das Projekt zu unterstützen – Boba braucht es:
MIT-Lizenz – Kostenlos für Sicherheitsforschung und Bildungszwecke.
Dieses Tool ist vorgesehen für:
| Alte API (veraltet) | Neue API (modern) | Anmerkungen |
|---|
Module.ensureInitialized() | Not needed | ObjC automatisch initialisiert |
Module.findExportByName(null, 'name') | Module.findGlobalExportByName('name') | Globale Exporte |
Process.getModuleByName() | Process.findModuleByName() | Gibt null zurück, wenn nicht gefunden |
| Manuelle POSIX-Datei-E/A | new File(path, 'wb') | Eingebaute Datei-API |
Memory.writeByteArray() | file.write(arrayBuffer) | Direktes Binärschreiben |