首页
社区
课程
招聘
[原创]一图看懂C++虚函数的动态绑定
2021-12-31 16:34 25825

[原创]一图看懂C++虚函数的动态绑定

2021-12-31 16:34
25825
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Person
{
public:
    Person() : age(30)
    {
    }
 
    virtual void print()
    {
        printf("The person‘s age = %d\n", age);
    }
 
protected:
    int age;
};
 
class Teacher : public Person
{
public:
    virtual void print()
    {
        printf("The teacher's age = %d\n", age);
    }
};
 
class Student : public Person
{
public:
    virtual void print()
    {
        printf("The student age = %d\n", age);
    }
};
 
Person* createRole()
{
    new Teacher;
    return new Student;
}

图片描述

 

当基类对象的虚表有多个对象的成员函数的时候,只需要查看具体虚函数反汇编call的eax值就可以判断出虚基类的真实对象身份。


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2021-12-31 16:39 被_THINCT编辑 ,原因:
收藏
点赞2
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回