【问题标题】:Symboling functions without PDBs没有 PDB 的符号函数
【发布时间】:2011-01-09 19:29:19
【问题描述】:


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

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

谢谢:)

【问题讨论】:

    标签: c++ windows symbols


    【解决方案1】:

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

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

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

    【讨论】:

    • 没关系。我也遍历堆栈,所以我可以查看一堆地址。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    相关资源
    最近更新 更多