开源项目darwin-vm实现iOS/macOS 27虚拟机化:支持SPTM的Qemu解决方案深度解读

导语:苹果系统的安全性向来是行业标杆,SPTM(Static Kernel Trusted Loadable Monitor)和TXM(Trusted EXecute Monitor)更是其内核层面最核心的信任根组件。然而一位安全研究员刚刚开源了一个项目——darwin-vm,让这些”不可逾越”的安全边界在Qemu虚拟机里变成了可以随意调试的代码。iPhone 17到iPhone 12,所有M系列Mac,一个命令直接拿到root shell。这不是越狱,这是合法合规的系统级研究框架。


一、项目概述

darwin-vm(https://github.com/jprx/darwin-vm)由安全研究员约瑟夫·拉维钱德兰(Joseph Ravichandran,Twitter/X ID:0xjprx)于2026年8月开源。该项目基于Qemu实现对苹果操作系统的虚拟机化支持,区别于传统模拟器,它不是一个完整的iPhone或Mac模拟器——不提供屏幕、WiFi、蓝牙、图形界面或完整的SpringBoard——它的核心目标是让研究者能够直接调试内核、SPTM、TXM、launchd、dyld以及所有用户态程序。

换句话说,这是一个专为苹果系统安全研究设计的轻量级调试环境。


二、核心能力

2.1 支持的设备范围

设备CPUiOS 27.0 beta 7iOS 26.6
iPhone 17(A19)t8150✅✅
iPhone 16(A18)t8140✅✅
iPhone 15(A16)t8120✅✅
iPhone 14(A15)t8110✅✅
iPhone 13(A15)t8110✅✅
iPhone 12(A14)t8101✅✅

macOS方面,M5 Macbook Air、M4 Mac Mini、M3 Macbook Air、M2 Mac Mini均完美支持。M1 Mac Mini可运行iOS 26.6,但macOS 26.6会因内核恐慌而无法启动launchd。

2.2 启动即root,秒级拿到shell

在Qemu中加载SPTM内核后,系统直接启动到root shell:

bash-3.2# uname -v
Darwin Kernel Version 27.0.0: Tue Aug 11 22:05:33 PDT 2026; root:xnu-13432.1.9~3/RELEASE_ARM64_T8142
bash-3.2# whoami
root

无需越狱,无需内核补丁,不需要任何绕过。SPTM(Static Kernel Trusted Loadable Monitor)是苹果A14+芯片引入的最底层安全组件,它在硬件级别确保只有苹果签名的固件才能被加载运行。darwin-vm通过模拟SPTM执行环境,让研究者在虚拟机中完整运行受SPTM保护的内核——这对安全研究来说意义重大。

2.3 全栈可调试

以下组件全部可调试、可修改、可patch:

  • 内核内核(XNU):直接用GDB附加断点,单步跟踪系统调用
  • SPTM:这是苹果芯片最底层的安全监控器,传统上几乎不可能被研究,darwin-vm首次实现了用户态级别的调试能力
  • TXM(Trusted EXecute Monitor):处理敏感操作的受信任执行环境
  • launchd:苹果的初始化系统和进程管理器
  • dyld:动态链接器,所有用户态程序的加载入口
  • 所有用户态程序:自行编译的程序可以直接放入虚拟磁盘运行

2.4 支持MIE/MTE内存安全功能

MIE(Memory Integrity Engine)和MTE(Memory Tagging Extension)是苹果芯片的硬件级内存安全防护。darwin-vm支持带有MIE的CPU,这意味着即使在启用硬件级内存保护的条件下,系统依然可以正常运行。


三、技术原理

3.1 为什么需要Mac?

获取iOS/macOS的IPSW(苹果固件包)并从中提取内核组件这一步骤,需要在真实Mac上执行。脚本get_files.sh会连接苹果服务器下载指定IPSW文件,从中提取以下关键文件:

  • kernelcache.release.xxx:压缩后的内核映像
  • sptm.xxx.release:SPTM固件
  • txm.xxx.release:TXM固件
  • DeviceTree.xxx:设备树描述
  • ramdisk.dmg:恢复环境的根文件系统

这些文件受苹果签名保护,无法在非苹果设备上合法获取。因此整个流程的第一步必须在Mac上完成,但一旦文件提取完毕,后续的Qemu运行环境可以在任何支持Qemu的机器上运行——不需要ARM架构主机。

3.2 qemu-sptm分支

darwin-vm使用了一个特殊的Qemu分支——qemu-sptm。这个分支在标准Qemu基础上添加了对SPTM/TXM虚拟化的支持,能够模拟A14到A19以及M1到M5芯片的核心安全组件行为。编译方式与标准Qemu完全相同:

git submodule update --init
cd qemu-sptm
mkdir build && cd build
../configure --target-list=aarch64-softmmu
make -j

编译完成后,二进制文件位于qemu-sptm/build/qemu-system-aarch64。

3.3 根文件系统注入

get_files.sh会自动修改ramdisk.dmg,在其中植入启动脚本,使虚拟机启动后直接进入root shell而非正常iOS/macOS的图形界面。这个修改后的磁盘镜像可以被重新挂载并添加自定义程序:

hdiutil attach -owners on -mountpoint mnt firmware/ramdisk.dmg
sudo cp my_program mnt/bin/my_program
hdiutil detach mnt

添加的程序需要用苹果开发者证书签名,并将CDHash注册到信任缓存(trustcache)中,才能在启用了签名验证的系统里运行。


四、安装步骤

4.1 环境准备

在Mac上安装依赖:

brew install jq wget ipsw

4.2 克隆项目并获取固件

git clone https://github.com/jprx/darwin-vm.git
cd darwin-vm
./get_files.sh
./fix_perms.sh firmware/ramdisk.dmg

如需指定特定版本:

DEVNAME="iPhone17,3" URL="<IPSW_URL>" ./get_files.sh
DEVNAME="Mac16,10" URL="<IPSW_URL>" ./get_files.sh

4.3 编译Qemu

git submodule update --init
cd qemu-sptm
mkdir build && cd build
../configure --target-list=aarch64-softmmu
make -j
cd ../..

4.4 启动虚拟机

./run.sh

退出:按Ctrl+A然后按x。


五、局限性

这是一个重要的免责声明:

  • 不提供图形界面:没有屏幕输出,没有WiFi、蓝牙、摄像头等硬件模拟
  • 没有完整的SpringBoard:看不到iOS主屏幕和任何图形应用
  • 不能运行App Store应用:这不是一个可用的iPhone模拟器
  • 早期启动偶发崩溃:t8110设备(iPhone 13/14)有时会在launchd之前内核恐慌,重启即可
  • MIE影响性能:如果设备支持MIE,虚拟化会显著变慢,不需要MIE时建议选择不带MIE的设备

本质上,这是一个类似”用Qemu加载定制内核+initrd来调试Linux”的工作流程,只是对象换成了Darwin系统。


六、安全研究价值

darwin-vm的出现对苹果平台安全研究具有里程碑意义:

第一,SPTM首次被开放给社区研究。 SPTM自A14芯片引入,是苹果芯片级安全架构的核心。它的存在让业界几乎没有人能够在真实硬件上研究其行为。darwin-vm第一次创造了一个可控、可调、可修改的虚拟SPTM执行环境。

第二,内核漏洞挖掘门槛大幅降低。 过去想在iOS/macOS内核上挖漏洞,你需要越狱设备或者购买内核调试工具包(KDK)并配有特定硬件。darwin-vm让任何有Mac的人都能用GDB调试内核。

第三,供应链安全研究的新工具。 有了可调试的虚拟化环境,研究者可以更深入地分析iOS/macOS的启动链信任模型,研究苹果的代码签名机制和信任缓存的运作方式。


七、总结

darwin-vm不是”破解iPhone”的项目,也不是为了绕过苹果的安全防护——它是一个合法的苹果平台安全研究基础设施。通过虚拟化技术,它让那些原本躺在苹果芯片最底层的信任组件变得透明可见。

对于安全研究员来说,这是难得的机会:过去只有苹果内部团队和少数授权合作伙伴才能接触到的研究领域,现在你只需要一台Mac和GitHub上一行git clone。

条条大路通shell——这次,连苹果的硬件级安全壁垒都给你开了一扇窗。

项目地址:https://github.com/jprx/darwin-vm

版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容