2017-03-26 148 views
0

是否可以检测到我的MacOS应用程序是否在虚拟机上运行? (我不是说模拟器,只是一些像VirtualBox或其他虚拟机..)检测在虚拟机上运行

+1

相关http://stackoverflow.com/questions/154163/detect-virtualized-os-from-an-application和http://stackoverflow.com/questions/498371/how-to-detect如果我的应用程序正在运行在一个虚拟机器和多个其他应用程序中。 – Sulthan

回答

1

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

的VMware

  1. VMware Tools的 如果安装VMware Tools,则可以检查以下文件。

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

您还可以检查是否有VMware的图形卡通过支票存在荷兰国际集团IORegistry
由于VMware的GFX具有以下

设备ID:英语 - 南非 版本ID:0×0000 供应商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}'

  • 其他虚拟设备

    • VMware的虚拟SATA硬盘驱动器
    • VMware虚拟USB
    • VMware虚拟SATA CDRW驱动器