2011-01-09 18 views
1


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

我问这个的原因是我有一个地址,我想知道它是否在我的具体功能。所以,我认为(和请纠正我,如果我错了),该地址在我的函数,如果:
StartAddress < =我的地址< = EndAddress

谢谢:)

回答

0

所以我认为(并请纠正我,如果我错了)

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

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

+0

没关系。我也走栈,所以我只能看一堆地址。 – Idov 2011-01-09 19:55:06