0

ollydbg 中有没有一种方法可以让我找到一个类中的所有函数,比如如果我知道那个类的一个函数,我可以找到其他函数,比如

class A{

int sum();
int powr();
}

在 ollydbg 中,我知道在哪里休息,sum()但我不知道在哪里休息power(),有什么方法可以让我这样做吗?

4

1 回答 1

0

如果函数是非虚拟的,那么没有通用的方法可以从二进制文件中确定它们是否属于同一类。非虚拟函数(如您提供的示例中)在编译时静态链接,在生成的可执行文件中,它们显示为对该函数的简单调用。甚至没有简单可靠的方法来知道这样的函数属于哪个类。

然而在实践中,链接器经常将一个类中的函数彼此靠近。有时甚至与定义的顺序相同。但这并不能保证,而且在很多情况下这不是真的。

如果你在谈论函数,那么这是一个完全不同的故事,因为指向虚函数的指针必须存储在一个名为“虚方法表”的结构中。这个结构必须在二进制文件的某个地方定义(每个类一个),如果你能找到它,那么你会得到一个虚方法及其指针的列表。

于 2012-04-28T13:49:14.213 回答