Torna agli aggiornamenti
New releaseSep 12, 2026

ipsw v3.1.716

Coltellino svizzero per la ricerca iOS/macOS

Condividi

IPSW Logo

ipsw

Coltellino svizzero per la ricerca su iOS/macOS


ipsw è un toolkit da riga di comando per la ricerca e il reverse engineering del firmware Apple. Scarica e decomprimi IPSW e OTA, ispeziona binari Mach-O e dyld shared cache, analizza kernelcache e lavora con dispositivi iOS connessi.

Agent skill · Installazione · Esempi CLI · Documentazione

Usare ipsw con un agente AI

Inizia con ipsw-skill se lavori in Claude Code, Codex, Gemini CLI o un altro agente che supporta le skill. Fornisce all'agente riferimenti ai comandi e flussi di lavoro per l'estrazione del firmware, l'analisi dei binari e la ricerca sulle piattaforme Apple.

Installa la CLI ipsw, poi aggiungi la skill:

npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw

Puoi quindi richiedere un'attività in linguaggio naturale. Ad esempio:

Scarica l'ultimo IPSW per iPhone 15 Pro ed estrai il suo kernelcache.

Estrai gli header Objective-C di SpringBoardServices da questa dyld shared cache.

Confronta i KEXT in questi due kernelcache.

Il README della skill contiene le istruzioni di configurazione per i singoli agenti, incluso il plugin per Claude Code e l'estensione per Gemini CLI.

Installazione

macOS

Il tap Homebrew del maintainer include la build con gli extra:

brew install blacktop/tap/ipsw

È disponibile anche la formula principale di Homebrew: brew install ipsw.

Linux

sudo snap install ipsw

Windows

scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw

Puoi anche scaricare i binari da GitHub Releases. Consulta la guida all'installazione per altri pacchetti e dipendenze opzionali. Alcuni comandi dipendono dal sistema operativo host o dalla variante di build; il supporto Frida, ad esempio, ha una build separata.

Cosa puoi fare

AreaStrumenti
FirmwareScarica IPSW, OTA, installer macOS, Xcode e KDK; estrai componenti e confronta build
Mach-OIspeziona load command, simboli, firme ed entitlement; disassembla codice ARM64
dyld shared cacheTrova simboli e riferimenti incrociati, estrai dylib, esegui il dump degli header Objective-C e ispeziona i metadati Swift
KernelEstrai KEXT, ispeziona syscall e simboli e confronta kernelcache
Componenti firmwareAnalizza IMG4, decifra archivi AEA e ispeziona iBoot e firmware dei coprocessori
DispositiviElenca dispositivi e app, trasferisci file con AFC, cattura log e monta immagini di sviluppo
App Store ConnectGestisci certificati, bundle ID, dispositivi e profili di provisioning
RicercaSimbolizza crash log, esegui il debug via SSH, traccia con Frida e decompila con un LLM

Esempi CLI

Sostituisci i percorsi dei file di esempio con i tuoi. Esegui ipsw --help o aggiungi --help a qualsiasi sottocomando per visualizzarne le opzioni.

Scaricare ed estrarre il firmware

# Download the latest IPSW for iPhone 15 Pro
ipsw download ipsw --device iPhone16,1 --latest

# Inspect a local IPSW and extract its kernelcache
ipsw info /path/to/firmware.ipsw
ipsw extract --kernel /path/to/firmware.ipsw

# Compare two firmware builds
ipsw diff /path/to/old.ipsw /path/to/new.ipsw

Esplorare una dyld shared cache

ipsw dyld info /path/to/dyld_shared_cache_arm64e

# Extract Foundation for use in other tools
ipsw dyld extract /path/to/dyld_shared_cache_arm64e Foundation

# Dump headers directly from the cache
ipsw class-dump /path/to/dyld_shared_cache_arm64e SpringBoardServices --headers -o headers

Usa la cache direttamente per l'analisi Objective-C: le dylib estratte possono comunque fare riferimento a metadati memorizzati altrove nella cache.

Ispezionare binari e kernelcache

# Select an architecture explicitly for universal binaries
ipsw macho info /path/to/binary --arch arm64e
ipsw macho disass /path/to/binary --arch arm64e --symbol _main

# Search a directory of binaries for an imported symbol
ipsw macho search /path/to/binaries --import 'CCCrypt'

# List KEXTs, then extract one by its full bundle ID
ipsw kernel kexts /path/to/kernelcache
ipsw kernel extract /path/to/kernelcache com.apple.driver.ASIOKit -o kexts

Lavorare con un dispositivo connesso

ipsw idev list
ipsw idev apps ls
ipsw idev afc ls /
ipsw idev syslog

Decompilare con un LLM

I comandi macho disass e dyld disass possono inviare il disassemblato a un provider LLM configurato con --dec. Consulta la guida al decompilatore per la configurazione del provider, la selezione del modello e gli esempi.

Configurazione e automazione

La CLI legge la configurazione YAML da ~/.config/ipsw/config.yaml; usa --config per selezionare un altro file. Consulta config.example.yml e la guida alla configurazione per le impostazioni e le variabili d'ambiente.

Per gli script, seleziona un'architettura con --arch quando apri binari universali e usa un percorso dylib completo quando un nome breve è ambiguo. I comandi che supportano --json lo documentano nel loro help.

Il demone separato ipswd espone un'API REST per l'automazione. Consulta il riferimento API.

Documentazione e community

Quando segnali un bug, includi ipsw version, il comando eseguito e la build del firmware o il tipo di file rilevante. Oscura le informazioni personali da log e crash report.

Compilare e contribuire

Compilare dal sorgente richiede Go 1.26 o successivo e una toolchain C per CGO:

git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build

Consulta CONTRIBUTING.md per le linee guida di sviluppo e contribuzione.

Crediti

Grazie a Jonathan Levin per i suoi strumenti e la documentazione sugli internals di iOS, alla community di ricerca sulla sicurezza Apple e a tutti coloro che contribuiscono con codice, bug report e ricerca.

Licenza

MIT.

Categorie