VT技术和kvm

最近一直在是看VT和kvm技术相关的问题。在网上查了很多资料。很多直接从代码将,各种流程图和代码贴出来。但突然感觉代码不能直接这样学。

应该带着思考来。这里列出几个有疑问的点。

VT技术如何实现多个系统之间相互不影响

这个应该就是通过vmm在跟模式和非根模式直接切换,对操作系统进行内存IO限定的。

windows Hyperplatform 为什么可以实现对PG内存保护的绕过

我个人的理解在于vm_exit行为上的劫持。两个页面一个patch过only_exec,一个没有patch过rwx。
当pg检测到only_exe时,会发生读异常产生vm_exit异常,这时候vmm劫持执行流,如果这个时候把页表替换到rwx没有patch的页表,那么PG保护找到的页表将会是正确的页表。但替换页表的同时设置VmcsField::kCpuBasedVmExecControl域里面的一个标志位叫做 MTF(Monitor Trap Flag),这个标志位的作用是单步执行完一条执行之后触发一次VM_EXIT(reason:MonitorTrapFlag)。那么vmm将会再次劫持异常,我们将页表再次替换回only_exe页表。那么内存也将会停留在被patch过的状态,最终实现PG绕过。

当然,直接使用patch过的页面,只是更改执行属性,也可以实现完全类似的效果。

如此来说,如果linux上也存在类似于PG的技术,完全可以通过类似的技术来绕过
参考:
https://blog.csdn.net/youyou519/article/details/93471233
https://bbs.pediy.com/thread-225797.htm

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值