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

can*_*zar 7 windows windbg etw windows-server-2008 windows-kernel

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

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

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

Xea*_*nox 11

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

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