同一类中的函数

时间:2012-04-27 16:18:31

标签: ollydbg

在ollydbg中有一种方法可以让我找到一个类中的所有函数,比如我知道该类的一个函数可以找到其他函数,所以就像

class A{

int sum();
int powr();
}

并且在ollydbg中,我知道在sum()上可以打破哪个地方,但我不知道在power()上打破哪个地方,有什么方法可以让我这样做吗?

1 个答案:

答案 0 :(得分:0)

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

然而在实践中,连接器非常重要地将一个类中的函数彼此接近。有时甚至按照定义的顺序排列。但这并不能保证,并且在许多情况下这是不正确的。

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