摘要 | 第3-5页 |
Abstract | 第5-6页 |
第1章 绪论 | 第10-18页 |
1.1 研究背景及意义 | 第10-11页 |
1.2 相关理论和重要技术基础 | 第11-13页 |
1.2.1 手动检测技术 | 第11页 |
1.2.2 Fuzzing技术 | 第11页 |
1.2.3 符号执行技术 | 第11-12页 |
1.2.4 污点分析技术 | 第12-13页 |
1.3 国内外研究现状 | 第13-16页 |
1.3.1 动态二进制测试框架 | 第13页 |
1.3.2 动态污点分析工具 | 第13-15页 |
1.3.3 符号执行工具 | 第15-16页 |
1.4 本课题主要研究内容 | 第16页 |
1.5 论文组织结构 | 第16-18页 |
第2章 污点分析和符号执行两大技术中现存问题与解决方法 | 第18-27页 |
2.1 动态二进制污点分析技术 | 第18-22页 |
2.1.1 动态二进制污点分析技术的原理 | 第18-19页 |
2.1.2 存在的问题 | 第19-20页 |
2.1.3 解决方案 | 第20-22页 |
2.2 符号执行 | 第22-24页 |
2.3 使用符号执行完善污点分析 | 第24-26页 |
2.3.1 污点分析的缺陷 | 第24-25页 |
2.3.2 完善污点分析的解决方案 | 第25-26页 |
2.4 本章小结 | 第26-27页 |
第3章 系统架构和设计实现 | 第27-39页 |
3.1 系统框架结构 | 第27-33页 |
3.1.1 动态二进制注入工具 | 第28页 |
3.1.2 污点初始化模块 | 第28-29页 |
3.1.3 数据流跟踪分析模块 | 第29-30页 |
3.1.4 污点状态管理模块 | 第30-32页 |
3.1.5 指令分析模块 | 第32页 |
3.1.6 程序漏洞检测模块 | 第32-33页 |
3.2 SESTD系统设计与实现 | 第33-36页 |
3.2.1 SESTD设计方案 | 第33页 |
3.2.2 符号化内存管理模块 | 第33-35页 |
3.2.3 标志位记录模块 | 第35-36页 |
3.2.4 符号地址映射模块 | 第36页 |
3.2.5 约束求解器模块 | 第36页 |
3.3 系统优化 | 第36-38页 |
3.3.1 无关API滤除策略 | 第37页 |
3.3.2 基本块处理优化策略 | 第37-38页 |
3.4 小结 | 第38-39页 |
第4章 系统实验与结果 | 第39-48页 |
4.1 实验目标和实验计划 | 第39-40页 |
4.2 系统功能验证实验 | 第40-44页 |
4.2.1 挖掘已知漏洞实验 | 第40-43页 |
4.2.2 检测未知漏洞实验 | 第43-44页 |
4.3 系统功能实验 | 第44页 |
4.4 系统运行效率对比及分析 | 第44-45页 |
4.5 占用内存空间对比及分析 | 第45-47页 |
4.6 实验小结 | 第47-48页 |
第5章 总结和展望 | 第48-50页 |
5.1 全文总结 | 第48页 |
5.2 对未来工作的展望 | 第48-50页 |
参考文献 | 第50-52页 |
致谢 | 第52-53页 |
附录1 攻读硕士学位期间发表的论文 | 第53-54页 |
附录2 主要英文缩写语对照表 | 第54页 |