Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
frida-ios-dump-modern — Ein aktualisiertes Frida-iOS-Dump-Tool, das die neuesten Frida-17.5.2-APIs unterstützt. | Kitploit
Tools/GitHubGitHub/jwalker/frida-ios-dump-modern
iOS-SicherheitMobile App-PenetrationstestsReverse EngineeringMalware-AnalyseMobile SicherheitBinäranalyse
GitHubjwalker/frida-ios-dump-modern

frida-ios-dump-modern

Ein aktualisiertes Frida-iOS-Dump-Tool, das die neuesten Frida-17.5.2-APIs unterstützt.

Repository anzeigen
9vor 7 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Moderner iOS-IPA-Dumper

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:

  • iOS 14.7.1 + Taurine-Jailbreak (iPad mini 5)
  • iOS 16.7.12 + palera1n-Jailbreak (iPhone 8)

Funktionen

  • ✅ Kompatibel mit Frida 17.5.2+ (verwendet NativePointer.readByteArray)
  • ✅ Funktioniert mit Taurine-Jailbreak (iOS 14.7.1)
  • ✅ Funktioniert mit palera1n-Jailbreak (iOS 16.7.12)
  • ✅ Verarbeitet palera1ns /cores/binpack/-Jailbreak-Pfade
  • ✅ Schnelle Entschlüsselung durch Speicher-Dump + manuelles cryptid-Patching
  • ✅ Keine veralteten API-Aufrufe
  • ✅ Sauberer, wartbarer Code
  • ✅ Automatische IPA-Paketierung
  • ✅ Verwendet Python paramiko (keine externen Tools erforderlich)
  • ✅ Detaillierte Fortschrittsanzeige

Warum dieses Tool?

Das 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.

Anforderungen

macOS/Host-Anforderungen

  • Python 3.8+
  • Frida 17.5.2+
  • paramiko (Python-SSH-Bibliothek – wird automatisch installiert)
  • iproxy (für USB-Verbindung über libimobiledevice)

iOS-Geräteanforderungen

  • Gejailbreaktes iOS-Gerät (getestet auf iOS 14.7.1 + Taurine)
  • Gepatchter frida-server läuft (siehe Frida-Patches in will add my patch repo)
  • SSH-Zugriff aktiviert

Installation

root@kitploit:~
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

USB-Verbindung einrichten

root@kitploit:~
# Install libimobiledevice if needed
brew install libimobiledevice

# Start USB tunnel (in a separate terminal)
iproxy 2222 22

Verwendung

1. Installierte Apps auflisten

root@kitploit:~
python dump.py -l

2. Eine Anwendung dumpen

Wichtig: Die App muss wegen der Einschränkungen des Taurine-Jailbreaks vor dem Dumpen ausgeführt werden.

root@kitploit:~
# 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

3. Beispiel: Ventusky dumpen

root@kitploit:~
# 1. Open Ventusky on your iOS device
# 2. Run:
python dump.py com.in-meteo.ventusky -P mypassword

So funktioniert es

iOS-16-kompatibler Ansatz (Hybridmethode)

  1. Anhängen: Stellt über Frida eine Verbindung zum laufenden App-Prozess her
  2. Auflisten: Listet alle geladenen Module (Binaries) in der App auf
  3. Disk-Binary lesen: Liest das ursprüngliche verschlüsselte Binary aus dem Dateisystem des Geräts
    • Kritisch für iOS 16: Erhält die LC_DYLD_CHAINED_FIXUPS-Daten
    • Behält die ursprünglichen DATA-Segmente mit intakten Fixup-Ketten bei
  4. Entschlüsseltes Segment lesen: Liest NUR das verschlüsselte TEXT-Segment aus dem Speicher
    • iOS entschlüsselt Code zur Laufzeit
    • Wir lesen nur den entschlüsselten Teil, nicht das gesamte Binary
  5. Ersetzen und Patchen:
    • Ersetzt das verschlüsselte TEXT-Segment im Disk-Binary durch entschlüsselten Speicher
    • Setzt cryptid=0 in LC_ENCRYPTION_INFO
    • Alle DATA-Segmente bleiben unberührt (erhält Fixups)
  6. Dump: Schreibt das Hybrid-Binary nach /tmp auf dem Gerät
  7. Download: Überträgt Dateien per SCP über paramiko vom Gerät
  8. Paketieren: Erstellt eine entschlüsselte IPA-Datei, bereit für die Analyse

Warum das unter iOS 16 funktioniert:

  • iOS 16 verwendet Chained Fixups – Zeiger werden als „Ketten“ gespeichert, die dyld zur Laufzeit auflöst
  • Das Dumpen aus dem Speicher liefert aufgelöste Zeiger, aber die Tools erwarten Fixup-Ketten
  • Indem wir das Disk-Binary lesen und nur den verschlüsselten TEXT ersetzen, bleiben die ursprünglichen Fixups erhalten
  • Dies ist derselbe Ansatz, den bagbak und andere moderne Dumper verwenden

Ausgabe

Das Tool erstellt:

  • Einzelne entschlüsselte Binaries
  • Komplettes App-Bundle mit entschlüsselten Binaries
  • Paketierte IPA-Datei, bereit für die Analyse

