2 pontos por GN⁺ 2024-10-08 | 1 comentários | Compartilhar no WhatsApp

Virtualizando iOS no Apple Silicon

Parte 0: território desconhecido?

  • Projeto vma2pwn: projeto para criar uma cadeia de boot do macOS vma2 modificável para máquinas virtuais convidadas do macOS, servindo como etapa preparatória para a virtualização de iOS.
  • Possibilidade de virtualização do iOS: com a transição para Apple Silicon e a introdução do Mac Catalyst, os sistemas operacionais iOS e macOS ficaram ainda mais próximos, levantando a questão de saber se é possível virtualizar o iOS.
  • Pesquisas existentes: são citados como trabalhos relacionados o produto de nuvem de iPhone virtual da Corellium, o qemu-t8030 e o blog de Zhuowei Zhang.

Parte I: começando + novas descobertas

  • Recursos da pilha de Virtualization da Apple: foi descoberta uma função de assinatura de dados arbitrários para máquinas virtuais.
  • Menor necessidade do vma2pwn: por meio da chamada _setProductionModeEnabled(false), é possível configurar o dispositivo virtual nos modos "seguro" e "não produção".
  • Estratégia para executar iOS: reutiliza-se a cadeia de boot do macOS 12.0.1 e substitui-se pela imagem de sistema do iOS 15.0.2 para minimizar as alterações no processo de inicialização.

Parte II: inferno dos patches

  • Patch no kernel: são necessários patches para contornar a verificação de assinatura, além de modificar o sistema para ignorar a verificação de PLATFORM_IOS e assim executar binários do iOS.
  • Problema com system keybag: devido à incompatibilidade do system keybag, o PreBoard.app exibe a mensagem "deslize para cima para atualizar".
  • Incompatibilidade no tamanho da estrutura IOMFB: foi resolvido um problema de kernel panic causado pela diferença de tamanho entre frameworks de sistema do iOS e o kernel do macOS.
  • Patches no sistema: são necessários patches tanto no ramdisk de restauração quanto nos arquivos de sistema do iOS, que encerram a execução quando rodam sem assinatura.

Parte III: futuro

  • Resolução do problema do system keybag: são necessários mais patches e um entendimento mais profundo do sistema e do kernel do iOS.
  • Funcionalidade de toque: não foi confirmado se o toque funciona, mas é possível enviar eventos de toque usando APIs privadas do Virtualization.framework.

Resumo do GN⁺

  • Este texto oferece uma exploração técnica aprofundada de como virtualizar o iOS no Apple Silicon.
  • À medida que a integração entre iOS e macOS acelera, este projeto desempenha um papel importante na exploração da interoperabilidade entre os dois sistemas operacionais.
  • Este projeto exige muito tempo e esforço, e ainda requer pesquisa e desenvolvimento adicionais.
  • Um projeto com funcionalidade semelhante é o produto de nuvem de iPhone virtual da Corellium.

1 comentários

 
GN⁺ 2024-10-08
Comentários do Hacker News
  • A Corellium venceu a disputa judicial e agora pode alugar VMs em nuvem de iOS para fins de pesquisa em segurança

    • Se o iOS puder ser virtualizado em MacBooks com Apple Silicon, a demanda por serviços comerciais de virtualização de iOS pode diminuir
    • O custo é de US$ 400 por mês para uso individual e US$ 60.000 por ano para empresas
  • Há quem espere que o próximo desafio seja descobrir como instalar o macOS em um iPad

  • Fica a sensação de que a Apple não transforma o Simulator em um Emulator porque não quer que as pessoas investiguem a fundo as entranhas do iOS

  • De acordo com o perfil do autor no GitHub, ele realizou um trabalho muito impressionante para um recém-formado em ciência da computação

  • A pessoa que criou o qemu-t8030 conseguiu executar o springboard, mas não publicou o código. Seria ótimo se esse progresso pudesse ser combinado com o projeto atual

  • Fugindo um pouco do assunto, fica a curiosidade se alguém já conseguiu virtualizar o macOS ARM em x86-64

  • A Apple já oferece um simulador de iOS no XCode. Fica a dúvida sobre que vantagem este projeto tem em relação ao que a Apple oferece

  • A discussão sobre este tema está acontecendo no servidor de Discord nick's funny device emporium