首页
社区
课程
招聘
[求助]MmGetSystemRoutineAddress获取不到函数地址
发表于: 2011-6-28 11:36 6377

[求助]MmGetSystemRoutineAddress获取不到函数地址

2011-6-28 11:36
6377
RtlInitUnicodeString(&name,L"NtCreateThread");
DbgPrint("name: %wZ",&name);
Address = (ULONG)MmGetSystemRoutineAddress(&name);
DbgPrint("address: %d",Address);

地址一直是0,不知道为什么。。。

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 88
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
MSDN中有这么一句话
If the function name can be resolved, the routine returns a pointer to the function. Otherwise, the routine returns NULL.

很显然错误也在这里了~
2011-6-28 11:52
0
雪    币: 88
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
而且补充下,NTcreatthread 是否是导出函数你最好确认下!
2011-6-28 11:56
0
雪    币: 7085
活跃值: (3612)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个没有导出。
2011-6-28 12:13
0
雪    币: 2645
活跃值: (3793)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
5
谢谢了。。难道只能通过SSDT获取吗。。
2011-6-28 12:23
0
雪    币: 2271
活跃值: (2160)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
6
此函数没有导出...
搜索特征码也可以.
2011-6-28 12:54
0
雪    币: 103
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
有2种情况
1,大家经常忽视的,就是有些函数并没有导出。也就是说在PE的导出表里没有记录。而此函数的原理就是去导出表里找。很明显会失败
2,有些杀毒软件会使用EAT钩子。这样,你会获取一个假的函数地址。往往这样一个假的函数地址指向杀毒软件驱动中的某个函数。比如微点就通过这样的方式挂钩了KeInsertQueueApc函数来进行进程的自保护。
2011-6-28 15:11
0
游客
登录 | 注册 方可回帖
返回
//