Beispiel für die Ausgabestruktur:

root@kitploit:~
/tmp/Ventusky_decrypted/
├── Payload/
│   └── Ventusky.app/
│       ├── Ventusky (decrypted main binary)
│       ├── Frameworks/
│       │   └── *.framework (decrypted frameworks)
│       └── ... (other app resources)
└── Ventusky_decrypted.ipa

Taurine-Jailbreak-Kompatibilität

Dieses Tool ist für die Verwendung mit dem Taurine-gepatchten Frida-Server konzipiert, der Folgendes umfasst:

  1. Keine Thread-Suspendierung unter iOS 14: Verhindert Kernel-Panics
  2. Keine launchd-Injektion: Respektiert Taurine-Einschränkungen
  3. Manuelles Starten der App erforderlich: Apps müssen vor dem Dumpen manuell gestartet werden

Fehlerbehebung

„Kein USB-Gerät gefunden“

root@kitploit:~
# 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 &"

„App nicht gefunden“

root@kitploit:~
# List apps to find correct bundle ID:
python dump.py -l

„App läuft nicht“

root@kitploit:~
# Launch the app manually on your device first
# This is required due to Taurine jailbreak restrictions

SSH-Authentifizierung fehlgeschlagen

root@kitploit:~
# Test SSH connection:
ssh -p 2222 root@localhost

# If password prompt works, use -P flag:
python dump.py com.example.app -P your_password

iOS 16: „Objective-C Metadata looks mangled“ in Hopper

Wenn nach dem Patchen unter iOS 16 Metadatenfehler auftreten:

Problem diagnostizieren:

root@kitploit:~
# 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:

  1. Die Dateigröße entspricht dem ursprünglichen Binary auf dem Datenträger
  2. Achte auf LC_DYLD_CHAINED_FIXUPS (iOS-16-spezifisch)
  3. Stelle sicher, dass cryptid nach dem Patchen 0 ist

Das Tool liest nun die ursprüngliche Dateigröße von der Festplatte, um das Dumpen von zur Laufzeit erweiterten Speicherbereichen zu vermeiden.

Nach dem Dump: Überprüfung

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:

  1. Liest das ursprüngliche Binary von der Festplatte (erhält Chained Fixups)
  2. Ersetzt nur das verschlüsselte TEXT-Segment durch entschlüsselten Speicher
  3. Setzt cryptid=0 automatisch
  4. Erhält alle DATA-Segmente mit den ursprünglichen Fixup-Ketten intakt

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:

root@kitploit:~
# 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:

root@kitploit:~
# 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:

  • ✅ Hopper öffnet ohne „ciphered“- oder „mangled metadata“-Warnungen
  • ✅ Alle Objective-C-Klassen und -Methoden sichtbar
  • ✅ Prozedurnamen korrekt aufgelöst (nicht sub_XXXXX)
  • ✅ Funktioniert sowohl unter iOS 14 (Taurine) als auch unter iOS 16 (palera1n)

Technische Details – iOS-16-Chained-Fixups:

  • Problem: iOS 16 verwendet LC_DYLD_CHAINED_FIXUPS zur Zeigerauthentifizierung
  • Herausforderung: Das Dumpen aus dem Speicher liefert aufgelöste Zeiger, keine Fixup-Ketten
  • Lösung: Hybridansatz
    1. Originales verschlüsseltes Binary von der Festplatte lesen (enthält Fixup-Ketten)
    2. NUR das entschlüsselte TEXT-Segment aus dem Speicher lesen
    3. Verschlüsselten TEXT im Disk-Binary durch entschlüsselten Speicher ersetzen
    4. DATA-Segmente von der Festplatte beibehalten (Fixup-Ketten intakt)
    5. cryptid=0 automatisch setzen
  • Ergebnis: Das Binary besitzt entschlüsselten Code + ursprüngliche Fixup-Ketten = Hopper zufrieden!

API-Unterschiede zum alten frida-ios-dump

Dieses Tool verwendet moderne Frida-17.5.2-APIs:

Unterstützung

Wenn dir dieses Tool nützlich ist oder du weitere Updates benötigst, erwäge bitte, das Projekt zu unterstützen – Boba braucht es:

☕ Kauf mir einen Boba

Lizenz

MIT-Lizenz – Kostenlos für Sicherheitsforschung und Bildungszwecke.

Danksagungen

  • Entwickelt für die Verwendung mit Taurine-gepatchtem Frida (Fallstudie folgt in Kürze)
  • Inspiriert vom ursprünglichen frida-ios-dump von AloneMonkey
  • Moderne API-Implementierung für Frida 17.5.2+

Sicherheitshinweis

Dieses Tool ist vorgesehen für:

  • Sicherheitsforschung
  • CTF-Herausforderungen
  • Bildungszwecke
  • ???
  • Profit
Tool herunterladen
Alte API (veraltet)Neue API (modern)Anmerkungen
Module.ensureInitialized()Not neededObjC 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/Anew File(path, 'wb')Eingebaute Datei-API
Memory.writeByteArray()file.write(arrayBuffer)Direktes Binärschreiben