标签:
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、
标签:
原文地址:http://www.cnblogs.com/debugskill/p/5347915.html