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

标签 multithreading function dll process module

我试图弄清楚如何获得模块的功能+线程的偏移量。类似于 Process Explorer 在其线程显示中的作用。例子....

ntdll!TplsTimerSet+0x07c0

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

ntdll+3BC0C

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

最佳答案

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

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

enter image description here

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

enter image description here

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

关于multithreading - 使用函数 + 偏移量获取模块名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9652469/

相关文章:

javascript - 为选定的单选按钮 div 添加类名称

java - 处理对 dll 函数的多重访问

c# - 创建要在 C# 中编码的 C++ Dll 的最佳实践

c++ - OpenMP 中 std::queue 可以并发插入吗?

javascript - 函数循环问题

windows - 如何在Windows中找到特定线程的入口点?

JavaScript 函数由 3 个函数组成

C++ - 将 HunSpell 1.3.2 与 Visual Studio 2010 结合使用

c# - 使用 AutoResetEvent.WaitOne() 和 .Set() 暂停后台线程

Python-C api并发问题