被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位

以及其他的一些固定位检测 可能需要模拟一下

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据