Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
vphone-cli — Démarrez et gérez des iPhones virtuels sur Apple Silicon avec le patchage du firmware, des variantes de jailbreak et des fonctionnalités de recherche en sécurité pour les tests et l'analyse iOS. | Kitploit
Outils/GitHubGitHub/lakr233/vphone-cli
Sécurité iOSExploitationVirtualisation de SécuritéTests d'IntrusionSécurité MobileAnalyse de Micrologiciel
GitHublakr233/vphone-cli

vphone-cli

Démarrez et gérez des iPhones virtuels sur Apple Silicon avec le patchage du firmware, des variantes de jailbreak et des fonctionnalités de recherche en sécurité pour les tests et l'analyse iOS.

Voir le dépôt
8.8k1.2k11il y a 4h 37mVérifié par Kitploit

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
🇰🇷한국어 | 🇯🇵日本語 | 🇨🇳中文 | 🇬🇧English

vphone-cli

Démarrez un iPhone virtuel via le framework Virtualization d'Apple en utilisant l'infrastructure de VM de recherche PCC.

poc

Prérequis

Hôte :

  • Apple Silicon
  • macOS 15+ (Sequoia)
  • Xcode + iOS SDK (compile le démon invité en croisé)
  • Assouplissement SIP/AMFI pour autoriser les entitlements privés PV=3 avec binaire non signé

Dépendances :

root@kitploit:~
brew install [email protected] aria2 wget gnu-tar openssl@3 ldid-procursus sshpass keystone cmake libusb ipsw zstd

Installation

root@kitploit:~
brew install zqxwce/tap/vphone-cli

Compilation

root@kitploit:~
git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git

./scripts/setup_tools.sh      # installe les dépendances, compile les sous-modules de la toolchain, crée le venv Python
./scripts/build.sh            # compile + signe vphone-cli, regroupe le .app, compile vphoned en croisé

cd .build/vphone-cli.app/Contents/MacOS/
vphone-cli --help

Démarrage rapide

Une seule commande crée une VM de bout en bout (téléchargement → patch → restauration DFU → installation CFW → premier démarrage) :

root@kitploit:~
vphone-cli vm create myphone -V jb        # -V / --variant

vphone-cli vm launch myphone

Commandes

vphone-cli vm create exécute tout le pipeline ; les étapes individuelles ci-dessous vous permettent de piloter manuellement ou de relancer une étape.

Gestion

root@kitploit:~
vphone-cli vm list                         # liste les VM (--json pour le scripting)
vphone-cli vm info myphone                  # affiche une VM
vphone-cli vm new myphone                   # crée un bundle vide (options cpu/mem/disk)
vphone-cli vm config myphone --cpu 8 --memory 8192
vphone-cli vm clone myphone myphone-2       # clone APFS rapide, nouvelle identité d'appareil
vphone-cli vm export myphone --out myphone.tzst   # zstd rapide par défaut (--max = xz -9) ; --out peut être un répertoire (nom automatique <vm>.tzst/.txz) ; ignore le dossier restore + les fichiers de staging
vphone-cli vm import myphone.tzst --name restored
vphone-cli vm rename myphone iphone16
vphone-cli vm delete iphone16

Construire une VM manuellement (ce que vm create automatise)

root@kitploit:~
vphone-cli vm new myphone                              # 1. bundle vide
vphone-cli fw prepare myphone --iphone-version 26.1     # 2. téléchargement + fusion des IPSW
vphone-cli fw patch myphone --variant jb                # 3. patch de la chaîne de démarrage

vphone-cli vm launch myphone --dfu &                    # 4. démarrage en DFU (arrière-plan)
vphone-cli restore myphone --get-shsh                   #    récupération du SHSH
vphone-cli restore myphone                              #    restauration DFU
vphone-cli vm stop myphone                              #    arrêt du démarrage DFU

vphone-cli cfw install myphone --variant jb             # 5. installation du CFW (montage hôte ; demande sudo)
vphone-cli vm launch myphone                            # 6. premier démarrage

Mettez à jour vers un iOS plus récent en pointant fw prepare vers un IPSW : --iphone-source /path/to.ipsw --cloudos-source /path/to.ipsw.

Variantes de firmware

Cinq variantes de patch avec un contournement de sécurité croissant — passez-en une à --variant :

VarianteChaîne de démarrageCFWNotes
less4 patches2 phasesSans patch — conserve les mitigations iOS activées
regular42 patches10 phasesContournement AMFI/SSV/Img4/TXM
dev53 patches12 phases+ contournement entitlement/debug TXM
jb113 patches14 phases+ jailbreak complet (Sileo, TrollStore auto-installé au premier démarrage)
exp141 patches18 phasesSur-ensemble JB + patches de recherche anti-détection de VM

Voir research/0_binary_patch_comparison.md pour le détail par composant.

Exécution et connexion

  • SSH (jailbreak) : ssh -p 22222 mobile@<vm-ip> (mot de passe alpine)
  • SSH (regular/dev) : ssh -p 22222 root@<vm-ip>
  • VNC : vnc://<vm-ip>:5901

Emplacements

Tout ce que vphone-cli crée se trouve sous ~/.vphone/ — conservé hors du dépôt et du .app pour que le bundle signé reste portable. Redirigez tout l'arborescence avec $VPHONE_ROOT :

