摘要 | 第5-6页 |
Abstract | 第6-7页 |
第1章 绪论 | 第11-15页 |
1.1 研究背景与意义 | 第11页 |
1.2 研究现状 | 第11-13页 |
1.2.1 静态检测方法 | 第11-12页 |
1.2.2 动态检测方法 | 第12-13页 |
1.3 主要研究内容 | 第13-14页 |
1.4 论文组织结构 | 第14-15页 |
第2章 缓冲区溢出攻击介绍 | 第15-29页 |
2.1 缓冲区溢出攻击原理 | 第15-20页 |
2.1.1 寄存器 | 第15页 |
2.1.2 数据与代码 | 第15-16页 |
2.1.3 缓冲区溢出攻击 | 第16-17页 |
2.1.4 劫持程序流程的通用方法 | 第17-20页 |
2.2 Windows系统中缓冲区溢出攻击防御机制 | 第20-26页 |
2.2.1 GS编译选项 | 第20-21页 |
2.2.2 SEH防御技术 | 第21-23页 |
2.2.3 DEP | 第23-24页 |
2.2.4 ASLR | 第24-26页 |
2.3 基于动态污点追踪的缓冲区溢出攻击检测方法 | 第26-27页 |
2.4 本章小结 | 第27-29页 |
第3章 基于数据不可信的缓冲区溢出攻击检测方法 | 第29-49页 |
3.1 动态插桩技术 | 第29-30页 |
3.2 基于数据不可信的缓冲区溢出攻击检测方法 | 第30-37页 |
3.2.1 数据不可信 | 第30-31页 |
3.2.2 OverflowCheck框架 | 第31-32页 |
3.2.3 截取原始数据 | 第32-35页 |
3.2.4 控制流检测 | 第35-36页 |
3.2.5 原始数据比对 | 第36-37页 |
3.3 控制流检测优化策略 | 第37-47页 |
3.3.1 可执行页判断 | 第41页 |
3.3.2 代码区范围判断 | 第41-42页 |
3.3.3 栈区范围判断 | 第42-44页 |
3.3.4 堆区范围判断 | 第44-46页 |
3.3.5 VirtualAlloc区范围判断 | 第46-47页 |
3.4 OverflowCheck分析 | 第47-48页 |
3.5 本章小结 | 第48-49页 |
第4章 基于数据不可信的ROP攻击检测方法 | 第49-59页 |
4.1 ROP攻击模型 | 第49-51页 |
4.2 DROP | 第51-52页 |
4.2.1 DROP原理 | 第51-52页 |
4.2.2 DROP存在问题 | 第52页 |
4.3 基于数据不可信的ROP攻击检测方法 | 第52-57页 |
4.3.1 ROP链特征 | 第53-55页 |
4.3.2 ROPCheck | 第55-57页 |
4.4 ROPCheck分析 | 第57-58页 |
4.5 本章小结 | 第58-59页 |
第5章 实验 | 第59-69页 |
5.1 实验环境 | 第59页 |
5.2 功能实验 | 第59-63页 |
5.2.1 缓冲区溢出攻击检测实验 | 第59-61页 |
5.2.2 ROP攻击检测实验 | 第61-63页 |
5.3 性能实验 | 第63-67页 |
5.4 本章小结 | 第67-69页 |
第6章 总结与展望 | 第69-71页 |
6.1 本文工作 | 第69页 |
6.2 未来工作 | 第69-71页 |
参考文献 | 第71-75页 |
致谢 | 第75-77页 |
攻读硕士学位期间参加的项目及获得的奖励 | 第77页 |