加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.52wenzhou.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 空间 > 正文

【硬件虚拟化】远离kernel的理想乡

发布时间:2018-12-29 15:42:31 所属栏目:空间 来源:三寸法师
导读:简介 这个故事描述了如何使用硬件虚拟化(HVM)使得自己的一些hook代码远离内核不容易被其他内核hook所影响并且较难被检测。本文的思路来源于某学校的动态linux内核更新的玩意,代码大量抄自bluepill。 第一章 (Avalon) 阿瓦隆的黎明 由于驱动牛人越来越多系

部分代码:

  1. static BOOLEAN NTAPI VmxDispatchMsrRead ( 
  2.  PCPU Cpu, 
  3.  PGUEST_REGS GuestRegs, 
  4.  PNBP_TRAP Trap, 
  5.  BOOLEAN WillBeAlsoHandledByGuestHv 
  6.  
  7. ... 
  8.  
  9. switch (ecx) { 
  10.  case MSR_IA32_SYSENTER_CS: 
  11.    MsrValue.QuadPart = VmxRead (GUEST_SYSENTER_CS); 
  12.    break; 
  13.  
  14.  case MSR_IA32_SYSENTER_ESP: 
  15.    MsrValue.QuadPart = VmxRead (GUEST_SYSENTER_ESP); 
  16.    break; 
  17.  case MSR_IA32_SYSENTER_EIP: 
  18.    MsrValue.QuadPart = Avlkrnlinfo->SysenterAddr; 
  19.  
  20. ... 
  21.  

idt重定向处理方法:

1、idt地址欺骗

2、idt模拟投递

第一种是指方案拦截sidt,lidt指令填充一份伪造的idt地址误导访问者(由系统投递相对稳定)。

第二种是指方案模拟idt的处理过程自己写程序投递idt。

因为方案一需要使用反汇编引擎分析具体的保存地址体积过大,所以本版的Avalon使用第二种方案即idt模拟投递。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读