前言
本章开始真正实现一个最简单的VT框架,当然,只是能跑起来一个VT驱动了,没有并包括EPT,EPT后面再讲
一、vmlaunch
执行vmlaunch指令执行后,就正式进入虚拟化了,再该指令执行之前,得先保存Guest当前的环境,执行完vmlaunch后,要恢复Guest的环境,让Guest就像什么都没发生一样,所以需要保存和恢复Guest的各种寄存器的值,这些操作用汇编来比较方便,所以用汇编编写一个函数,用于执行vmlaunch
在Asm.h中声明:
//用于保存Guest环境后执行vmlaunch,和恢复Guest环境
BOOLEAN AsmVmxLaunch(PVOID callBack,PVOID thisPoint)