Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ABrake27 — iOS 27 kernelcache RE : carte de répartition SEP, diff AMFI, workflow Ghidra | Kitploit
Outils/GitHubGitHub/vvirei333/abrake27
Sécurité iOSAnalyse des VulnérabilitésExploitationPentesting d'Applications MobilesRétro-ingénierieSécurité MobileAnalyse de BinairesArticles et RechercheApprentissage et ÉducationDéveloppement de Charges UtilesAnalyse de Micrologiciel
34il y a 1 jourPas encore vérifié
GitHubvvirei333/abrake27

ABrake27

iOS 27 kernelcache RE : carte de répartition SEP, diff AMFI, workflow Ghidra

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

ABrake27

Compilateur croisé natif Linux + PoC pour l'activation du mode développeur AMFI sur iOS (arm64/arm64e)

Platform Build Arch

Boîte à outils de niveau recherche. Différez les firmwares iOS 27.0.1 et 27.2, rétro-ingénieriez la table de dispatch IOUserClient d'AMFI, compilez de manière croisée un PoC IOKit bare-metal depuis Linux — sans Xcode — et activez le mode développeur sur iOS 27.0.1 via le protocole lockdown standard d'Apple (persistance vérifiée au niveau du noyau).


De quoi s'agit-il

  • Diff de firmware IPS — kernelcache, kexts, sandbox, entitlements entre iOS 27.0.1 et 27.2 (iPhone 14,5).
  • Rétro-ingénierie de la table de dispatch AMFI — cartographie de chaque slot IOExternalMethodDispatch, identification de selector 11 = armSecurityBootMode.
  • PoC C autonome — poc/poc.c ouvre AppleMobileFileIntegrity/AppleCredentialManager, appelle armSecurityBootMode et journalise le résultat. Pas de surcharge Foundation/UIKit — pur C + IOKit.
  • Compilateur croisé Linux — poc/build_ipa.sh produit un .ipa signé sur CachyOS/Arch en utilisant clang + ld64.lld + ldid. Zéro dépendance Apple/Xcode.

Comment activer le mode développeur sur iOS 27.0.1 (sans jailbreak, sans code non signé)

La chaîne de bascule du mode développeur iOS peut être pilotée entièrement via le protocole lockdown standard d'Apple (com.apple.amfi.lockdown). Pas de jailbreak, pas d'IPA, pas de falsification d'entitlement — juste pymobiledevice3 sous Linux.

Vérifié : après la chaîne ci-dessous, mounter query-developer-mode-status → true et le DeveloperDiskImage a été monté sur /System/Developer — et les deux ont survécu à un redémarrage indépendant (les mêmes vérifications revenaient auparavant à false, donc la persistance est la véritable preuve ; voir FINDINGS_LOCK.md).

Prérequis

Supprimez le code d'accès (Réglages → Face ID et code d'accès → Désactiver le code d'accès). Avec un code d'accès défini, AMFI répond à action=1/action=2 par Device has a passcode set.

Étapes

# 1) enable → action=1 → REBOOT #1
flatpak-spawn --host python3 -m pymobiledevice3 amfi enable-developer-mode

# 2) after the device boots: post-restart accept → action=2 → REBOOT #2
#    (the CLI has no separate accept command — call the service method directly,
#     e.g. via poc/verify_now2.py)

# 3) reveal the Settings toggle → action=0
flatpak-spawn --host python3 -m pymobiledevice3 amfi reveal-developer-mode

Vérification (au niveau du noyau, indépendante du service AMFI)

flatpak-spawn --host python3 -m pymobiledevice3 mounter query-developer-mode-status   # → true
flatpak-spawn --host python3 -m pymobiledevice3 mounter list                           # → IsMounted: true, /System/Developer
flatpak-spawn --host python3 -m pymobiledevice3 mounter auto-mount                    # → DeveloperDiskImage mounted successfully

Résumé du protocole

