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