Developer knowledge network · moderated exchange

UnreliableCode-Community

Community für Entwicklerforschung, Reverse Engineering und Codierung

Knowledge indexLive
4Categories
919Threads
2.8KBeiträge
Analysis

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

hypervisor_hank
Kernel Wizard
MEMBER
Vertreter: 108
Beitrittsdatum: Feb 2020
Beiträge: 17
Danke: 44
Vor 1 Monaten · 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
Vertreter: 145
Beitrittsdatum: Feb 2019
Beiträge: 26
Danke: 45
Vor 1 Monaten · 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
Vertreter: 111
Beitrittsdatum: Feb 2019
Beiträge: 30
Danke: 18
Vor 1 Monaten · Jul 12, 2026 3:42 AM
#3

Hardware virtualization is the ultimate root of trust.