c++ - 没有 PDB 的符号函数

标签 c++ windows symbols


假设我在名为“Overflow.dll”的 DLL 中有一个名为“Overflow”的函数,但我没有它的 PDB。
我知道我可以获取它以“GetProcAddress”开头的地址,但我能以某种方式获取它结束的地址或其大小吗?
(Windows 中的 C++)

我问这个的原因是我有一个地址,我想知道它是否在我的特定函数内。所以我假设(如果我错了请纠正我)地址在我的函数中,如果:
StartAddress <= 我的地址 <= EndAddress

谢谢:)

最佳答案

So I assume (and please correct me if I'm wrong)

我正在“纠正”。问题是您的函数极不可能在其内部没有函数调用。例如,该位置可能在您的函数调用的 printf 调用内部,但指令指针不会在您的函数本身中。

假设您知道函数中只有一个返回,您可以为 x86 指令实现一个解析器,该解析器查找返回指令以找到结束地址。如果您不知道只有一个返回,那么您需要 PDB。

关于c++ - 没有 PDB 的符号函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4641243/

相关文章:

debugging - WinDbg:APPLICATION_HANG_WRONG_SYMBOLS

c++ - <function> 不是 <class> 的成员

python - python中的蓝牙设备名称和对应的串口名称

c++ - 编译c++程序时的 fatal error

c++ - 为什么即使我设置了 THREAD_MODE_BACKGROUND_BEGIN,我的程序还是资源消耗大户?

ruby - 无法掌握 Ruby 中的符号

ruby - 你如何断言另一个 ruby​​ 模块的异常被抛出? (使用 assert_throws)

c++ - 使用 transinplacefilter 决定分配器

c++ - 如何找到 n vector 的并集?

c++ - OMNET++: 如何在 INET 4.0 中获取帧的源 MAC 地址?