使用函数+偏移量获取模块名称

时间:2012-03-11 04:31:28

标签: multithreading function dll process module

我试图找出如何获得模块的功能+线程的偏移量。与Process Explorer在其线程显示中的工作方式类似。实施例....

NTDLL!TplsTimerSet + 0x07c0

我可以毫无问题地拉出起始地址,我也可以解析模块的起始地址。我可以得到起始地址显示“ntdll.dll”加上偏移量(startaddress - baseaddress),但不是函数。所以我看起来像这样..

NTDLL + 3BC0C

我想找到偏移量所在的ntdll dll的哪个函数。在这种情况下,函数是Tplstimerset。我知道我必须计算偏移的差异和函数的地址,但这应该很容易。这段代码可以用Delphi / Pascal的C ++编写。谢谢你提前。

1 个答案:

答案 0 :(得分:0)

在Process Explorer->选项->配置符号中,您可以看到使用符号文件来解析功能。

这些符号来自Microsoft,调试时windbg和Visual Studio都在使用它们。

enter image description here

如果您启动了windbg并加载了一个可执行文件,请键入“ x ntdll!*”以显示ntdll的所有命名函数,星号表示它匹配所有。

enter image description here

我假设您需要以编程方式获取命名函数的地址,可能需要.pdb file specification