能力值:
( LV9,RANK:610 )
|
-
-
2 楼
PreviousMode?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
我感觉PreviousMode应该都是KernelMode啊。因为不管是我条用NtOpenFile,还是ZwOpenFile调用NtOpenFile,都是驱动中调用的啊
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
貌似真的是这个情况。。。
那我怎样才能成功的执行这个代码呢,不用硬编码修改PreviousMode的话
|
能力值:
( LV9,RANK:160 )
|
-
-
5 楼
PreviousMode不对时返回0xc0000005错误,驱动里就一定是kernelMode?分发函数的PreviousMode就是1,而不是0,微软现在好像没有提供简单的方法来修改PreviousMode,只能是硬编码了,最多就是加一个动态获取PreviousMode偏移,下面函数用于Xp和Windows7,
KPROCESSOR_MODE SetCurrentThreadPreviousMode(KPROCESSOR_MODE a)
{
PETHREAD Thread=PsGetCurrentThread();
KPROCESSOR_MODE RetData;
ULONG Pre=0;
if(GetWindowsVersion()<6)
{
Pre=0x140;
}
else
Pre=0x13a;
_asm
{
mov eax,Thread
add eax,Pre
mov bl,[eax]
mov RetData,bl
mov bl,a
mov [eax],bl
}
return RetData;
}
|
|
|