探讨EPT硬断模拟
一条线程中有四个DRX可以设置硬断,如果都被占坑了这就玩不下去了。经过查阅和各种搜索后,发现有一篇 无限硬件断点 贴子可以参考。
楼主百般研究上面源码后发现, 那篇贴子技术对X86系统非常实用,然而在X64系统下无法应用起来。
后来和众多网友探讨与自行研究后发现,X64系统可以用EPT进行模拟硬断。
其原理是在设置、获取、删除硬断时使用一条链表对断点进行存储,在设置时改变其内存属性进入 EPT violation,在 MTF VM-exit时对断点地址注入int 1产生硬断异常。
再到后来编码与调试中楼主发现,注入int 1异常这项操作非常不稳定,要么卡死在系统 模块里要么崩在某地址上,百思不得姐特抱着学习的态度发贴请教各位大虾、高手、大拿、大手子。 模拟硬断不需要EPT。VT相关源码可以去参考INTEL的GITHUB。
我以前做过一个DEMO:http://www.m5home.com/bbs/thread-8758-1-1.html,你可以测试一下。
我已改行,对这些忘记得差不多了,详情自己研究吧,呵呵。 Tesla.Angela 发表于 2018-5-21 03:40
模拟硬断不需要EPT。VT相关源码可以去参考INTEL的GITHUB。
我以前做过一个DEMO:http://www.m5home.com/bb ...
VT和EPT已经摸的差不多了。
不知道大佬能否分享DEMO中部分代码给与参考? yimingqpa 发表于 2018-5-21 16:34
VT和EPT已经摸的差不多了。
不知道大佬能否分享DEMO中部分代码给与参考?
源码链接:https://github.com/intel
书籍链接:https://software.intel.com/en-us/articles/intel-sdm Tesla.Angela 发表于 2018-5-21 17:02
源码链接:https://github.com/intel
书籍链接:https://software.intel.com/en-us/articles/intel-sdm ...
谢谢大佬。 Tesla.Angela 发表于 2018-5-21 17:02
源码链接:https://github.com/intel
书籍链接:https://software.intel.com/en-us/articles/intel-sdm ...
大佬不过这套还是VT,不是硬断..... 求楼主指点,新手入门~可以加我qq吗~【627948162】
页:
[1]