CheminContenu
~/.vphone/Racine de données par utilisateur — remplacez tout l'emplacement avec $VPHONE_ROOT.
~/.vphone/VMs/Bundles de VM — un répertoire par VM. C'est la bibliothèque ; remplacez avec $VPHONE_LIBRARY_ROOT.
~/.vphone/ipsws/IPSW iPhone + cloudOS téléchargés, mis en cache et réutilisés entre les VM.
~/.vphone/tools/Artefacts APFS seal-volume mis en cache (apfs_sealvolume_<version>) récupérés lors de fw prepare.
~/.vphone/debs/Paquets .deb mis en cache que l'installation CFW jb/exp dépose dans l'invité (Sileo, apt, …).
~/.vphone/venv/Environnement Python auto-provisionné (voir Runtime Python ; remplacez avec $VPHONE_VENV_DIR).

Priorité : les remplacements par élément ($VPHONE_LIBRARY_ROOT, $VPHONE_VENV_DIR) priment sur $VPHONE_ROOT, qui prime sur la valeur par défaut ~/.vphone. Les caches ipsws/, tools/ et debs/ se trouvent toujours directement sous la racine active.

Assouplissement SIP/AMFI

Option A — désactivez complètement SIP, puis désactivez AMFI via boot-arg (le plus permissif).

En mode Recovery (appui long sur le bouton d'alimentation → Terminal) :

root@kitploit:~
csrutil disable
csrutil allow-research-guests enable

Redémarrez ensuite sous macOS et définissez le boot-arg AMFI (nécessite SIP complètement désactivé pour prendre effet) :

root@kitploit:~
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"   # redémarrez après

Option B — gardez SIP activé (assoupli debug uniquement), puis autorisez le binaire avec amfidont (laisse AMFI activé à l'échelle du système).

En mode Recovery :

root@kitploit:~
csrutil enable --without debug
csrutil allow-research-guests enable

Redémarrez ensuite sous macOS et :

root@kitploit:~
vphone-amfidont         # .build/vphone-cli.app/Contents/Resources/vphone-amfidont pour les builds locaux

Environnements testés

HôteiPhoneCloudOS
Mac16,11 27.0b217,3_18.6.2_22G10026.1-23B85
Mac16,8 26.5.117,3_26.0_23A34126.1-23B85
Mac16,8 26.5.117,3_26.0.1_23A35526.1-23B85
Mac16,12 26.317,3_26.1_23B8526.1-23B85
Mac16,12 26.317,3_26.3_23D12726.1-23B85
Mac16,12 26.317,3_26.3_23D12726.3-23D128
Mac16,12 26.317,3_26.3.1_23D813326.3-23D128
Mac16,11 26.217,3_26.4_23E24626.4-23E5207q
Mac16,11 26.217,3_26.5_23F7726.4-23E5207q
Mac16,11 27.0b217,3_26.5.2_23F8426.4-23E5207q
Mac16,6 26.4.117,3_26.6_23G7126.4-23E5207q
Mac16,11 27.0b217,3_26.6.1_23G8326.4-23E5207q
Mac16,11 27.0b217,3_27.0_24A5380h26.4-23E5207q
Mac16,6 26.4.117,3_27.0_24A5390f26.4-23E5207q
Mac16,6 26.6.117,3_27.0_24A5408d26.4-23E5207q
Mac16,11 27.0b217,3_27.0_24A5418b26.4-23E5207q
Mac16,11 27.0b217,3_27.0_24A5424a26.4-23E5207q

FAQ

zsh: killed ./vphone-cli — les restrictions AMFI/debug ne sont pas contournées ; voir Prérequis (amfi_get_out_of_my_way=1 ou amfidont).

Virtualization is not available on this hardware — votre Mac est lui-même une VM ; le démarrage d'un invité PV=3 ne peut pas être imbriqué. Utilisez un hôte macOS 15+ non imbriqué.

Bloqué sur « Press home to continue » — connectez-vous via VNC et faites un clic droit (clic à deux doigts) pour simuler le bouton d'accueil.

Les applications système ne s'installent pas — lors de la configuration iOS, ne choisissez pas le Japon ou l'UE comme région (contrôles réglementaires supplémentaires que la VM ne peut pas satisfaire) ; choisissez par exemple les États-Unis.

L'application plante au lancement avec EXC_GUARD / GUARD_TYPE_MACH_PORT — re-patchez avec vphone-cli fw patch <name> --variant <v> --force-exc-guard, puis restaurez/réinstallez (#291). Toujours activé pour les bases iOS 18.

Installer un .ipa/.tipa — utilisez le menu Install de la VM en cours d'exécution (glisser-déposer ou sélecteur de fichiers).

cfw install se bloque en re-signant un binaire système (ex. Campo), la mémoire augmente sans limite — bug connu dans ldid-procursus jusqu'à 2.1.5-procursus7 (le stable Homebrew actuel) : bytes(uint64_t) appelle __builtin_clzll(0) sans garde de zéro, ce qui est un comportement indéfini, et sur cette build se résout en une longueur 0 qui provoque un underflow d'un compteur de boucle non signé — ldid tourne en écrivant un octet à la fois dans un buffer croissant au lieu de se terminer. Déclenché par tout plist d'entitlements contenant une valeur entière exactement 0 (certains vrais binaires système Apple en ont). Corrigé en amont mais pas encore dans une release taguée ; recompilez depuis la source : brew install --HEAD ldid-procursus && brew link --overwrite ldid-procursus. Tuez d'abord le processus ldid bloqué (sudo kill -9 <pid>) si vous l'avez déjà atteint.

Automatisation

vphone-cli expose un socket de contrôle hôte (<bundle>/vphone.sock) pour un contrôle programmatique — captures d'écran, toucher, balayages, touches matérielles, presse-papiers — chaque action renvoyant une capture d'écran intégrée pour les tests E2E pilotés par IA. Voir vphone-mcp pour un serveur MCP qui l'enveloppe.

Remerciements

  • wh1te4ever/super-tart-vphone-writeup
Télécharger l’outil