摘要:记录一次vmware反虚拟化教程,应该是一份很详尽的教程。

对于vmware反虚拟化的伪装,主要分成四个部分,分别是 vmware-vmx.exe(vmware安装目录下)、BIOS.441.ROM(虚拟机文件目录下)、xxx.vmx(虚拟机文件目录下)、注册表(虚拟机系统内)。

BIOS.441.ROM

必做,如果不做基本上会被检测。
主要修改主板名称、序列号、bios版本、bios厂商、内存品牌和序列号 等信息。需要将附件中的 BIOS.441.ROM 和 虚拟机的.vmx放在同目录。
然后在.vmx中追加下面内容:

bios440.filename="BIOS.441.ROM"

vmware-vmx.exe

基本信息修改

必做,如果不做基本上会被检测。
主要修改了 硬盘、网卡、显卡、 dmi序列号 等相关信息。
具体修改内容,参考 vmware-vmx_path.py 脚本。使用的时候直接使用修改好的vmware-vmx.exe替换vmware安装目录下的vmware-vmx.exe即可。

虚拟显卡伪装

选作,如果不做可能不会被检测。
本质上是把 vmware原版驱动伪装为 NVIDIA GeForce RTX 3080 驱动,使虚拟机内的显卡在设备管理器和驱动层面呈现为真实 NVIDIA 显卡(ps:直接换个壳,不是重新写一个驱动)。

第一步: 在cmd管理员模式下执行bcdedit -set testsigning on关闭驱动签名验证:

# 运行下列命令,提示成功后,重启电脑即可关闭签名验证
bcdedit -set testsigning on

# 运行下列命令,提示成功后,重启电脑即可开启签名验证
bcdedit -set testsigning off

第二步:强制安装显卡驱动。

powershell -ExecutionPolicy Bypass -File "强制安装补丁驱动.ps1" -HardwareId "PCI\VEN_10DE&DEV_2216&SUBSYS_221610DE" -InfPath "c:\成功版本\nv3d.inf"

伪装显卡十分麻烦,网上的资料基本都是藏着掖着。需要对vmware原版驱动进行二进制级别的修改,非简单替换字符串可以达到
可以参考 驱动修改报告.md 。

注册表

选作,如果不做可能不会被检测。
打开虚拟机,然后在注册表计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318} 下面找到含有RTX 3080字符串的文件夹,然后把文件夹下的 HardwareInformation.AdapterStringHardwareInformation.ChipType 项的值都改成 NVIDIA GeForce RTX 3080

xxx.vmx

选作,如果不做可能不会被检测。
在虚拟机目录下面找到.vmx 后缀结尾的文件,然后在文件尾加入下面几行:
注意:加了之后粘贴复制、鼠标无缝切换会失效。

cpuid.1.ecx = "00000010100111101110001111111111"
cpuid.1.edx = "10111111111010111111101111111111"
monitor_control.virtual_rdtsc = "false"
monitor_control.restrict_backdoor = "true"
isolation.tools.getPtrLocation.disable = "true"
isolation.tools.setPtrLocation.disable = "true"
isolation.tools.setVersion.disable = "true"
isolation.tools.getVersion.disable = "true"
hypervisor.cpuid.v0 = "FALSE"

补充说明

复制文件问题

如果进行了xxx.vmx相关的伪装,vmtool自带的粘贴复制会失效。可以在宿主机和客户机同时运行复制工具.exe,然后就可以正常进行粘贴复制文件。

文章目录