Retour aux mises à jour
New releaseSep 12, 2026

ipsw v3.1.716

Couteau suisse de recherche pour iOS/macOS

Partager

IPSW Logo

ipsw

Couteau suisse pour la recherche sur iOS/macOS


ipsw est une boîte à outils en ligne de commande pour la recherche et l'ingénierie inverse sur les firmwares Apple. Téléchargez et décompressez des IPSW et des OTA, inspectez les binaires Mach-O et les caches partagés dyld, analysez les kernelcaches et travaillez avec les appareils iOS connectés.

Compétence d'agent · Installation · Exemples CLI · Documentation

Utiliser ipsw avec un agent IA

Commencez par ipsw-skill si vous travaillez dans Claude Code, Codex, Gemini CLI ou un autre agent prenant en charge les compétences. Cela fournit à l'agent des références de commandes et des workflows pour l'extraction de firmware, l'analyse de binaires et la recherche sur les plateformes Apple.

Installez la CLI ipsw, puis ajoutez la compétence :

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

Vous pouvez ensuite demander une tâche en langage naturel. Par exemple :

Télécharge le dernier IPSW pour iPhone 15 Pro et extrais son kernelcache.

Extrais les en-têtes Objective-C de SpringBoardServices depuis ce cache partagé dyld.

Compare les KEXT de ces deux kernelcaches.

Le README de la compétence contient les instructions de configuration pour chaque agent, y compris le plugin Claude Code et l'extension Gemini CLI.

Installation

macOS

Le tap Homebrew du mainteneur inclut la version extras :

brew install blacktop/tap/ipsw

La formule principale Homebrew est également disponible : brew install ipsw.

Linux

sudo snap install ipsw

Windows

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

Vous pouvez également télécharger les binaires depuis GitHub Releases. Consultez le guide d'installation pour les autres paquets et les dépendances optionnelles. Certaines commandes dépendent du système d'exploitation hôte ou de la variante de compilation ; la prise en charge de Frida, par exemple, dispose d'une compilation distincte.

Ce que vous pouvez faire

DomaineOutils
FirmwareTélécharger des IPSW, OTA, installateurs macOS, Xcode et KDK ; extraire des composants et comparer des builds
Mach-OInspecter les load commands, symboles, signatures et entitlements ; désassembler du code ARM64
Caches partagés dyldTrouver des symboles et des références croisées, extraire des dylibs, extraire les en-têtes Objective-C et inspecter les métadonnées Swift
NoyauExtraire les KEXT, inspecter les appels système et les symboles, et comparer les kernelcaches
Composants de firmwareAnalyser IMG4, déchiffrer les archives AEA et inspecter iBoot et le firmware des coprocesseurs
AppareilsLister les appareils et les applications, transférer des fichiers avec AFC, capturer les logs et monter les images de développement
App Store ConnectGérer les certificats, les bundle IDs, les appareils et les profils de provisionnement
RechercheSymboliser les journaux de crash, déboguer via SSH, tracer avec Frida et décompiler avec un LLM

Exemples CLI

Remplacez les chemins de fichiers d'exemple par les vôtres. Exécutez ipsw --help ou ajoutez --help à n'importe quelle sous-commande pour voir ses options.

Télécharger et extraire un 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

Explorer un cache partagé dyld

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

Utilisez le cache directement pour l'analyse Objective-C : les dylibs extraites peuvent toujours référencer des métadonnées stockées ailleurs dans le cache.

Inspecter les binaires et les kernelcaches

# 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

Travailler avec un appareil connecté

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

Décompiler avec un LLM

Les commandes macho disass et dyld disass peuvent envoyer le désassemblage à un fournisseur LLM configuré avec --dec. Consultez le guide du décompilateur pour la configuration du fournisseur, la sélection du modèle et des exemples.

Configuration et automatisation

La CLI lit la configuration YAML depuis ~/.config/ipsw/config.yaml ; utilisez --config pour sélectionner un autre fichier. Consultez config.example.yml et le guide de configuration pour les paramètres et les variables d'environnement.

Pour les scripts, sélectionnez une architecture avec --arch lors de l'ouverture de binaires universels et utilisez un chemin complet de dylib lorsqu'un nom court est ambigu. Les commandes prenant en charge --json le documentent dans leur aide.

Le démon distinct ipswd expose une API REST pour l'automatisation. Consultez la référence de l'API.

Documentation et communauté

Lorsque vous signalez un bug, incluez ipsw version, la commande que vous avez exécutée et la build de firmware ou le type de fichier concerné. Masquez les informations personnelles dans les logs et les rapports de crash.

Compiler et contribuer

Compiler depuis les sources nécessite Go 1.26 ou une version ultérieure et une chaîne d'outils C pour CGO :

Catégories