摘要 | 第4-5页 |
ABSTRACT | 第5-6页 |
第一章 绪论 | 第9-15页 |
1.1 选题背景 | 第9-10页 |
1.2 研究现状及意义 | 第10-11页 |
1.3 论文研究内容及结构安排 | 第11-12页 |
参考文献 | 第12-15页 |
第二章 Linux常用攻防基础理论 | 第15-31页 |
2.1 Linux下攻防理论基本概念 | 第15-21页 |
2.1.1 Linux下地址空间布局及堆栈结构 | 第15-19页 |
2.1.2 虚拟内存 | 第19-21页 |
2.2 常见内存错误 | 第21-24页 |
2.2.1 野指针 | 第21-22页 |
2.2.2 缓冲区溢出 | 第22-24页 |
2.2.3 内存泄漏 | 第24页 |
2.3 常见内存检测技术和工具 | 第24-29页 |
2.3.1 常见内存错误的检测方法 | 第24-27页 |
2.3.2 常见内存错误的检测工具 | 第27-29页 |
2.4 小结 | 第29页 |
参考文献 | 第29-31页 |
第三章 ASan原理分析 | 第31-45页 |
3.1 ASan内存错误检测原理 | 第31-36页 |
3.1.1 影子内存 | 第31-33页 |
3.1.2 编译插桩 | 第33-34页 |
3.1.3 运行时库 | 第34-36页 |
3.2 ASa n的使用及测试 | 第36-44页 |
3.2.1 ASan的防护步骤 | 第36-41页 |
3.2.2 ASan的测试步骤 | 第41-44页 |
3.3 小结 | 第44页 |
参考文献 | 第44-45页 |
第四章 ASan编译测试实现及性能评估 | 第45-63页 |
4.1 测试环境的搭建 | 第45页 |
4.2 ASan内存错误检测的测试实现 | 第45-53页 |
4.2.1 栈,堆、全局缓冲区的溢出 | 第46-48页 |
4.2.2 内存释放后使用(use-after-free) | 第48-49页 |
4.2.3 两次释放内存(double free) | 第49-51页 |
4.2.4 ASan与FORTIFY_SOURCE比较 | 第51-52页 |
4.2.5 支持C++内存的错误检测 | 第52-53页 |
4.3 ASan内存错误检测报告分析 | 第53-55页 |
4.3.1 ASan内存错误检测报告分析 | 第53-54页 |
4.3.2 ASan的问题定位 | 第54-55页 |
4.4 ASan可用性分析 | 第55-61页 |
4.4.1 ASan规模测试 | 第55-59页 |
4.4.2 ASan误报率和准确性 | 第59-60页 |
4.4.3 ASan漏报 | 第60-61页 |
4.5 小结 | 第61-62页 |
参考文献 | 第62-63页 |
第五章 总结与展望 | 第63-65页 |
5.1 工作总结 | 第63-64页 |
5.2 下一步工作计划 | 第64-65页 |
缩略词对照表 | 第65-67页 |
致谢 | 第67页 |