首页
社区
课程
招聘
[讨论]关于基于VT的 OD调试器的解决方案
发表于: 2018-3-5 19:56 7586

[讨论]关于基于VT的 OD调试器的解决方案

2018-3-5 19:56
7586

都说VT 对于调试破解和反调试,是一门很厉害的技术,所以最近看了下邓志的 《处理器虚拟化》 对VT有了点了解,但是现在问题也出现了,就是该怎么利用VT来 实现调试框架,,我也下载了一份DDVP 代码,目前只看了一小点, 感觉DDVP实现VT的调试框架,很繁琐,所以我就想通过 其他的方法来实现,当然我现在的技术还不够,我只是希望先找到一个方向在学习而不是盲目的去学 ,所以我把我的问题发到这里希望能够得到 ,大家的探讨,  
   我的想法是  首先VT 要开启EPT分页  ,这个分页 与物理内存地址一 一对应 ,也就是 虚拟地址 就是真实物理地址,

   在HOST 中分配相同大小两块物理内存 ,一块给windows操作系统使用   , 第二块和第一块大小相同留作备份数据使用 (当VM ENTRY 时用它来 恢复内存),当发生VMEXIT 进入HOST 时  复制windows 使用的第一块物理内存的所有数据 到第二块 ,,这样在 HOST中随意操作windows代码页不用担心破坏他的内存了 ,

  在guest 区域的 windows 中  先 重载内核 然后在用户层  启动OD附加一个进程   当OD调用函数挂起被调试进程时候  产生VM EXIT事件  进入 HOST  ,在进入host 时   保存原guest 区域的所有寄存器 ,  ,并读取 guest区域中windows当前进程的CR3 页表的值并把该值写入 EPTP 这样原来在GUSET区域中的 windows 就能在HOST 中读取了,  把进入host 时的 所有GUEST 寄存器恢复到原来的值 让代码继续跑,这个时候代码在0环 线程还是那个OD运行的线程,这里有个问题就是 OD调用的函数还是会返回R3层的,而windows 也是基于保护模式下的所以 在R0  和R3切换的时候会检GDT 表的段描述符的权限位, 所以这里还要补充一点 就是   当 把GUEST 区域中的CR3 写入到EPT 后  还要  读取GDT表保存一份  ,留作VM entry的时候使用   ,保存了GDT  后  我们可以把gdt 表中所有windows的 R3层描述符的权限为  更改位R0 层权限这样 就免去了 权限的切换, 

以上就是我的记本思路  也不知道可不可行得通 ,所以希望 ,大家 多交流探讨一下  ,如果没有 前辈 和大佬们的意见以我这种学渣 是完全不可能实现 以上代码的   所以希望大家多交流交流意见 探讨下  
   这里我朋友提出了一个问题  就是,时钟中断如果HOST层依然有时钟中断,这会造成线程的切换,如果有时钟中断 我的想法是 清空当前windows
的所有 线程队列  只保留 OD的这条线程  ,如果没有 那就更好了 ,(貌似是有 ,因为好像有个虚拟IDT表  这里我不懂 )  

好了 以上纯属个人异想 ,可能行不通希望大家别见笑  ,还是希望前辈们 多指导我一下 ,谢谢大家了 
    
  在guest 区域的 windows 中  先 重载内核 然后在用户层  启动OD附加一个进程   当OD调用函数挂起被调试进程时候  产生VM EXIT事件  进入 HOST  ,在进入host 时   保存原guest 区域的所有寄存器 ,  ,并读取 guest区域中windows当前进程的CR3 页表的值并把该值写入 EPTP 这样原来在GUSET区域中的 windows 就能在HOST 中读取了,  把进入host 时的 所有GUEST 寄存器恢复到原来的值 让代码继续跑,这个时候代码在0环 线程还是那个OD运行的线程,这里有个问题就是 OD调用的函数还是会返回R3层的,而windows 也是基于保护模式下的所以 在R0  和R3切换的时候会检GDT 表的段描述符的权限位, 所以这里还要补充一点 就是   当 把GUEST 区域中的CR3 写入到EPT 后  还要  读取GDT表保存一份  ,留作VM entry的时候使用   ,保存了GDT  后  我们可以把gdt 表中所有windows的 R3层描述符的权限为  更改位R0 层权限这样 就免去了 权限的切换, 

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 639
活跃值: (1187)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
2
希望成功。一排支持!
最后于 2018-3-6 10:02 被qqwawzymu编辑 ,原因:
2018-3-6 09:29
0
雪    币: 30
活跃值: (695)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
借鉴下  滴水呢
2018-3-6 14:42
0
游客
登录 | 注册 方可回帖
返回
//