
ipsw v3.1.716
Couteau suisse de recherche pour iOS/macOS
ipsw
Couteau suisse de recherche iOS/macOS
Qu'est-ce que ipsw 🤔
ipsw est un framework de recherche en ligne de commande complet pour iOS et macOS. Il fournit une boîte à outils étendue pour les chercheurs en sécurité, les ingénieurs en rétro-ingénierie, les développeurs de jailbreak et les passionnés d'iOS afin de télécharger, analyser et examiner les firmwares Apple et d'interagir avec les appareils iOS.
Capacités principales
- 📱 Analyse IPSW/OTA - Télécharger, extraire et analyser les fichiers de firmware iOS
- 🔍 Analyse binaire - Analyse avancée Mach-O avec désassemblage ARM et assistance IA
- 🧠 dyld_shared_cache - Analyse complète du cache partagé avec extraction des classes ObjC/Swift
- 🔧 Analyse du noyau - Analyse du kernelcache, extraction des appels système et symbolication
- 📲 Interaction avec les appareils - Gestion et débogage complets des appareils iOS
- 🔐 Recherche sur les firmwares - Analyse des firmwares IMG4, iBoot, SEP et des coprocesseurs
- 🏪 App Store Connect - Intégration complète de l'API pour la gestion des applications et des certificats
- 🛠️ Outils de développement - Utilitaires SSH, Frida, débogage et rétro-ingénierie
Démarrage rapide
Installation
macOS
En utilisant le tap blacktop (inclut les extras)
brew install blacktop/tap/ipsw
En utilisant la formule Homebrew officielle
brew install ipsw
Linux
sudo snap install ipsw
Windows
scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw
Utilisation de base
# Télécharger le dernier IPSW iOS
ipsw download ipsw --device iPhone16,1 --latest
# Extraire le kernelcache
ipsw extract --kernel iPhone16,1_18.2_22C150_Restore.ipsw
# Analyser dyld_shared_cache
ipsw dyld info /path/to/dyld_shared_cache_arm64
# Obtenir les informations de l'appareil
ipsw idev list
Fonctionnalités principales
📱 Gestion IPSW & OTA
- Sources de téléchargement : Apple, AppleDB, Portail développeur, flux RSS, GitHub, iTunes, Wikipédia
- Types de fichiers : IPSW, OTA, installateurs macOS, Xcode, KDK, fichiers PCC
- Opérations : Extraire, différencier, monter, analyser les métadonnées
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
🔍 Analyse binaire et rétro-ingénierie
- Analyse Mach-O : Analyse complète des binaires avec extraction des symboles
- Désassemblage ARM : Désassembleur ARM v9-a avec analyse assistée par IA
- Signature de code : Vérifier les signatures, analyser les entitlements
- Correction binaire : Ajouter, modifier ou supprimer des correctifs
ipsw macho info /path/to/binary
ipsw macho disass /path/to/binary --symbol _main
ipsw macho search /path/to/binary --string "password"
🧠 Analyse dyld_shared_cache
- Analyse du cache : Extraire et analyser la structure complète du cache partagé
- Analyse ObjC : Extraction des classes, analyse des méthodes, analyse des protocoles
- Support Swift : Extraction et analyse des classes Swift (expérimental)
- Gestion des symboles : Extraction des symboles et résolution des adresses
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
📲 Interaction avec les appareils iOS (idev)
- Système de fichiers : Parcourir et transférer des fichiers via AFC
- Gestion des applications : Installer, désinstaller et analyser les applications
- Sauvegarde et restauration : Opérations complètes de sauvegarde des appareils
- Développement : Monter les images développeur, capturer les journaux, capture de paquets
- Diagnostics : Informations sur la batterie, journaux de crash, diagnostics système
ipsw idev list
ipsw idev afc ls /
ipsw idev apps ls
ipsw idev backup create
ipsw idev syslog
🔐 Analyse des firmwares et de la sécurité
- IMG4 : Analyser et déchiffrer les fichiers au format Image4
- iBoot : Analyse et recherche sur le bootloader
- SEP : Analyse du firmware du processeur Secure Enclave
- AEA : Déchiffrement des archives chiffrées Apple
- Coprocesseurs : Analyse des firmwares AOP, DCP, GPU, caméra
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
🏪 Intégration App Store Connect
- Gestion des certificats : Certificats et profils iOS/macOS
- Enregistrement des appareils : Gérer les appareils de développement
- Gestion des applications : Bundle IDs, capacités et avis
- Provisionnement : Cycle de vie complet des profils de provisionnement
ipsw appstore cert ls
ipsw appstore device reg --name "My Device" --udid 1234567890
ipsw appstore profile create --name "Development Profile"
🛠️ Outils de recherche avancés
- Symbolication : Analyse des journaux de crash et résolution des symboles
- Extraction de classes : Extraction des classes ObjC et Swift
- Accès SSH : SSH sur appareil jailbreaké avec debugserver
- Intégration Frida : Capacités d'instrumentation dynamique
- Décompilateur assisté par IA : Intégration avec Claude, OpenAI, Gemini, Ollama et OpenRouter
ipsw symbolicate crash.ips --dsym /path/to/symbols
ipsw class-dump /path/to/binary
ipsw ssh debugserver
Architecture
ipsw se compose de deux composants principaux :
ipsw- Outil CLI principal avec des capacités d'analyse complètesipswd- Démon API REST pour les opérations à distance et l'automatisation
Configuration
ipsw prend en charge les fichiers de configuration YAML et les variables d'environnement :
# Créer le répertoire de configuration
mkdir -p ~/.config/ipsw
# Copier la configuration d'exemple
cp config.example.yml ~/.config/ipsw/config.yaml
Support de base de données
- SQLite (par défaut) - Stockage local
- PostgreSQL - Déploiements en production
Décompilateur IA
❱ ipsw macho disass /System/Library/PrivateFrameworks/ApplePushService.framework/apsd --entry \
--dec --dec-model "Claude 3.7 Sonnet"
• Chargement du fichier cache de symboles...
• Décompilation... 🕒
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];
}
}
}
Cas d'utilisation
Recherche en sécurité
- Analyse des vulnérabilités et développement d'exploits
- Évaluation de la sécurité des firmwares
- Rétro-ingénierie de binaires
Développement de jailbreak
- Analyse et exploitation de la chaîne de démarrage
- Recherche sur les extensions du noyau
- Modification et correction du système
Développement iOS
- Débogage et analyse d'applications
- Gestion des certificats et du provisionnement
- Tests et automatisation des appareils
Forensique numérique
- Extraction et analyse des données des appareils
- Reconstruction de chronologies
- Analyse des artefacts
Prérequis
- Go : 1.26+ (pour compiler à partir des sources)
- Plateforme : macOS, Linux, Windows
- USB : libusb pour l'interaction avec les appareils
- Optionnel : Clés API IA pour une analyse améliorée
Documentation
- Site web : https://blacktop.github.io/ipsw
- Documentation API : Documentation de l'API REST disponible sur
/docslors de l'exécution deipswd - Exemples : Exemples d'utilisation complets dans la documentation
SKILL.md
Donnez des super-pouvoirs ipsw à vos agents IA
npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw
🆕 Wiki propulsé par IA
Posez des questions sur le dépôt en utilisant l'IA :
[!WARNING] Les réponses de l'IA peuvent contenir des hallucinations - vérifiez les informations importantes.
Ressources communautaires
📊 Différences IPSW
Différences de firmwares pré-calculées : ipsw-diffs
💬 Communauté
Contribution
Nous accueillons les contributions ! Veuillez consulter CONTRIBUTING.md pour les directives.
Développement
git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build
Problèmes connus
- Support IPSW macOS : Certaines opérations sur les firmwares macOS peuvent présenter des problèmes de compatibilité
- Tests : Les tests complets sont difficiles en raison de la variété des versions de firmwares et des types d'appareils
- Intensif en ressources : Certaines opérations nécessitent une mémoire et une puissance de traitement importantes
Créez un problème si vous rencontrez des problèmes - les correctifs sont prioritaires ! Une suite de tests complète est prévue pour les prochaines versions.
Crédits
Un immense merci à :
- Jonathan Levin pour ses outils légendaires et sa documentation complète sur les internals iOS
- La communauté de recherche iOS pour son innovation continue et le partage des connaissances
- Tous les contributeurs qui aident à améliorer ce projet
Licence
Licence MIT - voir LICENSE pour plus de détails.