[英]Detect running on virtual machine
是否可以检测我的MacOS应用程序是否在虚拟机上运行? (我并不是说模拟器,只是一些虚拟机,例如VirtualBox或其他任何东西。)
我只有VMWare,但是我使用的技术可以扩展到VirtualBox。 除了以下简单技术外,每个VM供应商还具有与主机系统进行通信的接口。 但是,它们可能需要更高的特权。
GFX卡
您可以检查是否已安装VmTools。 特别是/Library/Extensions
文件夹中是否存在VMwareGfx.kext
VMware Tools守护程序启动器
/Library/LaunchDaemons/com.vmware.launchd.vmware-tools-userd
VMware Tools守护程序
/Library/Application Support/VMware Tools/vmware-tools-daemon
您还可以通过检查IORegistry
来检查是否存在VMware图形卡
由于VMware GFX具有以下特点
设备ID:0x0405修订ID:0x0000供应商ID:0x15ad
system_profiler
获取有关设备的所有信息。 例如, system_profiler SPHardwareDataType
提供以下信息
Hardware Overview:
Model Name: Apple device
Model Identifier: VMware7,1
Processor Speed: 3.23 GHz
Number of Processors: 2
Total Number of Cores: 2
L2 Cache (per Processor): 256 KB
L3 Cache (per Processor): 6 MB
Memory: 2 GB
Boot ROM Version: VMW71.00V.0.B64.1507021939
SMC Version (system): 2.8f0
Serial Number (system): VMiZVX4JH1rt
Hardware UUID: 564D8995-57E0-91F5-AEDF-1968AB31F81E
可以使用型号标识符和引导ROM找出VMware
system_profiler SPHardwareDataType | awk '/Model Identifier/ {print $3}'
其他虚拟设备
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.