Скрытие виртуализации qemu в гостевой Windows 10

Скрытие виртуализации qemu в гостевой Windows 10

Я знаю, что это, вероятно, будет немного повторением, но ни одна из нескольких тем, которые я просматривал и пробовал, не сработала для меня полностью. Я постараюсь дать столько (необходимой) информации, сколько смогу, если есть не относящаяся к делу информация или информация, которая нужна, пожалуйста, скажите мне, что и как я могу ее получить, и я сделаю все возможное. Извините, что так длинно, я просто хочу быть подробным в своем вопросе и информации.

Спасибо, что уделили время прочтению этой статьи.

Главная проблема

Я пытаюсь скрыть от гостя тот факт, что это виртуальная машина, в основном потому, что я хочу поиграть в некоторые игры, которые не очень хорошо работают с их античитом на виртуальной машине, например, Valorant. Я перепробовал много руководств в сети, но ни одно из них не работает. Хотя Windows считает, что она запущена вне виртуальной машины, проверяя в PAFish, я получаю вот такие следы.

Следы PAFish

[-] 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 может использовать и другие способы, но я думаю, что это хорошее место для начала.

Ниже будет представлен небольшой информационный бюллетень о том, что я сделал, пытаясь это сделать.

Мой процессор, материнская плата и ОС:

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

Я включил вложенную виртуализацию для своего процессора AMD.

Я запускаю qemu под управлением virt-manager с Windows 10 Pro 64bit в качестве гостя.Здесьэто pastebin моего XML-файла для моей виртуальной машины, но я включу то, что, по моему мнению, является значимым для каждой трассировки в каждом разделе.

SystemBiosVersion

Более важным (я думаю) является то, что я сменил поставщика 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, это я могу изменить с помощью редактирования реестра, но не знаю, поможет ли это, поскольку его нужно менять при каждой перезагрузке системы.

Обнаружение на основе информации о ЦП

Мои настройки ЦП и 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 трассировки ЦП, но это могло быть из-за того, что я неправильно понял, что они делают.

обнаружение 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>

Но он все еще отслеживает его по какому-то идентификатору логического устройства, я нашел это в реестре, где все еще было указано QEMU HARDDRIVE, я изменил эту строку, и он больше не отслеживался, но, как и SystemBiosVersion, это не постоянное решение, и я не знаю, помогает ли оно вообще.

В моем диспетчере устройств и задач оба диска называются QEMU HARDDRIVE, но я не нашел способа изменить эти имена без перекомпиляции qemu с изменением его исходного кода.. Ну, на самом деле я нашел способы изменить это, если вы используете диски scsi, но они не определяются. И я также нашел некоторую запись в журнале изменений, ссылающуюся на "model=m", чтобы изменить имена, но я не нашел, куда ее поместить, и никто больше на нее не ссылается, кроме зеркал этого журнала изменений.

Универсальное обнаружение песочницы

Что касается этих, я даже не знаю, с чего начать, я не пытался их скрыть. Я использую Barrier / Synergy для совместного использования мыши и клавиатуры, поэтому я подозреваю, что это отслеживание активности мыши, но я не думаю, что это вызовет срабатывание VAC.

Заключительные слова

И это все, что я могу вам дать. Надеюсь, я правильно сформулировал свой вопрос и дал необходимую информацию, еще раз, пожалуйста, скажите мне, если это слишком много, неправильно или просто глупо. У меня нет больших, если вообще есть, глубоких знаний о qemu, и это было сделано в основном по найденным руководствам в сети, которые я затем собрал в этот test-vm. Спасибо, что уделили время, чтобы прочитать хотя бы часть этого, и спасибо еще раз, если вы попытаетесь мне помочь :)

решение1

Я вспомнил, как смотрелруководство по этому вопросу на канале Джима Браунинга на 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}

Вы можете загрузить скрытые файлы реестра VMware Tools с [ссылки в ссылке на YouTube]

Это будет работать для Windows 7, 8, 8.1 и 10 с VMware tools 10.10.

Связанный контент