0x00 最近分析了一个dump,和虚函数表的指针有关系,总结下。 Debug下编译,exe拖进IDA分析。 0x01 CI虚表: CC虚表: 可以看出: 1、 虚表的构成在编译之后就已经确定,运行期确定的是虚表指针的指向; 2、 对于纯虚函数,虚函数的位置为 purecall,调用purecall就会导致崩溃。 0x02 我们知道c++的纯虚类无法被实例化,原因很有可能就是纯虚类对象的虚表中存在purecall函数。下图为编译器生成的CI类的构造函数: 接着看CC类的构造函数: