在ollydbg中有一种方法可以让我找到一个类中的所有函数,比如我知道该类的一个函数可以找到其他函数,所以就像
class A{
int sum();
int powr();
}
并且在ollydbg中,我知道在sum()
上可以打破哪个地方,但我不知道在power()
上打破哪个地方,有什么方法可以让我这样做吗?
答案 0 :(得分:0)
函数是非虚函数,那么没有一般方法可以从二进制文件中确定它们是否属于同一个类。非虚函数(如您提供的示例中)在编译时静态链接,在生成的可执行文件中,它们显示为对函数的简单调用。甚至没有简单而可靠的方法来了解这样一个函数所属的类。
然而在实践中,连接器非常重要地将一个类中的函数彼此接近。有时甚至按照定义的顺序排列。但这并不能保证,并且在许多情况下这是不正确的。
如果您正在谈论虚拟函数,那么这是一个完全不同的故事,因为指向虚函数的指针必须存储在名为“虚方法表”的结构中。必须在二进制文件中的某处定义此结构(每个类一个),如果可以找到它,那么您将获得虚拟方法及其指针的列表。