博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VT技术和kvm
阅读量:2343 次
发布时间:2019-05-10

本文共 721 字,大约阅读时间需要 2 分钟。

最近一直在是看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

你可能感兴趣的文章
Cucumber Hooks
查看>>
[Jenkins][Git]ssh原理以及与https的区别
查看>>
Jenkins slave节点配置(SSH with private key)
查看>>
jenkins集群测试环境原理、部署及常见问题解决,远程主机配置
查看>>
ASP.NET MVC3学习总结(一)ASP.NET MVC介绍
查看>>
在 ASP.NET MVC 中充分利用 WebGrid
查看>>
Java模拟HTTP的Get和Post请求
查看>>
HttpURLConnection模拟登录方法(带Cookie的POST/GET)
查看>>
Java爬虫入门简介(三)——HttpClient保存使用Cookie登录
查看>>
HttpClient模拟浏览器登录后发起请求(携带Cookie发请求)
查看>>
Java通过httpclient获取cookie模拟登录(网络爬虫/HTTP)
查看>>
WebDriver表格定位-----遍历表格的全部单元格
查看>>
Java中通过jsch来连接远程服务器执行linux命令
查看>>
java 转json 报错处理机制 案例 .
查看>>
Json String to Java Bean
查看>>
C#中ref和out和params
查看>>
selenium借助AutoIt识别上传文件Java篇
查看>>
使用 Selenium 实现基于 Web 的自动化测试
查看>>
Automated WebTesting with Selenium RC
查看>>
Web测试:Selenium使用
查看>>