-
-
[旧帖]
[求助]关于MmGetSystemRoutineAddress函数获取PspCidTable地址
0.00雪花
-
发表于:
2009-8-2 14:55
1705
-
[旧帖] [求助]关于MmGetSystemRoutineAddress函数获取PspCidTable地址
0.00雪花
小弟看到网上写的获取PspCidTable的方法。首先是要获得PsLookupProcessByProcessId函数的地址:
RtlInitUnicodeString (&pslookup,L"PsLookupProcessByProcessId");
addr = (PUCHAR) MmGetSystemRoutineAddress(&pslookup);
对这句我不太理解。在网上搜索了MmGetSystemRoutineAddress函数的用法,很多地方说这个函数与用户态的GetProcessAddress函数雷同。我想,我们用GetProcessAddress的时候,首先要LoadLiabrary将一个dll装在到我们进程的地址空间,那么这个dll中所有函数都已经在我们进程自己的空间中了,再用GetProcessAddress当然可以获取函数地址。但是,我们用MmGetSystemRoutineAddress函数获取PsLookupProcessByProcessId地址的时候,PsLookupProcessByProcessId又不属于我们的进程(网上说这是被ntoskrnl.exe导出的,关于什么叫“导出”我也不太明白)。我们怎么能获取别的进程中函数地址呢?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!