欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]Hyper-V安全从0到1(4)

[原创]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。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功