Multithreading 使用函数+;抵消

Multithreading 使用函数+;抵消,multithreading,function,dll,process,module,Multithreading,Function,Dll,Process,Module,我试图找出如何获得一个模块的函数+线程的偏移量。与Process Explorer的线程显示类似。例如 ntdll!TplsTimerSet+0x07c0 我可以毫无问题地提取起始地址,我还可以解析模块的起始地址。我可以得到显示“ntdll.dll”的起始地址加上偏移量(startaddress-baseaddress),但不能得到函数。所以我的看起来像这样 ntdll+3BC0C 我想找到偏移量所在的ntdll的哪个函数。在这种情况下,函数是Tplstimerset。我知道我必须计算偏移量和函

我试图找出如何获得一个模块的函数+线程的偏移量。与Process Explorer的线程显示类似。例如

ntdll!TplsTimerSet+0x07c0

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

ntdll+3BC0C


我想找到偏移量所在的ntdll的哪个函数。在这种情况下,函数是Tplstimerset。我知道我必须计算偏移量和函数地址的差异,但这应该很容易。这个代码可以在Delphi/PASCAL的C++中实现。感谢您的高级支持。

在Process Explorer->Options->Configure Symbols中,您可以看到符号文件用于解析函数

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

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


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

在Process Explorer->Options->Configure Symbols中,您可以看到用于解析函数的符号文件

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

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

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