如何检测我是否在虚拟机中?

Tho*_*mas 6 windows virtualbox virtual-machine

我一次又一次地看到安全程序的描述是“请不要尝试在 VM 中运行它,因为该程序将无法启动”或“安全程序会说它不在虚拟机中”。如果从 VM 运行,则为有效环境”。

我想知道的是:程序如何检测它们是否在虚拟机内?是否在某处设置了一些标志,或者是特定的驱动程序?

Vom*_*yle 5

如何检测我是否在虚拟机内?

我过去完成此操作的一种快速方法是从命令提示符使用WMIC命令来查询 WMI 名称空间对象的计算机、品牌、型号和序列号。

您可以编写一些逻辑来使用 WMIC 结果作为安装过程的一部分,如果它检测到已知的内容,您可以让它检查它作为表明它是虚拟机的逻辑的一部分,或者您可以对其进行编程以查找其他值来表明它不是虚拟机一个虚拟机或两者。


获取硬件序列号:

WMIC BIOS GET SERIALNUMBER
Run Code Online (Sandbox Code Playgroud)

获取硬件型号:

WMIC COMPUTERSYSTEM GET MODEL
Run Code Online (Sandbox Code Playgroud)

获取硬件制造商:

WMIC COMPUTERSYSTEM GET MANUFACTURER
Run Code Online (Sandbox Code Playgroud)

虚拟机与虚拟机上的结果

非 VM WMIC 结果:

在此输入图像描述

VM WMIC 结果:

在此输入图像描述


更多资源: