首页
社区
课程
招聘
[求助]NtOpenFile怎么传参,和ZwOpenFile传同样的参数,却返回拒绝访问
发表于: 2010-5-29 12:06 5383

[求助]NtOpenFile怎么传参,和ZwOpenFile传同样的参数,却返回拒绝访问

2010-5-29 12:06
5383
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
PreviousMode?
2010-5-29 12:19
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我感觉PreviousMode应该都是KernelMode啊。因为不管是我条用NtOpenFile,还是ZwOpenFile调用NtOpenFile,都是驱动中调用的啊
2010-5-29 12:28
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
貌似真的是这个情况。。。
那我怎样才能成功的执行这个代码呢,不用硬编码修改PreviousMode的话
2010-5-29 13:32
0
雪    币: 284
活跃值: (106)
能力值: ( 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;
}
2010-5-29 14:43
0
游客
登录 | 注册 方可回帖
返回
//