Apple Silicon Mac에서 iOS를 가상화해 보안 연구와 디버깅을 수행하는 방법
실제 iPhone 기기가 없어도 Mac 화면에서 iOS를 실행하고, 앱과 파일을 탐색하며 스크린샷을 찍을 수 있습니다. Apple의 Virtualization.framework와 PCC 연구용 가상 머신을 결합해 iOS를 구동하는 도구입니다. 보안 연구, 리버스 엔지니어링, 디버깅 목적으로 설계되었습니다.
가상 iPhone의 기본 기능
가상 iPhone의 화면을 Mac에서 직접 조작할 수 있으며, 앱과 파일 탐색, 스크린샷 및 화면 녹화가 가능합니다. 시스템은 패치가 미리 적용된 상태로 제공되며, 패키지 환경을 설치할 수 있습니다. 가상 머신(VM)의 내보내기, 가져오기, 복제가 지원되어 백업과 복제가 쉽습니다. 선택적으로 로컬 HTTP와 WebSocket 인터페이스를 통해 자동화 API를 사용할 수 있습니다. 런타임에 Xcode, Python, Homebrew 등 추가 의존성이 필요 없습니다.
호스트 환경 설정과 요구 사항
macOS 15 이상을 실행하는 물리적 Apple Silicon Mac이 필요합니다. macOS 가상 머신에서는 동작하지 않습니다. 각 VM은 기본적으로 64GB의 가상 디스크를 사용하며, 펌웨어를 위한 추가 공간이 필요합니다. 시스템 복원 시 온라인에서 서명 티켓을 가져오므로 네트워크 연결이 필수입니다. macOS 복구 모드로 부팅하여 터미널에서 csrutil enable --without debug와 csrutil allow-research-guests enable 명령을 실행해야 합니다. 이 과정에서 SIP는 활성화된 상태로 유지되며, 디버깅 제한만 완화됩니다.
오픈소스 부트 ROM 도입
새로 생성된 VM은 Virtualization.framework의 폐쇄적 ROM 대신 OpenAVB와 OpenSEP라는 두 개의 오픈소스 ROM에서 시작합니다. OpenAVB는 부트 ROM인 AVPBooter를 대체하며, 패치가 필요 없어 fw patch 과정에서도 변경되지 않습니다. OpenSEP는 SEP 부트 ROM인 AVPSEPBooter를 대체합니다. 이 두 ROM을 사용하면 iBoot와 SEPOS 실행 전에 Apple이 작성한 코드가 실행되지 않습니다. 기존 VM은 Apple의 ROM을 유지하지만, 다음 시작 시점에 설정을 변경하여 오픈소스 ROM으로 전환할 수 있습니다. OpenAVB 부팅 VM을 복원하려면 VPhone.bundle 2.10.1 이상 버전이 필요합니다.
코딩 에이전트 활용과 명령어 인터페이스
Claude Code나 Codex 같은 코딩 에이전트를 사용하는 경우, 제공된 프롬프트를 붙여넣으면 에이전트가 설정을 자동으로 수행합니다. 에이전트는 vphone 스킬을 읽고, 이미 설정된 항목을 확인한 후 Launchpad와 VPhone.bundle을 설치하며, 관리자 비밀번호 입력이나 macOS 복구 모드 변경과 같이 사용자 개입이 필요한 단계에서 멈춥니다. 터미널에서는 vphone-cli 명령어를 통해 VM을 관리할 수 있습니다. 자동화 API를 활성화하려면 실행 시 --api-listen 127.0.0.1:8765 옵션을 추가하고 출력된 토큰을 사용해야 합니다.
사용 전 확인 사항과 주의점
이 도구는 보안 연구, 리버스 엔지니어링, 디버깅을 목적으로 하며, 일반 사용자용 iOS 에뮬레이터가 아닙니다. 프로젝트는 암호화폐나 토큰을 발행하거나 수락하지 않으며, 이 프로젝트 이름으로 발행된 모든 암호화폐는 사기입니다. macOS 15 이상과 물리적 Apple Silicon Mac이 필수이며, 가상 환경에서는 사용할 수 없습니다. 디스크 공간이 부족하면 VM 생성이 실패할 수 있으므로 64GB 이상의 여유 공간을 확보해야 합니다. 네트워크 연결이 불안정하면 펌웨어 복원 과정에서 서명 티켓 다운로드가 실패할 수 있습니다. 호스트 보안 설정(SIP, AMFI)을 변경해야 하므로, 이러한 변경이 시스템에 미치는 영향을 충분히 이해한 후 진행해야 합니다.