没有PDB的符号功能

时间:2011-01-09 19:29:20

标签: c++ windows symbols


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

我问这个的原因是我有一个地址,我想知道它是否在我的特定功能中。所以我假设(如果我错了请纠正我),如果出现以下情况,地址就在我的功能中:
StartAddress< =我的地址< = EndAddress

谢谢:)

1 个答案:

答案 0 :(得分:0)

  

所以我假设(如果我错了,请纠正我)

我在“纠正”。问题是你的函数本身没有函数调用的可能性极小。例如,位置可能位于函数调用的printf调用内,但指令指针不在函数本身中。

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