33、虚拟化技术中的系统调用与处理器状态解析

虚拟化技术中的系统调用与处理器状态解析

1. 拦截机制与超调用控制

1.1 拦截类型识别

当 VTL 0 软件引发的拦截将在 VTL 1 中触发时,安全内核需要从其中断服务例程识别拦截类型。它借助 SynIC 为“拦截”合成中断源分配的消息队列实现此目的。同时,安全内核可通过检查由管理程序虚拟化的 SIMP 合成 MSR 来发现并映射物理内存页,此映射操作在 VTL 1 的安全内核初始化时执行。

1.2 保护敏感内核部分

HyperGuard 广泛使用拦截机制来保护正常 NT 内核的敏感部分。若 NT 内核中的恶意 rootkit 试图通过向受保护寄存器写入特定值来修改系统,安全内核的拦截处理程序(ShvlpInterceptHandler)会过滤新寄存器值。若该值不可接受,将向 VLT 0 中的 NT 内核注入通用保护故障(GPF)不可屏蔽异常,导致系统立即进行错误检查并停止;若值可接受,安全内核会通过 HvSetVpRegisters 超调用借助管理程序写入寄存器的新值。

1.3 超调用拦截控制

安全内核向管理程序注册的最后一种拦截类型是超调用拦截。其处理程序会检查 VTL 0 代码向管理程序发出的超调用是否合法,是否源自操作系统本身而非外部模块。每次在任何 VTL 中发出超调用时,都会在管理程序中引发 VMEXIT。管理程序仅针对直接向其请求服务的超调用,向更高 VTL 注入合成拦截中断,跳过用于安全和正常调用安全内核的超调用。若超调用无效,将不会执行,安全内核会更新较低 VTL 的寄存器以发出超调用错误信号,系统不会崩溃,调用代码可自行决定如何处理错误。

2. VSM 系统调用类

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值