声明
摘要
第一章 绪论
1.1 背景
1.2 技术发展现状
1.2.1 静态分析
1.2.2 渗透测试
1.2.3 模糊测试Fuzzing
1.3 主要工作及意义
1.4 论文组织结构
第二章 模糊测试应用于程序漏洞发现
2.1 基本思想
2.2 一般过程
2.3 依据输入源的分类
2.3.1 命令行参数和环境变量模糊测试
2.3.2 文件模糊测试
2.3.3 网络协议模糊测试
2.4 两个关键问题
2.4.1 问题说明
2.4.2 已有尝试解决方案
2.4.3 仍存在的问题
2.5 本章小结
第三章 动态污点分析和动态符号执行
3.1 问题归约
3.2 中间语言BIL
3.2.1 概述
3.2.2 操作语义
3.3 动态符号执行
3.3.1 之于问题
3.3.2 一般解释
3.3.3 分类
3.3.4 两个其他要素
3.3.5 符号执行难点
3.4 动态污点分析
3.4.1 污点分析策略
3.4.2 问题
3.4.3 之于问题
3.5 本章小结
第四章 动态符号执行引擎设计
4.1 技术依赖
4.1.1 Pin
4.1.2 Protocol Buffers和Piqi
4.1.3 Z3
4.2 总体设计
4.2.1 总体架构设计
4.2.2 总体流程设计
4.3 TLET设计
4.3.1 轨迹模型设计
4.3.2 序列化容器设计
4.3.3 污点分析策略
4.3.4 插装例程和分析例程
4.4 DSEE设计
4.4.1 总体架构设计
4.4.2 总体流程设计
4.4.3 翻译成BIL程序
4.4.4 演算器Evalutor
4.4.5 搜索策略
4.4.6 性能优化
4.5 本章小结
第五章 测试和验证
5.1 DSEE正确性验证
5.2 改进的搜索算法效果
5.3 DSEE性能优化措施效果
5.4 DSEE应用于栈溢出漏洞利用自动生成
5.4.1 栈缓冲区溢出漏洞
5.4.2 问题归约
5.4.3 测试
5.5 本章小结
第六章 总结和展望
6.1 总结
6.2 展望
参考文献
攻硕期间取得的成果
致谢