Virtualizar iOS en Apple Silicon
Parte 0: ¿Territorio desconocido?
- Proyecto vma2pwn: un proyecto para crear una cadena de arranque vma2 de macOS modificable para máquinas virtuales invitadas de macOS, como trabajo previo para la virtualización de iOS.
- Posibilidad de virtualizar iOS: con la transición a Apple Silicon y la introducción de Mac Catalyst, los sistemas operativos iOS y macOS se han acercado más, lo que plantea la pregunta de si iOS puede virtualizarse.
- Investigación previa: se mencionan como trabajos relacionados el producto de nube de iPhone virtual de Corellium, qemu-t8030 y el blog de Zhuowei Zhang.
Parte I: Empezar + nuevos hallazgos
- Funciones del stack de Virtualization de Apple: se descubrió una función para firmar datos arbitrarios para máquinas virtuales.
- Menor necesidad de vma2pwn: mediante la llamada
_setProductionModeEnabled(false), es posible configurar el dispositivo virtual en modo "seguro" y "no de producción".
- Estrategia para ejecutar iOS: se reutiliza la cadena de arranque de macOS 12.0.1 y se reemplaza con una imagen del sistema iOS 15.0.2 para minimizar las modificaciones del proceso de inicialización.
Parte II: Infierno de parches
- Parcheo del kernel: se requieren parches para omitir la verificación de firmas, y se modifica para saltarse la comprobación
PLATFORM_IOS con el fin de ejecutar binarios de iOS.
- Problema con system keybag: debido a la incompatibilidad del system keybag, en PreBoard.app aparece el mensaje "desliza hacia arriba para actualizar".
- Desajuste en el tamaño de estructuras IOMFB: se resolvió un problema de kernel panic causado por diferencias de tamaño entre los frameworks del sistema de iOS y el kernel de macOS.
- Parches del sistema: se necesitan parches para el ramdisk de restauración y los archivos del sistema de iOS, ya que el sistema termina si se ejecuta sin firma.
Parte III: Futuro
- Resolver el problema del system keybag: se necesitan más parches y una comprensión más profunda del sistema iOS y del kernel.
- Función táctil: no se ha confirmado si la función táctil funciona, y es posible enviar eventos táctiles usando APIs privadas de
Virtualization.framework.
Resumen de GN⁺
- Este artículo ofrece una exploración técnica profunda sobre cómo virtualizar iOS en Apple Silicon.
- A medida que se acelera la integración entre iOS y macOS, este proyecto cumple un papel importante en la exploración de la interoperabilidad entre ambos sistemas operativos.
- Este proyecto requiere mucho tiempo y esfuerzo, y necesita más investigación y desarrollo.
- Un proyecto con funciones similares es el producto de nube de iPhone virtual de Corellium.
1 comentarios
Opiniones de Hacker News
Corellium ganó la batalla legal y ahora puede alquilar iOS Cloud VM con fines de investigación de seguridad
Ojalá el próximo reto sea encontrar la forma de instalar macOS en un iPad
Da la impresión de que Apple no convierte el Simulator en un Emulator porque no quiere que la gente escarbe en los fundamentos de iOS
Según el perfil de GitHub del autor, ha realizado un trabajo muy impresionante para ser un recién graduado de ciencias de la computación
La persona que creó qemu-t8030 logró ejecutar springboard, pero no publicó el código. Sería excelente si ese avance pudiera combinarse con el proyecto actual
Es un tema algo distinto, pero me pregunto si alguien ha virtualizado macOS ARM en x86-64
Apple ya ofrece un simulador de iOS en Xcode. Me pregunto qué ventajas tiene este proyecto frente a lo que ofrece Apple
La discusión sobre este tema se está llevando a cabo en el servidor de Discord de nick's funny device emporium