C++反汇编第三讲,反汇编中识别虚表指针,以及指向的虚函数地址
讲解之前,了解下什么是虚函数,什么是虚表指针,了解下语法,(也算复习了)
开发知识为了不码字了,找了一篇介绍比较好的,这里我扣过来了...总结:
1.没有虚表指针
1.1没有虚函数的情况下没有虚表指针
2.有虚表指针
2.1虚表指针的产生是看你有没有 virtual这个关键字
2.2虚表指针存储的是虚表的首地址...熟悉了虚表指针, 通过虚表指针找构造,析构,以及虚表指针指向的虚表找虚函数,那么我们看一下普通成员函数调用和虚函数调用有什么区别....认真观察可以看出
1.普通成员函数调用,直接Call
2.虚函数调用
2.1 首先获得虚表指针
2.2 间接调用虚表指针指向的虚表的内容(虚成员函数地址)
总结:
识别调用普通成员函数和虚函数的特征则是... 1.普通成员函数直接调用Call
2.虚函数会通过虚表指针指向的虚表来间接调用.