找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 2667|回复: 1

内核使用NT系列函数

[复制链接]

280

主题

203

回帖

0

精华

版主

积分
1808
发表于 2011-1-16 00:53:04 | 显示全部楼层 |阅读模式
内核使用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,[eax]
   mov RetData,bl
   mov bl,a
   mov [eax],bl
  
}

return RetData;
}

12

主题

144

回帖

0

精华

铜牌会员

积分
281
发表于 2011-11-8 23:29:43 | 显示全部楼层
小技巧!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表