
ipsw v3.1.716
Coltellino svizzero per la ricerca iOS/macOS
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. Fornisce un'ampia gamma di strumenti per ricercatori di sicurezza, reverse engineer, sviluppatori di jailbreak e appassionati iOS per scaricare, analizzare e studiare il firmware Apple e interagire con i dispositivi iOS.
Funzionalità principali
- 📱 Analisi IPSW/OTA - Scarica, estrai e analizza i file firmware iOS
- 🔍 Analisi binaria - Parsing avanzato di Mach-O con disassemblaggio ARM e assistenza AI
- 🧠 dyld_shared_cache - Analisi completa della cache condivisa con dumping delle classi ObjC/Swift
- 🔧 Analisi del kernel - Parsing della kernelcache, estrazione delle syscall e symbolication
- 📲 Interazione con i dispositivi - Gestione e debug completi dei dispositivi iOS
- 🔐 Ricerca sul firmware - Analisi del firmware IMG4, iBoot, SEP e co-processori
- 🏪 App Store Connect - Integrazione API completa per la gestione di app e certificati
- 🛠️ Strumenti per sviluppatori - Utility per SSH, Frida, debug e reverse engineering
Avvio rapido
Installazione
macOS
Utilizzando il tap blacktop (include extra)
brew install blacktop/tap/ipsw
Utilizzando la formula Homebrew ufficiale
brew install ipsw
Linux
sudo snap install ipsw
Windows
scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw
Utilizzo di base
# Scarica l'ultimo IPSW iOS
ipsw download ipsw --device iPhone16,1 --latest
# Estrai la kernelcache
ipsw extract --kernel iPhone16,1_18.2_22C150_Restore.ipsw
# Analizza dyld_shared_cache
ipsw dyld info /path/to/dyld_shared_cache_arm64
# Ottieni informazioni sul dispositivo
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, KDK, file PCC
- Operazioni: Estrai, confronta, monta, analizza i 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 binaria completa con estrazione dei simboli
- Disassemblaggio ARM: Disassembler ARM v9-a con analisi basata su AI
- Firma del codice: Verifica delle firme, analisi delle entitlement
- Patching binario: 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 le applicazioni
- Backup e ripristino: Operazioni complete di backup del dispositivo
- Sviluppo: Monta immagini sviluppatore, cattura log, packet capture
- 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 del firmware e della sicurezza
- IMG4: Parsing e decrittazione dei file in formato Image4
- iBoot: Analisi e ricerca sul bootloader
- SEP: Analisi del firmware del Secure Enclave Processor
- AEA: Decrittazione degli archivi crittografati Apple
- Co-processori: Analisi del firmware 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 certificati: Certificati e profili iOS/macOS
- Registrazione dispositivi: Gestisci i dispositivi di sviluppo
- Gestione app: Bundle ID, funzionalità 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 su dispositivi jailbroken con debugserver
- Integrazione Frida: Funzionalità 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- Strumento CLI principale con funzionalità di analisi completeipswd- Daemon API REST per operazioni remote e automazione
Configurazione
ipsw supporta file di configurazione YAML e variabili d'ambiente:
# Crea la directory di configurazione
mkdir -p ~/.config/ipsw
# Copia la configurazione di esempio
cp config.example.yml ~/.config/ipsw/config.yaml
Supporto database
- SQLite (predefinito) - Archiviazione locale
- PostgreSQL - Distribuzioni di produzione
Decompilatore AI
❱ ipsw macho disass /System/Library/PrivateFrameworks/ApplePushService.framework/apsd --entry \
--dec --dec-model "Claude 3.7 Sonnet"
• Caricamento del file cache dei simboli...
• Decompilazione... 🕒
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
Informatica forense digitale
- Estrazione e analisi dei dati del dispositivo
- Ricostruzione della timeline
- Analisi degli artefatti
Requisiti
- Go: 1.26+ (per la compilazione dal sorgente)
- Piattaforma: macOS, Linux, Windows
- USB: libusb per l'interazione con i dispositivi
- Opzionale: Chiavi API AI per analisi avanzate
Documentazione
- Sito web: https://blacktop.github.io/ipsw
- Documentazione API: Documentazione API REST disponibile su
/docsquando si esegueipswd - Esempi: Esempi di utilizzo completi nella documentazione
SKILL.md
Potenzia i tuoi agenti AI con i superpoteri 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.
Risorse della community
📊 Diff IPSW
Differenze firmware pre-calcolate: ipsw-diffs
💬 Community
Contributi
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à
- Test: I test completi sono difficili a causa della varietà di versioni del firmware e tipi di dispositivi
- Intensivo di risorse: Alcune operazioni richiedono memoria e potenza di elaborazione significative
Crea un issue se incontri problemi - le correzioni hanno priorità! Una suite di test completa è prevista per le versioni future.
Crediti
Un enorme ringraziamento a:
- Jonathan Levin per i suoi strumenti leggendari e la documentazione completa sugli internals iOS
- La community di ricerca iOS per l'innovazione continua e la condivisione delle conoscenze
- Tutti i contributori che aiutano a migliorare questo progetto
Licenza
Licenza MIT - consulta LICENSE per i dettagli.