-
-
[求助][求助]KeLowerIrql总是失败
-
发表于:
2010-6-12 11:13
5530
-
RtlCopyMemory(OriginalHead2,(PVOID)0x8053e621,5);
*(ULONG *)(ReplaceHead2+1)=(ULONG)FakeKiFastCallEntry-(0x8053e621+5);
KIRQL Irql;
ULONG Cr0Value;
Irql=KeGetCurrentIrql();
if (Irql<=DISPATCH_LEVEL)
{
_asm
{
push eax
mov eax,cr0;
mov Cr0Value,eax
and eax,0fffeffffh
mov cr0,eax
pop eax
}
Irql=KeRaiseIrqlToDpcLevel();
RtlCopyMemory((PVOID)0x8053e621,ReplaceHead2,5);
KeLowerIrql(Irql);
_asm
{
push eax
mov eax,Cr0Value;
mov cr0,eax;
pop eax
}
}
上面代码中调用KeLowerIrql(Irql);这句失败,报错访问异常。
这段代码在Hook,另一个Ob函数时候并没有问题,但是不知道为什么patch 这个函数时候KeLowerIrql
总是失败。难道跟patch哪个函数还有影响?
求前辈指点下,在此先谢谢了!~~~~~~~
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!