hypervisor 常见问题
被vmm监控的指令单步后 rip/eflags不正确
需要在=+vmexitinslen();前 如果Eflags.Trap_Flag 设置注射#DB异常
被vmm监控的指令执行后 线程的dr相关调试器失效
exit_ctls.acknowledge_interrupt_on_exit = true;//must be set
exit_ctls.save_debug_controls = true;//must be set
entry_ctls.load_debug_controls = true; //must be set
需要设置 vmexit load/save debug_controls~
rdmsr MSR_IA32_FEATURE_CONTROL检测 需要设置 该msr的bitmap
case MSR_IA32_FEATURE_CONTROL:
value.QuadPart = __readmsr(ecx) & ~(FEATURE_CONTROL_VMXON_ENABLED_OUTSIDE_SMX |
FEATURE_CONTROL_VMXON_ENABLED_INSIDE_SMX);
cr4.vmxme检测 需设置cr4shadowread 抹去 vmxme位
以及其他的一些固定位检测 可能需要模拟一下