게스트 Windows 10에서 qemu 가상화 숨기기

게스트 Windows 10에서 qemu 가상화 숨기기

나는 이것이 약간 반복될 것이라는 것을 알고 있지만 내가 탐색하고 시도한 여러 주제 중 어느 것도 나에게 완전히 효과가 없었습니다. 가능한 한 많은 (필요한) 정보를 제공하려고 노력할 것입니다. 관련 없는 정보나 필요한 정보가 있는 경우 무엇을, 어떻게 검색할 수 있는지 알려주시면 최선을 다하겠습니다. 죄송합니다. 내용이 길어서 질문과 정보를 자세히 설명하고 싶습니다.

시간을 내어 읽어주셔서 감사합니다.

주요 문제

나는 그것이 VM이라는 사실을 게스트에게 숨기려고 노력하고 있습니다. 주로 Valorant와 같이 VM에 있는 치트 방지 기능으로 제대로 작동하지 않는 일부 게임을 플레이하고 싶기 때문입니다. 온라인에서 많은 가이드를 시도했지만 아무 것도 작동하지 않는 것 같습니다. 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가 다른 방법도 사용할 수 있다는 것을 알고 있지만 이것이 시작하기 좋은 곳이라고 생각합니다.

아래는 제가 시도한 작업에 대한 약간의 정보 덤프입니다.

내 CPU, 마더보드 및 OS는 다음과 같습니다.

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

내 AMD CPU에 대해 중첩된 가상화를 활성화했습니다.

저는 게스트로 Windows 10 Pro 64비트를 사용하여 virt-manager에서 qemu를 실행하고 있습니다.여기내 VM에 대한 내 XML 파일의 페이스트빈이지만 각 섹션의 각 추적에 대한 관련 부분이라고 생각되는 부분을 포함하겠습니다.

시스템바이오스버전

(내 생각에) 더 중요한 부분은 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>

내가 읽은 것에서 "기능 비활성화 하이퍼바이저" 부분은 후자의 CPU 추적 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>

하지만 여전히 일부 논리 장치 ID 식별자에서 추적합니다. 여전히 QEMU HARDDRIVE라고 표시된 레지스트리에서 이것을 찾았습니다. 해당 문자열을 변경했는데 더 이상 추적되지 않았지만 SystemBiosVersion과 마찬가지로 이것은 영구적인 솔루션이 아니므로 그렇지 않습니다. 그것이 도움이 되는지조차 모르겠습니다.

내 장치와 작업 관리자에서 두 드라이브의 이름은 QEMU HARDDRIVE로 지정되어 있지만 소스 코드를 변경하여 qemu를 다시 컴파일하지 않고 해당 이름을 변경할 수 있는 방법을 찾지 못했습니다. 사실 scsi 드라이브를 사용하는 경우 변경할 방법을 찾았습니다. 하지만 그것들은 감지되지 않습니다. 그리고 이름을 변경하기 위해 "model=m"을 참조하는 일부 변경 로그 항목도 찾았지만 이를 어디에 넣을지 찾지 못했고 해당 변경 로그의 미러 외에는 이를 참조하는 사람이 없습니다.

일반 샌드박스 감지

이것들에 관해서는 나는 어디서부터 시작해야 할지조차 모르고, 숨기려고도 하지 않았습니다. Barrier/Synergy를 사용하여 마우스와 키보드를 공유하므로 이것이 마우스 활동 추적인 것으로 의심되지만 VAC를 트리거할 것 같지는 않습니다.

마지막 말

그리고 그것이 내가 당신에게 주어야 할 전부입니다. 제 질문을 적절하게 구성하고 필요한 정보를 제공했으면 좋겠습니다. 너무 과하거나, 잘못되었거나, 어리석은 것인지 다시 한 번 말씀해 주십시오. 나는 qemu에 대한 깊은 지식이 전혀 없으며 이것은 주로 온라인에서 찾은 가이드를 따라 수행되었으며 이 가이드를 이 test-vm에 정리했습니다. 시간을 내어 이 내용 중 일부라도 읽어주셔서 감사하고 저를 도와주신다면 더욱 감사하겠습니다 :)

답변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 도구 10.10을 사용하는 Windows 7, 8, 8.1 및 10에서 작동합니다.

관련 정보