[原创]Hyper-V安全从0到1(4)
书接上文。。。
______________________________________________________________________________________________
4.3. Hypervisor层
本节的内容主要有两点,一方面是虚拟机执行了vmcall指令之后发生的事情,另一方面是虚拟机和宿主机之间的内存映射关系。下面我们就这两点进行讨论。
在开始介绍之前,我们需要一份Intel?64 and IA-32 Architectures Software Developer’s Manual Volume 3B: System Programming Guide, Part 2文档,这份文档可以直接从Intel官方下载,这个文档是Intel VT技术的详细介绍与使用。
vmcall指令的处理
经过上面小节的介绍,我们发现虚拟机内核可以通过执行vmcall指令将通知发送给Hypervisor层,下面我们来介绍在执行vmcall之后的处理。
通过查阅Intel文档,我们得知在发生VM-Exit事件之后,使用vmread读取0x4402字段的数据可以将VM-Exit事件产生的原因代码取出来,并且VM-Exit原因代码为0x12代表VM-Exit发生的原因为执行vmcall指令。知道了这些,我们便可以通过搜索IDA中的关键字来寻找读取0x4402字段的代码,IDA中结果如下。
Address Function Instruction ------- -------- ----------- .text:FFFFF80000219629 sub_FFFFF800002194F0 mov eax, 4402h .text:FFFFF8000029F434 sub_FFFFF8000029F418 mov eax, 4402h .text:FFFFF800002B6387 sub_FFFFF800002B5F68 mov eax, 4402h
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
