2P by neo 1달전 | favorite | 댓글 1개

Apple Silicon에서 iOS 가상화하기

Part 0: 미지의 영역?

  • vma2pwn 프로젝트: macOS 게스트 가상 머신을 위한 수정 가능한 vma2 macOS 부트 체인을 생성하는 프로젝트로, iOS 가상화의 전초 작업임.
  • iOS 가상화 가능성: Apple Silicon으로의 전환과 Mac Catalyst의 도입으로 iOS와 macOS 운영 체제가 더욱 가까워짐에 따라, iOS를 가상화할 수 있는지에 대한 질문이 제기됨.
  • 기존 연구: Corellium의 가상 iPhone 클라우드 제품, qemu-t8030, Zhuowei Zhang의 블로그 등이 관련 연구로 언급됨.

Part I: 시작하기 + 새로운 발견

  • Apple의 Virtualization 스택 기능: 가상 머신을 위한 임의 데이터 서명 기능을 발견함.
  • vma2pwn의 필요성 감소: _setProductionModeEnabled(false) 호출을 통해 가상 장치를 "보안" 및 "비생산" 모드로 설정할 수 있음.
  • iOS 실행 전략: macOS 12.0.1 부트체인을 재사용하고 iOS 15.0.2 시스템 이미지로 교체하여 초기화 과정의 수정을 최소화함.

Part II: 패치 지옥

  • 커널 패치: 서명 검사를 우회하기 위한 패치가 필요하며, iOS 바이너리를 실행하기 위해 PLATFORM_IOS 검사를 건너뛰도록 수정함.
  • 시스템 키백 문제: 시스템 키백의 비호환성으로 인해 PreBoard.app에서 "업그레이드를 위해 위로 스와이프" 메시지가 표시됨.
  • IOMFB 구조 크기 불일치: iOS 시스템 프레임워크와 macOS 커널 간의 크기 불일치로 인한 커널 패닉 문제를 해결함.
  • 시스템 패치: 복원 램디스크와 iOS 시스템 파일에 대한 패치가 필요하며, 서명되지 않은 상태로 실행될 경우 종료됨.

Part III: 미래

  • 시스템 키백 문제 해결: 더 많은 패치와 iOS 시스템 및 커널에 대한 이해가 필요함.
  • 터치 기능: 터치 기능이 작동하는지 확인되지 않았으며, Virtualization.framework의 비공개 API를 사용하여 터치 이벤트를 보낼 수 있음.

GN⁺의 정리

  • 이 글은 Apple Silicon에서 iOS를 가상화하는 방법에 대한 깊이 있는 기술적 탐구를 제공함.
  • iOS와 macOS의 통합이 가속화됨에 따라, 이 프로젝트는 두 운영 체제 간의 상호 운용성을 탐구하는 데 중요한 역할을 함.
  • 이 프로젝트는 많은 시간과 노력이 필요하며, 추가적인 연구와 개발이 필요함.
  • 비슷한 기능을 가진 프로젝트로는 Corellium의 가상 iPhone 클라우드 제품이 있음.
Hacker News 의견
  • Corellium이 법적 소송에서 승리하여 iOS Cloud VM을 보안 연구 목적으로 대여할 수 있게 됨

    • iOS가 Apple Silicon Macbooks에서 가상화될 수 있다면 상업적인 iOS 가상화 서비스에 대한 수요가 줄어들 가능성이 있음
    • 개인 사용자는 월 $400, 기업은 연간 $60,000의 비용이 듦
  • MacOS를 iPad에 설치하는 방법을 찾는 것이 다음 과제가 되었으면 하는 바람이 있음

  • Apple이 Simulator를 Emulator로 만들지 않는 이유는 사람들이 iOS의 기초를 파헤치는 것을 원하지 않기 때문이라는 느낌이 듦

  • 작성자의 GitHub 프로필에 따르면, 신입 컴퓨터 과학 졸업생으로서 매우 인상적인 작업을 수행했음

  • qemu-t8030을 만든 사람이 springboard를 실행하는 데 성공했지만 코드를 공개하지 않았음. 이 진행 상황이 현재 프로젝트와 결합될 수 있다면 훌륭할 것임

  • 약간 다른 주제이지만, ARM macOS를 x86-64에서 가상화한 사람이 있는지 궁금함

  • Apple은 이미 XCode에서 iOS 시뮬레이터를 제공하고 있음. 이 프로젝트가 Apple이 제공하는 것보다 어떤 이점이 있는지 궁금함

  • 이 주제에 대한 논의는 nick's funny device emporium Discord 서버에서 진행 중임