【发布时间】:2011-06-25 09:38:43
【问题描述】:
我刚刚在VS2010上编译了以下内容(优化关闭)。
class Shape {
public:
int x,y;
Shape() {
x=10;
y=20;
}
virtual void function1() {
cout<<"function1";
}
virtual void function2() {
cout<<"function2";
}
};
int main() {
Shape *s = new Shape();
s->function1();
s->function2();
return 0;
}
反汇编没有显示对应于虚函数的代码块或对它的任何调用,所以我假设这是因为使用 vftable 查找虚函数的方式。我正在使用 IDA Pro,因此它可能无法解决此类问题。如果我错了,请纠正我。
这方面我也有一些疑惑。
- 有什么方法可以在反汇编过程中像查看其他功能一样查看虚拟功能?我可以使用任何脚本(IDAPython)/方法吗?
- 有什么方法可以列出可执行文件中的所有虚函数?
- 推荐阅读?
【问题讨论】:
标签: c++ reverse-engineering virtual-functions