ipsw
Das Schweizer Taschenmesser für die iOS-/macOS-Forschung
Was ist ipsw 🤔
ipsw ist ein umfassendes Kommandozeilen-Forschungsframework für iOS und macOS. Es bietet Sicherheitsforschern, Reverse Engineers, Jailbreak-Entwicklern und iOS-Enthusiasten ein umfangreiches Toolkit zum Herunterladen, Parsen und Analysieren von Apple-Firmware sowie zur Interaktion mit iOS-Geräten.
Kernfunktionen
- 📱 IPSW/OTA-Analyse – iOS-Firmware-Dateien herunterladen, extrahieren und analysieren
- 🔍 Binäranalyse – Erweitertes Mach-O-Parsing mit ARM-Disassemblierung und KI-Unterstützung
- 🧠 dyld_shared_cache – Vollständige Shared-Cache-Analyse mit ObjC-/Swift-Klassendump
- 🔧 Kernel-Analyse – Kernelcache-Parsing, Syscall-Extraktion und Symbolikation
- 📲 Geräteinteraktion – Umfassende iOS-Geräteverwaltung und -Debugging
- 🔐 Firmware-Forschung – Analyse von IMG4-, iBoot-, SEP- und Co-Prozessor-Firmware
- 🏪 App Store Connect – Vollständige API-Integration für App- und Zertifikatsverwaltung
- 🛠️ Entwicklerwerkzeuge – SSH-, Frida-, Debugging- und Reverse-Engineering-Dienstprogramme
Schnellstart
Installation
macOS
Mit dem blacktop-Tap (enthält Extras)
brew install blacktop/tap/ipsw
Mit der offiziellen Homebrew-Formel
Linux
Windows
scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw
Grundlegende Verwendung
# Download latest iOS IPSW
ipsw download ipsw --device iPhone16,1 --latest
# Extract kernelcache
ipsw extract --kernel iPhone16,1_18.2_22C150_Restore.ipsw
# Analyze dyld_shared_cache
ipsw dyld info /path/to/dyld_shared_cache_arm64
# Get device information
ipsw idev list
Hauptfunktionen
📱 IPSW- & OTA-Verwaltung
- Download-Quellen: Apple, AppleDB, Developer Portal, RSS-Feeds, GitHub, iTunes, Wikipedia
- Dateitypen: IPSW, OTA, macOS-Installer, Xcode, KDKs, PCC-Dateien
- Operationen: Extrahieren, Diff, Mounten, Metadaten analysieren
ipsw download ipsw --device iPhone16,1 --latest
ipsw extract --kernel iPhone16,1_18.2_22C150_Restore.ipsw
ipsw diff iPhone16,1_18.1_22B83_Restore.ipsw iPhone16,1_18.2_22C150_Restore.ipsw
🔍 Binäranalyse & Reverse Engineering
- Mach-O-Parsing: Vollständige Binäranalyse mit Symbolextraktion
- ARM-Disassemblierung: ARM-v9-a-Disassembler mit KI-gestützter Analyse
- Codesignierung: Signaturen verifizieren, Entitlements analysieren
- Binär-Patching: Patches hinzufügen, ändern oder entfernen
ipsw macho info /path/to/binary
ipsw macho disass /path/to/binary --symbol _main
ipsw macho search /path/to/binary --string "password"
🧠 dyld_shared_cache-Analyse
- Cache-Parsing: Vollständige Shared-Cache-Struktur extrahieren und analysieren
- ObjC-Analyse: Klassendumps, Methodenanalyse, Protokoll-Parsing
- Swift-Unterstützung: Swift-Klassendump und -Analyse (experimentell)
- Symbolverwaltung: Symbolextraktion und Adressauflösung
ipsw dyld info /path/to/dyld_shared_cache
ipsw dyld extract /path/to/dyld_shared_cache --dylib Foundation
ipsw dyld objc class /path/to/dyld_shared_cache --class NSString
📲 iOS-Geräteinteraktion (idev)
- Dateisystem: Dateien über AFC durchsuchen und übertragen
- App-Verwaltung: Apps installieren, deinstallieren und analysieren
- Backup & Wiederherstellung: Vollständige Geräte-Backup-Operationen
- Entwicklung: Entwickler-Images mounten, Protokolle erfassen, Paketaufzeichnung
- Diagnose: Akku-Informationen, Absturzprotokolle, Systemdiagnose
ipsw idev list
ipsw idev afc ls /
ipsw idev apps ls
ipsw idev backup create
ipsw idev syslog
🔐 Firmware- & Sicherheitsanalyse
- IMG4: Image4-Dateien parsen und entschlüsseln
- iBoot: Bootloader-Analyse und -Forschung
- SEP: Firmware-Analyse des Secure-Enclave-Prozessors
- AEA: Entschlüsselung von Apple Encrypted Archives
- Co-Prozessoren: AOP-, DCP-, GPU- und Kamera-Firmware-Analyse
ipsw img4 dec iBoot.img4
ipsw fw sep iPhone16,1_18.2_22C150_Restore.ipsw
ipsw fw iboot iPhone16,1_18.2_22C150_Restore.ipsw
🏪 App-Store-Connect-Integration
- Zertifikatsverwaltung: iOS-/macOS-Zertifikate und -Profile
- Geräteregistrierung: Entwicklungsgeräte verwalten
- App-Verwaltung: Bundle-IDs, Capabilities und Reviews
- Provisioning: Vollständiger Lebenszyklus von Provisioning-Profilen
ipsw appstore cert ls
ipsw appstore device reg --name "My Device" --udid 1234567890
ipsw appstore profile create --name "Development Profile"
🛠️ Fortgeschrittene Forschungswerkzeuge
- Symbolikation: Absturzprotokoll-Analyse und Symbolauflösung
- Klassendump: ObjC- und Swift-Klassenextraktion
- SSH-Zugriff: SSH auf gejailbreakte Geräte mit debugserver
- Frida-Integration: Möglichkeiten zur dynamischen Instrumentierung
- KI-gestützter Decompiler: Integration mit Claude, OpenAI, Gemini, Ollama und OpenRouter
ipsw symbolicate crash.ips --dsym /path/to/symbols
ipsw class-dump /path/to/binary
ipsw ssh debugserver
Architektur
ipsw besteht aus zwei Hauptkomponenten:
ipsw – Haupt-CLI-Tool mit vollständigen Analysefähigkeiten
ipswd – REST-API-Daemon für Remote-Operationen und Automatisierung
Konfiguration
ipsw unterstützt YAML-Konfigurationsdateien und Umgebungsvariablen:
# Create config directory
mkdir -p ~/.config/ipsw
# Copy example config
cp config.example.yml ~/.config/ipsw/config.yaml
Datenbankunterstützung
- SQLite (Standard) – Lokale Speicherung
- PostgreSQL – Produktionsbereitstellungen
KI-Decompiler
https://blacktop.github.io/ipsw/docs/guides/decompiler
❱ ipsw macho disass /System/Library/PrivateFrameworks/ApplePushService.framework/apsd --entry \
--dec --dec-model "Claude 3.7 Sonnet"
• Loading symbol cache file...
• Decompiling... 🕒
int main(int argc, char *argv[]) {
@autoreleasepool {
__set_user_dir_suffix(@"com.apple.apsd");
@autoreleasepool {
APSDaemon *daemon = [[APSDaemon alloc] init];
if (daemon) {
NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
[runLoop run];
[runLoop release];
}
[daemon release];
}
return 0;
}
@catch (NSException *exception) {
if ([exception reason] == 1) {
id exceptionObj = [exception retain];
id logger = [APSLog daemon];
if (_os_log_type_enabled(logger, 0x11)) {
[exceptionObj logWithLogger:logger];
}
[logger release];
[exceptionObj release];
}
}
}
Anwendungsfälle
Sicherheitsforschung
- Schwachstellenanalyse und Exploit-Entwicklung
- Bewertung der Firmware-Sicherheit
- Binäres Reverse Engineering
Jailbreak-Entwicklung
- Bootchain-Analyse und -Ausnutzung
- Forschung zu Kernel-Erweiterungen
- Systemmodifikation und -Patching
iOS-Entwicklung
- App-Debugging und -Analyse
- Zertifikats- und Provisioning-Verwaltung
- Gerätetests und Automatisierung
Digitale Forensik
- Extraktion und Analyse von Gerätedaten
- Timeline-Rekonstruktion
- Artefakt-Analyse
Systemanforderungen
- Go: 1.24+ (zum Erstellen aus dem Quellcode)
- Plattform: macOS, Linux, Windows
- USB: libusb für die Geräteinteraktion
- Optional: KI-API-Schlüssel für erweiterte Analyse
Dokumentation
- Website: https://blacktop.github.io/ipsw
- API-Dokumentation: Die REST-API-Dokumentation ist unter
/docs verfügbar, wenn ipswd ausgeführt wird
- Beispiele: Umfassende Verwendungsbeispiele in der Dokumentation
SKILL.md
Statten Sie Ihre KI-Agenten mit den Superkräften von ipsw aus
npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw
🆕 KI-gestütztes Wiki
Stellen Sie Fragen zum Repository mit KI:
[!WARNING]
KI-Antworten können Halluzinationen enthalten – überprüfen Sie wichtige Informationen.
📊 IPSW Diffs
Vorab berechnete Firmware-Unterschiede: ipsw-diffs

Mitwirken
Wir freuen uns über Beiträge! Bitte beachten Sie CONTRIBUTING.md für Richtlinien.
Entwicklung
git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build
Bekannte Probleme
- macOS-IPSW-Unterstützung: Einige macOS-Firmware-Operationen können Kompatibilitätsprobleme aufweisen
- Testen: Umfassende Tests sind aufgrund der Vielfalt an Firmware-Versionen und Gerätetypen eine Herausforderung
- Ressourcenintensiv: Einige Operationen erfordern erheblichen Speicher und Rechenleistung
Erstellen Sie einen Issue, wenn Sie Probleme feststellen – Fehlerbehebungen haben Priorität! Eine umfassende Testsuite ist für zukünftige Versionen geplant.
Danksagungen
Großes Dankeschön an:
- Jonathan Levin für seine legendären Werkzeuge und die umfassende Dokumentation der iOS-Interna
- Die iOS-Forschungsgemeinschaft für kontinuierliche Innovation und Wissensaustausch
- Allen Mitwirkenden, die dazu beitragen, dieses Projekt zu verbessern
Lizenz
MIT-Lizenz – siehe LICENSE für Details.