ipsw
Coltellino svizzero per la ricerca su iOS/macOS
Cos'è ipsw 🤔
ipsw è un framework di ricerca completo da riga di comando per iOS e macOS. Offre un'ampia gamma di strumenti per ricercatori di sicurezza, reverse engineer, sviluppatori di jailbreak e appassionati iOS per scaricare, analizzare e interpretare il firmware Apple e interagire con i dispositivi iOS.
Capacità Principali
- 📱 Analisi IPSW/OTA - Scarica, estrai e analizza i file del firmware iOS
- 🔍 Analisi Binaria - Parsing avanzato dei file Mach-O con disassemblaggio ARM e assistenza dell'AI
- 🧠 dyld_shared_cache - Analisi completa della cache condivisa con dump delle classi ObjC/Swift
- 🔧 Analisi del Kernel - Parsing della kernelcache, estrazione delle syscall e symbolication
- 📲 Interazione con i Dispositivi - Gestione completa e debug dei dispositivi iOS
- 🔐 Ricerca sul Firmware - Analisi del firmware IMG4, iBoot, SEP e dei co-processori
- 🏪 App Store Connect - Integrazione completa con le API per la gestione di app e certificati
- 🛠️ Strumenti per Sviluppatori - Utility per SSH, Frida, debug e reverse engineering
Avvio Rapido
Installazione
macOS
Usando il tap blacktop (include extra)
brew install blacktop/tap/ipsw
Usando la formula ufficiale di Homebrew
Linux
Windows
scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw
Utilizzo di Base
# 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
Funzionalità Principali
📱 Gestione IPSW e OTA
- Fonti di Download: Apple, AppleDB, Developer Portal, feed RSS, GitHub, iTunes, Wikipedia
- Tipi di File: IPSW, OTA, installer macOS, Xcode, KDKs, file PCC
- Operazioni: Estrazione, diff, mount, analisi dei metadati
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
🔍 Analisi Binaria e Reverse Engineering
- Parsing Mach-O: Analisi completa dei binari con estrazione dei simboli
- Disassemblaggio ARM: Disassembler ARM v9-a con analisi basata sull'AI
- Firma del Codice: Verifica le firme, analizza le entitlement
- Patching dei Binari: Aggiungi, modifica o rimuovi patch
ipsw macho info /path/to/binary
ipsw macho disass /path/to/binary --symbol _main
ipsw macho search /path/to/binary --string "password"
🧠 Analisi di dyld_shared_cache
- Parsing della Cache: Estrai e analizza la struttura completa della cache condivisa
- Analisi ObjC: Dump delle classi, analisi dei metodi, parsing dei protocolli
- Supporto Swift: Dump e analisi delle classi Swift (sperimentale)
- Gestione dei Simboli: Estrazione dei simboli e risoluzione degli indirizzi
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
📲 Interazione con i Dispositivi iOS (idev)
- File System: Sfoglia e trasferisci file tramite AFC
- Gestione App: Installa, disinstalla e analizza applicazioni
- Backup e Ripristino: Operazioni complete di backup del dispositivo
- Sviluppo: Monta le immagini di sviluppo, acquisisci i log, cattura i pacchetti
- Diagnostica: Informazioni sulla batteria, log di crash, diagnostica di sistema
ipsw idev list
ipsw idev afc ls /
ipsw idev apps ls
ipsw idev backup create
ipsw idev syslog
🔐 Analisi di Firmware e Sicurezza
- IMG4: Analizza e decripta i file in formato Image4
- iBoot: Analisi e ricerca sul bootloader
- SEP: Analisi del firmware del Secure Enclave Processor
- AEA: Decriptazione degli Archivi Crittografati Apple
- Co-processori: Analisi del firmware di AOP, DCP, GPU, Camera
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
🏪 Integrazione con App Store Connect
- Gestione dei Certificati: Certificati e profili iOS/macOS
- Registrazione dei Dispositivi: Gestisci i dispositivi di sviluppo
- Gestione App: Bundle ID, capability e recensioni
- Provisioning: Ciclo di vita completo dei profili di provisioning
ipsw appstore cert ls
ipsw appstore device reg --name "My Device" --udid 1234567890
ipsw appstore profile create --name "Development Profile"
🛠️ Strumenti di Ricerca Avanzati
- Symbolication: Analisi dei log di crash e risoluzione dei simboli
- Dump delle Classi: Estrazione delle classi ObjC e Swift
- Accesso SSH: SSH sui dispositivi jailbroken con debugserver
- Integrazione Frida: Capacità di strumentazione dinamica
- Decompilatore basato su AI: Integrazione con Claude, OpenAI, Gemini, Ollama e OpenRouter
ipsw symbolicate crash.ips --dsym /path/to/symbols
ipsw class-dump /path/to/binary
ipsw ssh debugserver
Architettura
ipsw è composto da due componenti principali:
ipsw - Il principale strumento CLI con capacità di analisi complete
ipswd - Daemon REST API per operazioni remote e automazione
Configurazione
ipsw supporta file di configurazione YAML e variabili d'ambiente:
# Create config directory
mkdir -p ~/.config/ipsw
# Copy example config
cp config.example.yml ~/.config/ipsw/config.yaml
Supporto Database
- SQLite (predefinito) - Archiviazione locale
- PostgreSQL - Distribuzioni in produzione
Decompilatore AI
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];
}
}
}
Casi d'Uso
Ricerca sulla Sicurezza
- Analisi delle vulnerabilità e sviluppo di exploit
- Valutazione della sicurezza del firmware
- Reverse engineering dei binari
Sviluppo di Jailbreak
- Analisi e sfruttamento della bootchain
- Ricerca sulle estensioni del kernel
- Modifica e patching del sistema
Sviluppo iOS
- Debug e analisi delle app
- Gestione di certificati e provisioning
- Test e automazione dei dispositivi
- Estrazione e analisi dei dati dai dispositivi
- Ricostruzione della timeline
- Analisi degli artefatti
Requisiti
- Go: 1.24+ (per la compilazione dal sorgente)
- Piattaforma: macOS, Linux, Windows
- USB: libusb per l'interazione con i dispositivi
- Opzionale: Chiavi API per l'AI per analisi potenziate
Documentazione
- Sito Web: https://blacktop.github.io/ipsw
- Documentazione API: La documentazione REST API è disponibile su
/docs quando ipswd è in esecuzione
- Esempi: Esempi di utilizzo completi nella documentazione
SKILL.md
Potenzia i tuoi agenti AI con i super poteri di ipsw
npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw
🆕 Wiki basato su AI
Fai domande sul repository utilizzando l'AI:
[!WARNING]
Le risposte dell'AI possono contenere allucinazioni - verifica le informazioni importanti.
📊 IPSW Diffs
Differenze di firmware pre-calcolate: ipsw-diffs

Come Contribuire
Accogliamo con piacere i contributi! Consulta CONTRIBUTING.md per le linee guida.
Sviluppo
git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build
Problemi Noti
- Supporto IPSW macOS: Alcune operazioni sul firmware macOS potrebbero presentare problemi di compatibilità
- Testing: Eseguire test completi è complesso a causa della varietà di versioni del firmware e dei tipi di dispositivi
- Elevato Consumo di Risorse: Alcune operazioni richiedono una quantità significativa di memoria e potenza di elaborazione
Apri un issue se incontri problemi: le correzioni hanno priorità! Una suite di test completa è prevista per le versioni future.
Riconoscimenti
Un enorme ringraziamento a:
- Jonathan Levin per i suoi strumenti leggendari e la documentazione completa sugli internals di iOS
- La community di ricerca iOS per l'innovazione continua e la condivisione delle conoscenze
- Tutti i contributor che aiutano a rendere migliore questo progetto
Licenza
Licenza MIT - consulta LICENSE per i dettagli.