gpt4 book ai didi

emulation - super 管理者:跨不同的虚拟化技术缺乏独特的功能

转载 作者:行者123 更新时间:2023-12-02 04:28:17 25 4
gpt4 key购买 nike

与英特尔的VMX和ARM的virt扩展一起使用时,我注意到缺少实现虚拟机管理程序时非常有用的功能。

在虚拟机管理程序的工作中,通常有必要捕获来宾行为,但仅出于跟踪目的(即,该指令可以由来宾正常执行,但是我们需要首先执行某些操作,例如记录日志)。

更准确地说,请举以下示例:在我前一段时间实现的Intel系统管理程序上(以Windows 7作为来宾),每当修改Windows内核结构时,我都需要记录日志。为此,我找出了内核结构的物理地址,并删除了来宾对相应EPT页面的写许可权。因此,每当来宾尝试编写(修改)该结构时,都会发生EPT冲突,从而导致系统管理程序陷阱。

对于每种此类EPT违规,我将采取以下策略之一:

策略一:


激活监视器陷阱标志
临时授予来宾写入区域的权限(EPT修改)
VMRESUME =>由于MTF被激活,来宾将立即执行指令和VMEXIT
在下一个VMEXIT上,我将停用MTF并再次禁止来宾再次写入结构(= EPT修改+无效)和VMRESUME


策略2:


模拟要编写结构的指令。这意味着编写仿真器(>反汇编程序)。


如您所见,即使没有多处理能力,这两种策略都有些复杂。关于策略1,如果要在多个处理器上虚拟化Windows,则在处理EPT冲突时,我们还必须将IPI发送到其他内核以暂停它们。另外,这是一个特定的示例,表示特定的策略。跟踪的另一个示例可能是例如在调用内核函数时记录和/或修改内核函数的参数。在这种情况下,我们可能需要其他策略。

我想是时候说清楚了。我的困境如下。当我们需要跟踪访客行为时,避免复杂编程策略的一种简单方法是虚拟化技术提供动态选择是否在执行指令陷阱之前或之后发生陷阱的可能性。

甚至在编写我的第一个虚拟机管理程序(在Intel上)之前,我几乎都确信VMX会为我提供这样的功能。我的想法告诉我,这将是任何平台上的任何虚拟化技术所提供的显而易见的功能,因此当我发现实际上并非如此时,我感到惊讶(有些沮丧):不在Intel上,不在ARM上(正如我最近发现的那样) ),并且很可能不在其他平台上。因此,我的问题实际上是:为什么?为什么硬件虚拟化“设计者”不实现这种功能?我确信以前已经考虑过了,因此对我来说,唯一可能的答案似乎是在硬件上实现这样的功能非常困难甚至不可能,尽管我看不出为什么会如此。是这样吗

预先感谢您的回答:)

编辑

尽管我没有说清楚,但我也想指出一个事实,在很多情况下,程序员希望通过改变IT的作用来捕获某些来宾行为(因此,它比跟踪更重要),但是这种功能仍然非常有用。

以下面的示例为例。让我们假设我希望我的管理程序控制与内存映射设备的来宾通信(甚至完全模拟一个设备-这是当今管理程序的非常普遍的要求)。大多数时候,我们会做的是告诉客人该设备是在地址A上进行内存映射的,并挂钩对该地址的写/读操作。当一条被捕获的指令试图读/写地址A处的区域时,当前我们被强制反汇编并模拟它。如果系统管理程序为我们提供了在具有临时读/写权限的情况下执行一条指令并在其后立即进行捕获的可能性,则无需对该指令进行仿真,因为我们可以让其执行并随后“添加”所需的效果。

最佳答案

您只能在使用说明之前进行陷阱,因为这是硬件提供的。从理论上讲,VM可以对您在虚拟机管理程序中的陷阱做出反应,并对其进行实际处理(更改背后的任何与内存相关的参数),因此替代方案不是很有用。

抱歉,这就是事实。

关于emulation - super 管理者:跨不同的虚拟化技术缺乏独特的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21531026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com