首页
社区
课程
招聘
NtQuerySystemInformation 总是返回0xC000005
发表于: 2009-12-29 18:24 5619

NtQuerySystemInformation 总是返回0xC000005

2009-12-29 18:24
5619
通过NtQuerySystemInformation获取内核模块出错.

NtQuerySystemInformation 总是返回0xC000005 获取不了长度.

代码看看哪里错了.

NTSTATUS status=0;
PVOID lpSystemModeBuffer=0;
ULONG dwNeededSize=0;

PSYSTEM_MODULE_INFORMATION lpModule=0;

status=NtQuerySystemInformation(SystemModuleInformation,&lpSystemModeBuffer,0,&dwNeededSize);//总是得不到长度
改成这样也不行.
status=NtQuerySystemInformation(SystemModuleInformation,lpSystemModeBuffer,0,&dwNeededSize);

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 287
活跃值: (102)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
status=NtQuerySystemInformation(SystemModuleInformation,lpSystemModeBuffer,0,&dwNeededSize);

lpSystemModeBuffer=0;--------------------??????
2009-12-30 09:13
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
3
PVOID lpSystemModeBuffer=0;
2009-12-30 10:25
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢两位了.

NTSTATUS status=0;
PVOID lpSystemModeBuffer=0;
ULONG dwNeededSize=0;

PSYSTEM_MODULE_INFORMATION lpModule=0;

status=NtQuerySystemInformation(SystemModuleInformation,&lpSystemModeBuffer,0,&dwNeededSize);//总是得不到长度
改成
status=ZwQuerySystemInformation(SystemModuleInformation,&dwNeededSize,0,&dwNeededSize);
通过了.

为什么 ZwQuerySystemInformation 可以.NtQuerySystemInformation就不行.
2009-12-30 20:56
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
找到原因了.

NtQuerySystemInformation 中会检查当前是否为KernelMode,

如果是非KernelMode调用就会产生异常退出.

只要改成KernelMode 或在test al,al后改面强制跳转就可以了.
2009-12-31 00:30
0
游客
登录 | 注册 方可回帖
返回
//