如何获取内核模块nt和win32k的地址?

时间:2012-05-21 18:09:28

标签: windows windows-server-2008 windbg etw windows-kernel

我需要知道加载nt和win32k的基址。我可以通过在启用内核调试的情况下启动系统来查找此信息,启动内核调试会话,并运行命令lm以获取已加载模块的列表。

我想要做的是以编程方式确定加载这两个模块的位置,而无需启动到调试模式和使用内核调试器。我需要基本地址来解析Windows事件跟踪日志文件中的系统调用。

我正在使用的系统正在运行Windows Server 2008 R2。

1 个答案:

答案 0 :(得分:11)

加载的内核模块和基址(包括ntoskrnl)列表存储在PsLoadedModulesList符号指向的列表中。 或者改为使用ZwQuerySystemInformation(SystemModuleInformation)

有关详细信息,请参阅http://alter.org.ua/docs/nt_kernel/procaddr/