码迷,mamicode.com
首页 > 其他好文 > 详细

YJX_Driver_021_绕过驱动保护

时间:2016-04-02 18:56:19      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

1、

绕过SSDT驱动保护

  A、去掉页面保护

  B、写入In Line HOOK代码

  C、用OD附加测试效果

  D、反HOOK代码

【190】复制 第20课 的代码

【315】涉及到 页面的保护 ==> 涉及到 一个特殊的寄存器

  cr0,32位寄存器 ==> 其中的第17位(从第0位开始) ==> CW位

    【480】CW位: 置1 --> 开启 页面保护

            置0 --> 去掉 页面保护

【530】这只是一种方法(修改cr0的CW位),还有一种是修改内存描述符(MDL)(相关函数前面也说了,也可以更改页面保护的属性,那个更详细一些 更专业一点)

【580】用 CR0(CW位) 去掉页面保护,更方便一些

  【660】方法:

    (not (1 shl 16)) & cr0

【935】指令"cli" ==> 关掉相应的 中断,避免在执行我们的指令的时候被打扰

 

#pragma pack(1)
#pragma pack()
__asm // 去掉页面保护
{
  cli
  mov eax,cr0
  and eax,not 10000h //and eax,0FFFEFFFFh
  mov cr0,eax
}

__asm // 恢复页保护
{
  mov eax,cr0
  or eax,10000h //or eax,not 0FFFEFFFFh
  mov cr0,eax
  sti  // 【1145】恢复中断
}

【1160】加cli/sti指令 增加稳定性

 

2、

 

YJX_Driver_021_绕过驱动保护

标签:

原文地址:http://www.cnblogs.com/debugskill/p/5347915.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!