在 Windows 10 客户机中隐藏 qemu 虚拟化

在 Windows 10 客户机中隐藏 qemu 虚拟化

我知道这可能有点重复,但我浏览和尝试过的几个主题都没有完全解决我的问题。我会尽量提供尽可能多的(必要的)信息,如果有不相关的信息或需要的信息,请告诉我什么以及如何检索它,我会尽力而为。抱歉,我只是想彻底解决我的问题和信息。

感谢您花时间阅读本文。

主要问题

我试图向我的客户隐藏它是虚拟机的事实,主要是因为我想玩一些在虚拟机上反作弊时玩起来不太好玩的游戏,例如 Valorant。我尝试过网上的许多指南,但似乎都没有用。虽然 Windows 认为它​​是在虚拟机之外运行,但在 PAFish 中检查这些是我得到的痕迹。

PA鱼踪迹

[-] CPU information based detections
[*] Checking the difference between CPU timestamp counters (rdtsc) forcing VM exit ... traced!
[*] Checking hypervisor bit in cpuid feature bits ... traced!            
[*] Checking cpuid hypervisor vendor for known VM vendors ... traced!             

[-] Generic sandbox detection 
[*] Using mouse activity ... traced!                   
[*] Checking operating system uptime using GetTickCount() ... traced!

[-] Qemu detection
[*] Scsi port->bus->target id->logical unit id-> 0 identifier ... traced!

[-] Bochs detection
[*] Reg key (HKLM\HARDWARE\Description\System "SystemBiosVersion") ... traced!

我想尝试修复/缓解这些问题。现在我意识到 Valorant AC 可能也会使用其他方法,但我认为这是一个很好的起点。

下面将是我为此尝试做的一些信息转储。

我的 CPU、主板和操作系统是:

OS: Manjaro Linux x86_64
Host: MS-7C37 2.0
CPU: AMD Ryzen 7 3800X (16) @ 3.900GHz

我已为 AMD CPU 启用嵌套虚拟化

我正在 virt-manager 下运行 qemu,并以 windows 10 Pro 64bit 作为客户机。这里是我的 VM 的 xml 文件的 pastebin,但我会在每个部分中包含我认为与每个跟踪相关的部分。

系統Bios版本

更重要的(我认为)部分是我已经更改了 bios 供应商等:

<sysinfo type="smbios">
<bios>
  <entry name="vendor">American Megatrends Inc.</entry>
  <entry name="version">A.40</entry>
  <entry name="date">09/10/2019</entry>
</bios>
<system>
  <entry name="manufacturer">Micro-Star International Co., Ltd.</entry>
  <entry name="product">MS-7C37</entry>
  <entry name="version">2.0</entry>
  <entry name="serial">SOME RANDOM STRING OF CHARS HERE</entry>
  <entry name="uuid">MY UUID IS HERE</entry>
  <entry name="sku">SOME RANDOM STRING OF CHARS HERE</entry> //Don't even know what should be here
  <entry name="family">MSI Gaming</entry>
</system>

但是它仍然跟踪 SystemBiosVersion,我可以通过注册表编辑来更改它,但我不知道这是否有帮助,因为每次系统重启时都需要更改它。

基于 CPU 信息的检测

我的CPU和Hyper-V设置如下:

<features>
  <acpi/>
  <apic/>
  <hyperv>
    <relaxed state="on"/>
    <vapic state="on"/>
    <spinlocks state="on" retries="8191"/>
    <vendor_id state="on" value="SOME RANDOM STRING OF CHARS HERE"/>
  </hyperv>
  <kvm>
    <hidden state="on"/>
  </kvm>
  <vmport state="off"/>
</features>
<cpu mode="host-passthrough" check="none" migratable="on">
  <topology sockets="1" dies="1" cores="8" threads="2"/>
  <cache level="3" mode="emulate"/>
  <feature policy="disable" name="hypervisor"/>
  <feature policy="require" name="svm"/>
  <feature policy="require" name="invtsc"/>
  <feature policy="require" name="topoext"/>
</cpu>
<clock offset="localtime">
  <timer name="rtc" tickpolicy="catchup"/>
  <timer name="hpet" present="no"/>
  <timer name="hypervclock" present="yes"/>
  <timer name="pit" tickpolicy="discard"/>
</clock>

据我所知,“禁用虚拟机管理程序功能“部分应该可以修复后 2 个 CPU 跟踪,但这可能是我误解了它们的作用。

Qemu 检测

这里我使用:

<disk type="file" device="disk">
  <driver name="qemu" type="qcow2"/>
  <source file="/run/media/jd/Windows/win10.qcow2"/>
  <target dev="sda" bus="sata"/>
  <serial>SOME RANDOM-ISH TEXT</serial>
  <address type="drive" controller="0" bus="0" target="0" unit="0"/>
</disk>
<disk type="file" device="disk">
  <driver name="qemu" type="qcow2"/>
  <source file="/run/media/jd/3TB/VM/WindowsHDD.qcow2"/>
  <target dev="sdc" bus="sata"/>
  <serial>SOME RANDOM-ISH TEXT</serial>
  <address type="drive" controller="0" bus="0" target="0" unit="1"/>
</disk>

但是它仍然从某些逻辑单元 ID 标识符进行跟踪,我在注册表中找到了它,它仍然显示 QEMU HARDDRIVE,我更改了该字符串并且它不再被跟踪,但是像 SystemBiosVersion 一样,这不是一个永久的解决方案,我不知道它是否有帮助。

在我的设备和任务管理器中,两个驱动器都名为 QEMU HARDDRIVE,但我没有找到更改这些名称的方法,除非重新编译 qemu 并更改其源代码。实际上,如果您使用 scsi 驱动器,我找到了更改它的方法,但无法检测到它们。我还找到了一些引用“model=m”来更改名称的更改日志条目,但我没有找到将其放在哪里,而且除了该更改日志的镜像之外没有其他人引用它。

通用沙盒检测

至于这些,我真的不知道从哪里开始,我还没有尝试隐藏它们。我使用 Barrier / Synergy 来共享我的鼠标和键盘,所以我怀疑那是鼠标活动轨迹,但我觉得那不会触发 VAC。

最后的话

这就是我要告诉你的全部内容。我希望我已经正确地提出了我的问题并提供了所需的信息,再次请告诉我这是否太多、错误或只是愚蠢。我对 qemu 的了解并不多,而且这主要是按照在线找到的指南进行的,然后我将它们放在这个测试虚拟机上。感谢您花时间阅读其中的至少一部分,如果您尝试帮助我,我将不胜感激 :)

答案1

我记得看过Jim Browning 的 YouTube 频道上有相关指南

我知道这与您的设置略有不同,因为它是特定于 vmware 的,但有一个很好的指南介绍了需要注意的事项,例如硬盘控制器的名称,这是一个明显的提示。我希望这能有所帮助。

来自视频描述:

您将需要以下注册点:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum

搜索以下 4 个 GUID:

{4d36e967-e325-11ce-bfc1-08002be10318}
{4d36e968-e325-11ce-bfc1-08002be10318}
{4d36e965-e325-11ce-bfc1-08002be10318}
{4d36e96f-e325-11ce-bfc1-08002be10318}

您可以从 [youtube 链接] 下载 VMware Tools 隐身注册表文件

这将适用于装有 VMware Tools 10.10 的 Windows 7、8、8.1 和 10

相关内容