YJX_Driver_021_绕过驱动保护
Posted DebugSkill
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YJX_Driver_021_绕过驱动保护相关的知识,希望对你有一定的参考价值。
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_绕过驱动保护的主要内容,如果未能解决你的问题,请参考以下文章
YJX_Driver_016_为DDK_HelloWorld添加默认派遣例程