2 points par GN⁺ 2024-10-08 | 1 commentaires | Partager sur WhatsApp

Virtualiser iOS sur Apple Silicon

Partie 0 : terra incognita ?

  • Projet vma2pwn : un projet visant à créer une chaîne de démarrage macOS vma2 modifiable pour des machines virtuelles invitées macOS, servant de travail préparatoire à la virtualisation d’iOS.
  • Possibilité de virtualiser iOS : avec la transition vers Apple Silicon et l’introduction de Mac Catalyst, les systèmes d’exploitation iOS et macOS se rapprochent davantage, d’où la question de savoir s’il est possible de virtualiser iOS.
  • Travaux existants : le produit cloud d’iPhone virtuel de Corellium, qemu-t8030 et le blog de Zhuowei Zhang sont mentionnés comme travaux connexes.

Partie I : démarrage + nouvelles découvertes

  • Fonctionnalité de la pile Virtualization d’Apple : découverte d’une fonction de signature de données arbitraires pour les machines virtuelles.
  • Moins besoin de vma2pwn : l’appel à _setProductionModeEnabled(false) permet de configurer l’appareil virtuel en mode « sécurisé » et « non production ».
  • Stratégie d’exécution d’iOS : réutiliser la chaîne de démarrage de macOS 12.0.1 et la remplacer par l’image système d’iOS 15.0.2 afin de minimiser les modifications du processus d’initialisation.

Partie II : l’enfer des patchs

  • Patchs du noyau : des patchs sont nécessaires pour contourner les vérifications de signature, et le système est modifié pour ignorer la vérification PLATFORM_IOS afin d’exécuter des binaires iOS.
  • Problème de system keybag : en raison de l’incompatibilité du system keybag, PreBoard.app affiche le message « glisser vers le haut pour effectuer la mise à niveau ».
  • Incohérence de taille dans les structures IOMFB : résolution d’un problème de kernel panic causé par une différence de taille entre les frameworks système iOS et le noyau macOS.
  • Patchs système : des patchs sont nécessaires pour le ramdisk de restauration et les fichiers système iOS, qui se ferment s’ils sont exécutés sans signature.

Partie III : avenir

  • Résoudre le problème du system keybag : cela nécessite davantage de patchs ainsi qu’une meilleure compréhension du système iOS et du noyau.
  • Fonction tactile : on ne sait pas encore si la fonction tactile fonctionne, mais il est possible d’envoyer des événements tactiles via les API privées de Virtualization.framework.

Le résumé de GN⁺

  • Cet article propose une exploration technique approfondie de la manière de virtualiser iOS sur Apple Silicon.
  • À mesure que l’intégration entre iOS et macOS s’accélère, ce projet joue un rôle important dans l’exploration de l’interopérabilité entre les deux systèmes d’exploitation.
  • Ce projet demande beaucoup de temps et d’efforts, et nécessite davantage de recherche et de développement.
  • Un projet offrant des fonctionnalités similaires est le produit cloud d’iPhone virtuel de Corellium.

1 commentaires

 
GN⁺ 2024-10-08
Avis Hacker News
  • Corellium a remporté son procès, ce qui lui permet de louer des VM iOS dans le cloud à des fins de recherche en sécurité

    • Si iOS peut être virtualisé sur des MacBook Apple Silicon, la demande pour des services commerciaux de virtualisation iOS pourrait diminuer
    • Le coût est de 400 $ par mois pour les particuliers et de 60 000 $ par an pour les entreprises
  • J’espère que le prochain défi sera de trouver un moyen d’installer macOS sur un iPad

  • J’ai l’impression qu’Apple ne transforme pas son Simulator en Emulator parce qu’ils ne veulent pas que les gens dissèquent les fondements d’iOS

  • D’après le profil GitHub de l’auteur, c’est un travail très impressionnant pour un jeune diplômé en informatique

  • La personne qui a créé qemu-t8030 a réussi à lancer springboard, mais n’a pas publié le code. Ce serait formidable si cette avancée pouvait être combinée avec le projet actuel

  • Sujet un peu différent, mais je me demande si quelqu’un a déjà virtualisé macOS ARM sur du x86-64

  • Apple fournit déjà un simulateur iOS dans Xcode. Je me demande quel avantage ce projet offre par rapport à ce qu’Apple propose

  • La discussion sur ce sujet est en cours sur le serveur Discord de nick's funny device emporium