2017-03-26 178 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驅動器