iOS auf Apple Silicon virtualisieren
Teil 0: Unbekanntes Terrain?
- vma2pwn-Projekt: Ein Projekt zur Erstellung einer modifizierbaren vma2-macOS-Boot-Kette für macOS-Gast-VMs und damit Vorarbeit für die iOS-Virtualisierung.
- Möglichkeit der iOS-Virtualisierung: Mit dem Wechsel zu Apple Silicon und der Einführung von Mac Catalyst sind sich die Betriebssysteme iOS und macOS deutlich näher gekommen, wodurch die Frage aufkommt, ob sich iOS virtualisieren lässt.
- Bisherige Forschung: Als einschlägige Vorarbeiten werden Corelliums virtuelles-iPhone-Cloud-Produkt, qemu-t8030 und der Blog von Zhuowei Zhang genannt.
Teil I: Erste Schritte + neue Entdeckungen
- Funktionen von Apples Virtualization-Stack: Es wurde eine Funktion zum Signieren beliebiger Daten für virtuelle Maschinen entdeckt.
- Geringerer Bedarf an vma2pwn: Über den Aufruf
_setProductionModeEnabled(false) lässt sich das virtuelle Gerät in den „sicheren“ und „nicht-produktiven“ Modus versetzen.
- Strategie zum Ausführen von iOS: Die Boot-Kette von macOS 12.0.1 wird wiederverwendet und durch ein iOS-15.0.2-System-Image ersetzt, um Änderungen am Initialisierungsprozess zu minimieren.
Teil II: Patch-Hölle
- Kernel-Patches: Es sind Patches nötig, um Signaturprüfungen zu umgehen; außerdem wird die
PLATFORM_IOS-Prüfung übersprungen, damit iOS-Binärdateien ausgeführt werden können.
- Problem mit dem System Keybag: Wegen Inkompatibilitäten beim System Keybag zeigt PreBoard.app die Meldung „Zum Upgrade nach oben wischen“ an.
- Abweichende Größe von IOMFB-Strukturen: Ein Kernel-Panic-Problem aufgrund von Größenunterschieden zwischen iOS-System-Frameworks und dem macOS-Kernel wurde behoben.
- System-Patches: Patches für die Restore-Ramdisk und iOS-Systemdateien sind erforderlich; ohne Signatur endet die Ausführung mit einem Abbruch.
Teil III: Zukunft
- Lösung des System-Keybag-Problems: Dafür sind weitere Patches und ein tieferes Verständnis des iOS-Systems und des Kernels nötig.
- Touch-Funktionalität: Es ist nicht bestätigt, ob Touch funktioniert; Touch-Ereignisse können über private APIs von
Virtualization.framework gesendet werden.
GN⁺-Zusammenfassung
- Dieser Beitrag bietet eine tiefgehende technische Untersuchung dazu, wie sich iOS auf Apple Silicon virtualisieren lässt.
- Da die Integration von iOS und macOS weiter voranschreitet, spielt dieses Projekt eine wichtige Rolle bei der Erforschung der Interoperabilität zwischen beiden Betriebssystemen.
- Das Projekt erfordert viel Zeit und Aufwand; weitere Forschung und Entwicklung sind nötig.
- Ein Projekt mit ähnlicher Funktionalität ist Corelliums virtuelles-iPhone-Cloud-Produkt.
1 Kommentare
Hacker-News-Kommentare
Corellium hat den Rechtsstreit gewonnen und kann iOS-Cloud-VMs für Sicherheitsforschung vermieten
Hoffentlich besteht die nächste Aufgabe darin, einen Weg zu finden, macOS auf dem iPad zu installieren
Es wirkt so, als würde Apple den Simulator nicht zu einem Emulator machen, weil das Unternehmen nicht möchte, dass Leute die Grundlagen von iOS auseinandernehmen
Laut dem GitHub-Profil des Autors ist das als frisch graduierter Informatiker eine äußerst beeindruckende Arbeit
Die Person, die qemu-t8030 gebaut hat, hat es geschafft, SpringBoard auszuführen, den Code aber nicht veröffentlicht. Es wäre großartig, wenn sich dieser Fortschritt mit dem aktuellen Projekt verbinden ließe
Etwas anderes Thema, aber ich frage mich, ob jemand ARM-macOS auf x86-64 virtualisiert hat
Apple bietet bereits einen iOS-Simulator in Xcode an. Ich frage mich, welchen Vorteil dieses Projekt gegenüber dem von Apple angebotenen hat
Diskussionen zu diesem Thema laufen auf dem Discord-Server von nick's funny device emporium