actionSignificationEffet
0revealAffiche la bascule du mode développeur dans Réglages
1enableDéfinit le drapeau, redémarre l'appareil
2acceptConfirmation après redémarrage, redémarre à nouveau

⚠️ pymobiledevice3 court-circuite : si le statut est déjà true, enable-developer-mode se contente de journaliser "Developer mode is already enabled" et n'envoie rien. Les deux redémarrages font partie du protocole Apple, ils ne sont pas accessoires.


Démarrage rapide (Linux → iPhone en 4 minutes)

Prérequis (CachyOS / Arch)

sudo pacman -S clang lld zip          # compiler + Mach-O linker
yay -S ldid                           # entitlement injector (AUR)
# iOS SDK:
mkdir -p poc/SDK
git clone https://github.com/theos/sdks poc/tmp && mv poc/tmp/iPhoneOS*.sdk poc/SDK/iPhoneOS.sdk

Compilation

cd poc
IOS_SDK=/path/to/iPhoneOS.sdk ./build_ipa.sh
# Output: EnableAMFIDevMode.ipa

Installation sur iPhone

# Via ideviceinstaller (libimobiledevice):
ideviceinstaller --install EnableAMFIDevMode.ipa

# Via TrollStore (if jailbroken/CT-bypass device):
# → TrollStore app → "+" → pick EnableAMFIDevMode.ipa

# Via SideStore/AltStore:
# → Add to SideStore → sign with your Apple ID

Exécution

# On device (SSH / NewTerm):
./EnableAMFIDevMode 1
cat /tmp/amfi_devmode_poc.log
# Then REBOOT to activate Developer Mode

Alternative : lancement CoreDevice / DVT depuis Linux (run_dvt.sh)

Une seconde voie, sans IPA, existe : compilez de manière croisée le binaire IOKit autonome sous Linux et poussez-le vers l'appareil via le tunnel CoreDevice / RSD d'iOS 17+, puis exécutez-le avec le service de contrôle de processus DVT (hors du bac à sable de l'App — pas d'installd, pas d'IPA signé gratuitement).

./run_dvt.sh enable      # build (clang + ld64.lld) → deploy → `dvt launch --stream`

run_dvt.sh automatise toute la chaîne :

  1. démarre/vérifie usbmuxd, contrôle l'appareil avec ideviceinfo (libimobiledevice) ;
  2. compile de manière croisée poc/poc.c en un Mach-O arm64 nu (sans chaîne d'outils Apple) : clang -c → ld64.lld -platform_version ios … -syslibroot … -undefined dynamic_lookup ; la version du SDK est lue depuis le SDKSettings.plist binaire via plistlib ;
  3. ouvre un tunnel RSD en espace utilisateur (pymobiledevice3) et invoque dvt launch --stream.

Statut : la compilation croisée sous Linux fonctionne (un véritable Mach-O arm64 est produit). L'étape de déploiement sur l'appareil est encore en cours — voir HANDOFF.md «Сессия 12». Notez aussi que le chemin IOKit du PoC (AppleMobileFileIntegrity selector 11) nécessite l'entitlement restreint à la plateforme com.apple.private.amfi.developer-mode-control, donc un binaire non signé par Apple sera refusé par le userclient même lorsqu'il est lancé via DVT — la manière prise en charge d'activer le mode développeur est le protocole lockdown documenté ci-dessus.


Comment ça fonctionne

Deux étapes propres par tranche d'architecture (évite que le pilote clang n'avale -arch/-platform_version lors de la délégation à ld64.lld) :

  1. clang -c — objet Mach-O, sans édition de liens
  2. ld64.lld — exécutable avec -arch arm64 -platform_version ios <min> <sdk> explicites

Détecte automatiquement clang-20...15, ld64.lld/lld, llvm-lipo, ldid. Repli gracieux : arm64e → arm64 si la chaîne d'outils ne prend pas en charge ptrauth.


Organisation du dépôt

Télécharger l’outil