摘要 | 第4-6页 |
ABSTRACT | 第6-7页 |
第1章 绪论 | 第11-15页 |
1.1 引言 | 第11-13页 |
1.2 论文主要工作 | 第13页 |
1.3 论文框架结构 | 第13-15页 |
第2章 相关研究工作 | 第15-25页 |
2.1 代码重利用攻击 | 第15-18页 |
2.1.1 Return-oriented programming | 第15-17页 |
2.1.2 基于ROP的攻击技术 | 第17-18页 |
2.2 ROP防御 | 第18-21页 |
2.2.1 地址空间随机化 | 第18-19页 |
2.2.2 控制流完整性 | 第19-20页 |
2.2.3 ROP特征检测 | 第20-21页 |
2.3 C++程序中的代码重利用攻击与保护 | 第21-23页 |
2.3.1 虚函数调用保护 | 第21页 |
2.3.2 COOP攻击 | 第21-23页 |
2.4 本章小结 | 第23-25页 |
第3章 基于继承关系的代码重用攻击检测 | 第25-40页 |
3.1 C++动态绑定机制 | 第25-30页 |
3.1.1 C++对象和虚函数表 | 第27-28页 |
3.1.2 虚函数调用过程 | 第28页 |
3.1.3 继承关系 | 第28-30页 |
3.2 COOP攻击 | 第30-32页 |
3.2.1 正常程序特征 | 第30-31页 |
3.2.2 COOP判定 | 第31-32页 |
3.3 可执行文件中的语义提取 | 第32-39页 |
3.3.1 虚函数调用点识别 | 第32-34页 |
3.3.2 虚函数表识别 | 第34页 |
3.3.3 关联虚函数集合生成 | 第34-39页 |
3.4 本章小结 | 第39-40页 |
第4章 VCFI设计与实现 | 第40-53页 |
4.1 VCFI架构 | 第40-41页 |
4.2 VCFI使用技术介绍 | 第41-46页 |
4.2.1 BAP | 第42-44页 |
4.2.2 Pin | 第44-46页 |
4.3 策略生成 | 第46-51页 |
4.3.1 虚函数调用点识别 | 第46-47页 |
4.3.2 虚函数表识别 | 第47-49页 |
4.3.3 关联虚函数集合生成 | 第49-51页 |
4.4 策略实施 | 第51-52页 |
4.5 本章小结 | 第52-53页 |
第5章 实验与分析 | 第53-60页 |
5.1 语义恢复的精度 | 第53-55页 |
5.2 有效性 | 第55-57页 |
5.3 安全性分析 | 第57-58页 |
5.4 性能评估 | 第58-59页 |
5.5 本章小结 | 第59-60页 |
第6章 总结展望 | 第60-62页 |
6.1 论文总结 | 第60页 |
6.2 未来工作 | 第60-62页 |
参考文献 | 第62-65页 |
攻读硕士学位期间的研究成果 | 第65页 |
攻读硕士学位期间参加的项目 | 第65-66页 |
致谢 | 第66-67页 |