检测在虚拟机上运行

时间:2017-03-26 07:05:32

标签: swift macos

是否可以检测我的MacOS应用是否在虚拟机上运行? (我不是指模拟器,只是像VirtualBox或其他任何东西的虚拟机......)

1 个答案:

答案 0 :(得分:1)

我只有VMWare,但我使用的技术可以扩展到VirtualBox。除了简单的技术之外,每个VM供应商都有一个与主机系统通信的接口。但是,他们可能需要更高的权限。

的VMware

  1. VMWare工具 如果安装了VMWare Tools,您可以检查以下文件。
  2. GFX卡

    您可以检查是否已安装VmTools。特别是VMwareGfx.kext文件夹中存在/Library/Extensions

    VMware Tools后台程序启动器

    /Library/LaunchDaemons/com.vmware.launchd.vmware-tools-userd

    VMware Tools后台程序

    /Library/Application Support/VMware Tools/vmware-tools-daemon

    您还可以通过选中IORegistry
    来检查是否存在VMware Graphics卡 由于VMware GFX有以下

    设备ID:0x0405   版本ID:0x0000   供应商ID:0x15ad

    1. 模型标识符 您可以使用system_profiler
    2. 获取有关设备的所有信息

      例如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
      

      模型标识符和Boot ROM可用于查找VMware

      system_profiler SPHardwareDataType | awk '/Model Identifier/ {print $3}'

      1. 其他虚拟设备

        • VMware Virtual SATA Hard Drive
        • VMware Virtual USB
        • VMware Virtual SATA CDRW驱动器