动态符号执行路径分歧自动化检测与诊断技术研究
摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第11-16页 |
1.1 研究背景与意义 | 第11-12页 |
1.2 国内外研究现状 | 第12-14页 |
1.3 本文的主要研究工作 | 第14-15页 |
1.4 论文的组织结构 | 第15-16页 |
第二章 动态符号执行理论研究 | 第16-40页 |
2.1 动态符号执行技术简介 | 第16-17页 |
2.2 动态符号执行技术框架 | 第17-28页 |
2.2.1 输入符号化以及符号传播 | 第19-21页 |
2.2.2 程序插桩 | 第21-25页 |
2.2.3 路径探索 | 第25-27页 |
2.2.4 约束求解 | 第27-28页 |
2.3 典型符号执行工具平台简介 | 第28-31页 |
2.3.1 DART | 第28页 |
2.3.2 CUTE和jCUTE | 第28-29页 |
2.3.3 EXE和KLEE | 第29-30页 |
2.3.4 CREST | 第30页 |
2.3.5 SAGE和PEX | 第30-31页 |
2.4 动态符号执行面临的主要问题 | 第31-39页 |
2.4.1 路径爆炸 | 第31-34页 |
2.4.2 复杂路径约束 | 第34-36页 |
2.4.3 环境交互 | 第36-37页 |
2.4.4 浮点数运算 | 第37-38页 |
2.4.5 路径分歧 | 第38-39页 |
2.5 本章小结 | 第39-40页 |
第三章 动态符号执行路径分歧模式研究 | 第40-59页 |
3.1 路径分歧介绍 | 第40-42页 |
3.1.1 路径分歧问题示例分析 | 第40-41页 |
3.1.2 路径分歧相关研究工作 | 第41-42页 |
3.2 路径分歧实验分析 | 第42-48页 |
3.2.1 实验设计 | 第42-46页 |
3.2.2 实验准备 | 第46页 |
3.2.3 实验结果 | 第46-48页 |
3.3 路径分歧模式分类 | 第48-54页 |
3.3.1 异常 | 第49-50页 |
3.3.2 外部函数调用 | 第50页 |
3.3.3 类型转换 | 第50页 |
3.3.4 符号指针引用 | 第50-51页 |
3.3.5 浮点数操作 | 第51页 |
3.3.6 64位操作 | 第51-52页 |
3.3.7 位操作 | 第52页 |
3.3.8 非线性运算 | 第52-53页 |
3.3.9 其他模式 | 第53-54页 |
3.4 路径分歧问题对策 | 第54-57页 |
3.5 本章总结 | 第57-59页 |
第四章 路径分歧自动化检测与诊断原型设计与实现 | 第59-79页 |
4.1 路径分歧自动化诊断研究 | 第59-61页 |
4.2 系统框架模块描述 | 第61-64页 |
4.3 设计与实现 | 第64-78页 |
4.3.1 动态符号执行分歧检测 | 第64-66页 |
4.3.2 符号-内存数据快照捕获 | 第66-72页 |
4.3.3 基于快照-计算-对比的分歧诊断定位 | 第72-78页 |
4.4 本章总结 | 第78-79页 |
第五章 实验及分析 | 第79-85页 |
5.1 实验设计 | 第79-80页 |
5.2 实验结果及分析 | 第80-84页 |
5.3 本章总结 | 第84-85页 |
第六章 全文总结与展望 | 第85-87页 |
6.1 论文工作总结 | 第85-86页 |
6.2 未来的研究工作 | 第86-87页 |
致谢 | 第87-88页 |
参考文献 | 第88-93页 |
附录 | 第93-98页 |
攻硕期间取得的研究成果 | 第98-99页 |