【问题标题】:How do I get the address to kernel modules nt and win32k?如何获取内核模块 nt 和 win32k 的地址?
【发布时间】:2012-05-28 06:04:51
【问题描述】:

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

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

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

【问题讨论】:

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


【解决方案1】:

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

详细信息见http://alter.org.ua/docs/nt_kernel/procaddr/

【讨论】:

  • 除链接外,您还应至少提供信息摘要或摘要。
  • 优秀。谢谢你的参考。这个解决方案很棒,因为它对内核模式和用户模式都很有用。研究您的答案还让我找到了另外 2 个 API 调用,即 EnumDeviceDrivers 和 GetDeviceDriverBaseName,它们看起来完成了同样的事情。
猜你喜欢
  • 2011-09-09
  • 1970-01-01
  • 2016-08-23
  • 2013-03-10
  • 2018-12-10
  • 2017-05-10
  • 2019-03-25
  • 1970-01-01
  • 2018-07-06
相关资源
最近更新 更多