乔丹二世 发表于 2011-1-16 00:53:04

内核使用NT系列函数

内核使用NT系列函数2010-05-13 18:17ZW是要通过SSDT跳转的函数,这样会被一些SSDT挂钩的程序拦截到,所以有时有直接使用NT函数的需要,当然前提是函数已经导出(不是所有的SSDT函数都是导出函数)。但是有一个问题,你如果在分发函数里使用NT系列,可能你会什么都查不到,因为这类函数如果检测到Thread的PreviousMode不是KernelMode的话就会返回00xc0000005错误,大致是说内存不可写,所以在使用时我们要改变Mode为KernelMode写个改变函数如下,仅支持Windows7和xp
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,
   mov RetData,bl
   mov bl,a
   mov ,bl

}

return RetData;
}

testid 发表于 2011-11-8 23:29:43

小技巧!
页: [1]
查看完整版本: 内核使用NT系列函数