未分类 · 2024年3月23日 0

VMware(ESXi)反虚拟机检测方法

由于修改信息可能会导致系统激活状态失效,或者修改后配置不生效,故建议在创建虚拟机时就修改好。要不然就走一步算一步,遇到问题再解决吧。

直接将下面的代码贴到虚拟配置文件 .vmx 中(如果是 EXSi,建议通过 WEB 控制面板来修改配置),屏蔽VMware 特定信息的探测:

修改软件信息

VMTools 接口

isolation.tools.getPtrLocation.disable = "TRUE"
isolation.tools.setPtrLocation.disable = "TRUE"
isolation.tools.setVersion.disable = "TRUE"
isolation.tools.getVersion.disable = "TRUE"
monitor_control.disable_directexec = "TRUE"
monitor_control.disable_chksimd = "TRUE"
monitor_control.disable_ntreloc = "TRUE"
monitor_control.disable_selfmod = "TRUE"
monitor_control.disable_reloc = "TRUE"
monitor_control.disable_btinout = "TRUE"
monitor_control.disable_btmemspace = "TRUE"
monitor_control.disable_btpriv = "TRUE"
monitor_control.disable_btseg = "TRUE"
monitor_control.restrict_backdoor = "TRUE"

驱动信息

DiskID = "NVIDIA Windows Driver Library Installation"
CompanyName = "NVIDIA"
SVGA = "GeForce GTX 660"

在这一步中,需要安装 VMware Tools 才会有显卡驱动,但是上面修改了配置,将无法安装 VMware Tools,会提示“只应安装在虚拟机内”。虚拟机驱动其实都是一样的,因此可以从其他虚拟机中导出来直接使用。由于安装VMware Tools 将会是一个非常明显的特征,因此如非必要,建议不安装。如果或者你把这一步放再最后,如果前面已经过了检测,这一步不改也可以。

修改硬件信息

主板信息

这一步,沿用和自编选择一个即可。

下面的代码表示延用实体机的主板信息:

SMBIOS.reflecthost = "TRUE"
SMBIOS.noOEMStrings = "TRUE"
SMBIOS.addHostVendor = "TRUE"
hw.model.reflectHost = "TRUE"
serialNumber.reflectHost = "TRUE"
board-id.reflectHost = "TRUE"

下面的代码是自编的例子,比如在黑苹果中会用到的:

smbios.reflectHost = "FALSE"
smbios.vendor = "Apple Computer, Inc."
smbios.version = "MBA51.88Z.0055.B08.0610121"
smbios.family ="MacBook Pro"
smbios.model = "MacBookPro1.1"
smbios.date ="10/12/06"
smbios.manufacturer = "Apple Computer, Inc."
smbios.systemversion = "1.0"

磁盘信息

如果在 scsi0 插槽上有 SCSI 虚拟磁盘作为系统驱动器,可以添加:

scsi0:0.productID = "WDC_____WD10EZEX-57WN4D11"
scsi0:0.vendorID = "WDC"

scsi0:0 表示第一个插槽,其他硬件也可以类似指定 ID。

网卡信息

ethernet0.checkMACAddress = "FALSE"
ethernet0.address = "BC:30:5B:DD:D2:E8"

以上的方法能够解决大部分的虚拟机探测,但是一些强检测的,还是会有检测不了的情况。毕竟是骗,能不能骗过,还得看对方好不好骗。