如何从nt.sys和w32k.sys中的内存地址解析符号

时间:2014-04-10 17:42:59

标签: windows system-calls etw

在64位版本的Windows 7/8/2012中,ETW内核跟踪器为系统调用输入事件提供内存地址。我想将这些地址映射到有意义的地址,例如生活在该地址的函数的名称:例如AcceptConnectPort。

我知道我可以在内核调试器会话中使用ln(列出最近符号)来查找特定地址的符号。我想要的是一种方法以编程方式。是否有一个库可以用来查找给定内存地址的符号?

更好的是,是否有针对不同Windows版本的内存偏移的权威参考。我找到this table,但这些数字似乎与我观察到的任何内存地址都不对应。

1 个答案:

答案 0 :(得分:1)

过去,我曾参与过需要这样做的项目。我们使用安德鲁在评论中提到的DbgHelp API来下载相关的.PDB文件,并查看我们需要的偏移量。

我已经离开了,所以我无法查看该项目的源代码,但this page是一个很好的起点。