Developer knowledge network · moderated exchange

Społeczność UnreliableCode

Badania programistów, inżynieria wsteczna i społeczność programistów

Knowledge indexNa żywo
4Categories
919Threads
2.8KPosty
Analysis

Trapping CR3 register changes in a Type-2 Intel VT-x Hypervisor

hypervisor_hank
Kernel Wizard
MEMBER
Rozpustnik: 108
Data dołączenia: Feb 2020
Posty: 17
Dzięki: 44
1 miesięcy temu · Jul 11, 2026 2:13 PM
#1

How a Type-2 Hypervisor intercepts CR3 page table directory swaps:

  1. In the VMCS (Virtual Machine Control Structure), enable CPU_BASED_CR3_LOAD_EXITING bit in VMCS_PROC_BASED_EXEC_CONTROLS.
  2. Whenever guest OS or anti-cheat executes mov cr3, rax:
  3. The CPU triggers an immediate #VMEXIT to hypervisor VMX root mode.
  4. Hypervisor reads the new CR3 target from VMCS_EXIT_QUALIFICATION, logs the guest game process DirectoryTableBase, and executes __vmx_vmresume().

Guest software has 0 awareness that its CR3 operations were intercepted!

kernel_komrade
Driver Dev
MEMBER
Rozpustnik: 145
Data dołączenia: Feb 2019
Posty: 26
Dzięki: 45
1 miesięcy temu · Jul 11, 2026 4:58 PM
#2

With hypervisor CR3 trapping, you always know the exact active page directory base of protected game processes.

stack_smasher
Kernel Explorer
MEMBER
Rozpustnik: 111
Data dołączenia: Feb 2019
Posty: 30
Dzięki: 18
1 miesięcy temu · Jul 12, 2026 3:42 AM
#3

Hardware virtualization is the ultimate root of trust.