摘要 | 第4-5页 |
Abstract | 第5页 |
第1章 绪论 | 第9-17页 |
1.1 课题背景和意义 | 第9-10页 |
1.2 国内外研究现状 | 第10-14页 |
1.2.1 静态分析 | 第11-12页 |
1.2.2 动态分析 | 第12-13页 |
1.2.3 符号执行 | 第13-14页 |
1.2.4 多种技术的融合 | 第14页 |
1.3 论文研究内容 | 第14-15页 |
1.4 论文组织结构 | 第15-17页 |
第2章 错误类型分析及相关技术研究 | 第17-25页 |
2.1 驱动常见错误分析 | 第17-18页 |
2.1.1 内存错误 | 第17-18页 |
2.1.2 整数错误 | 第18页 |
2.1.3 API误用 | 第18页 |
2.2 C语言整数溢出检测工具KINT | 第18-20页 |
2.3 选择性符号执行平台S2E | 第20-22页 |
2.4 符号执行引擎KLEE | 第22-24页 |
2.5 本章小结 | 第24-25页 |
第3章 符号执行检测Linux驱动中内存错误和整数错误 | 第25-35页 |
3.1 概述 | 第25页 |
3.2 系统设计与实现 | 第25-30页 |
3.2.1 测试程序的制作 | 第26-27页 |
3.2.2 检测内存分配的安全性 | 第27页 |
3.2.3 检测内存使用的安全性 | 第27-28页 |
3.2.4 改进KINT | 第28-29页 |
3.2.5 疑似错误点插桩 | 第29页 |
3.2.6 检测整数错误 | 第29-30页 |
3.3 实验结果与分析 | 第30-33页 |
3.3.1 测试环境 | 第30-31页 |
3.3.2 测试结果 | 第31-33页 |
3.4 本章小结 | 第33-35页 |
第4章 符号化硬件检测Linux驱动中内存错误和整数错误 | 第35-45页 |
4.1 概述 | 第35页 |
4.2 Sym Drive分析与优化 | 第35-39页 |
4.2.1 符号化设备 | 第36页 |
4.2.2 测试框架 | 第36-37页 |
4.2.3 Sym Gen | 第37页 |
4.2.4 错误检测 | 第37-38页 |
4.2.5 路径优化 | 第38-39页 |
4.3 基于Sym Drive的整数错误检测 | 第39-42页 |
4.3.1 创建虚拟设备 | 第40-41页 |
4.3.2 设备交互符号化 | 第41-42页 |
4.3.3 符号值注入 | 第42页 |
4.3.4 测试流程 | 第42页 |
4.4 实验结果与分析 | 第42-44页 |
4.4.1 实验环境 | 第42-43页 |
4.4.2 实验结果 | 第43-44页 |
4.5 本章小结 | 第44-45页 |
第5章 符号化设备驱动环境SDDE | 第45-57页 |
5.1 概述 | 第45-46页 |
5.1.1 设备驱动环境 | 第45-46页 |
5.1.2 符号化设备驱动环境 | 第46页 |
5.2 驱动验证规则 | 第46-47页 |
5.3 SDDE的设计与实现 | 第47-54页 |
5.3.1 符号化设备驱动环境的构建 | 第48-51页 |
5.3.2 驱动程序的语义合法性检测 | 第51-52页 |
5.3.3 整数错误的检测 | 第52-53页 |
5.3.4 基于符号执行的驱动程序的运行 | 第53-54页 |
5.4 系统的优化 | 第54-55页 |
5.5 实验结果与分析 | 第55-56页 |
5.6 本章小结 | 第56-57页 |
结论 | 第57-59页 |
参考文献 | 第59-63页 |
攻读硕士学位期间所发表的学术论文 | 第63-65页 |
致谢 | 第65页 |