我在导出表中有虚拟函数的地址,是否有可能获得实现函数的地址,这使得整个虚拟逻辑?
代码示例:
这是导出表的虚函数
class CORE_API FArchive
{
public:
virtual ~FArchive()
{}
virtual void messageboxer(char* messagetext){}
};
这是虚函数实现
class FArchiveFileReader : public FArchive
{
public:
void messageboxer(char* messagetext)
{
MessageBoxA(0, messagetext, "alert", MB_ICONERROR);
}
};
所以在导出表中只有虚拟 - 就像那样?messageboxer@FArchive@@UAEXPAD@Z
如果我继续访问该地址(通过调试器在内存中),我会得到这个 http://i.imgur.com/VuJITVl.png?1 - 我没有看到任何有用的东西,比如 jmp 或 call。这个http://i.imgur.com/wegPZfq.png?1是函数实现的地方,它是否以某种方式连接?所以我可以计算它。
或者从导出表中获得虚拟函数地址 - 在获取函数地址(具有实际逻辑)方面没什么?
如果是这样 - 有人可以给我一篇简单而好的文章,描述如何获取实际函数(非虚拟)的地址。
PS 抱歉,如果我说话有点奇怪,英语不是我的通用语言,如果您认为我的文字中的某些地方不清楚,请告诉我在哪里,我会尽量解释得更好!
希望有人能帮助我
谢谢!