符号执行工具KLEE约束求解优化设计与实现
摘要 | 第5-6页 |
ABSTRACT | 第6页 |
第一章 绪论 | 第9-16页 |
1.1 研究背景与意义 | 第9-10页 |
1.2 符号执行技术简介 | 第10-12页 |
1.3 国内外研究现状 | 第12-14页 |
1.4 本文的主要工作 | 第14-15页 |
1.5 文章的组织结构 | 第15-16页 |
第二章 动态符号执行与KLEE概述 | 第16-33页 |
2.1 动态符号执行概述 | 第16-21页 |
2.1.1 动态符号执行过程 | 第16-18页 |
2.1.2 动态符号执行模块介绍 | 第18-20页 |
2.1.3 动态符号执行存在问题 | 第20-21页 |
2.2 约束求解技术概述 | 第21-24页 |
2.2.1 SAT问题 | 第21-22页 |
2.2.2 SMT求解问题 | 第22-23页 |
2.2.3 约束求解 | 第23-24页 |
2.3 KLEE概述 | 第24-27页 |
2.3.1 解释模块 | 第24-25页 |
2.3.2 符号表示 | 第25页 |
2.3.3 约束求解 | 第25页 |
2.3.4 路径选择 | 第25-26页 |
2.3.5 错误检测 | 第26-27页 |
2.4 KLEE约束求解模块 | 第27-32页 |
2.4.1 路径预判断 | 第28-29页 |
2.4.2 约束表达式简化 | 第29页 |
2.4.3 约束集合简化 | 第29-30页 |
2.4.4 反例缓存 | 第30页 |
2.4.5 STP求解器概述 | 第30-32页 |
2.5 本章小结 | 第32-33页 |
第三章 KLEE约束求解器并行优化设计 | 第33-43页 |
3.1 KLEE约束求解器并行化结构 | 第33-34页 |
3.2 Z3求解器概述 | 第34-37页 |
3.2.1 Z3求解器结构概述 | 第34-35页 |
3.2.2 Z3求解器使用示例 | 第35-37页 |
3.3 约束求解模块并行化设计 | 第37-42页 |
3.3.1 约束条件语言KQuery | 第37-39页 |
3.3.2 约束条件语法解析模块 | 第39-40页 |
3.3.3 约束求解模块结构层次 | 第40-41页 |
3.3.4 约束求解调度设计 | 第41-42页 |
3.4 本章小结 | 第42-43页 |
第四章 KLEE约束求解器并行化的实现 | 第43-58页 |
4.1 并行求解器的工作流程 | 第43-44页 |
4.2 KQuery抽象解析层 | 第44-45页 |
4.3 Z3求解器解析层实现 | 第45-51页 |
4.4 Z3约束求解器的实现 | 第51-53页 |
4.5 KLEE求解器调度模块实现 | 第53-56页 |
4.5.1 约束求解模块优化算法实现结构 | 第54-55页 |
4.5.2 求解器调度模块 | 第55-56页 |
4.6 本章小结 | 第56-58页 |
第五章 实验与结论分析 | 第58-68页 |
5.1 实验环境介绍 | 第58页 |
5.2 实验测试 | 第58-65页 |
5.2.1 深度优先搜索策略 | 第58-64页 |
5.2.2 随机搜索策略与路径覆盖搜索策略 | 第64-65页 |
5.3 实验结果分析 | 第65-67页 |
5.4 本章小结 | 第67-68页 |
第六章 总结与展望 | 第68-70页 |
6.1 工作总结 | 第68-69页 |
6.2 未来的研究工作 | 第69-70页 |
致谢 | 第70-71页 |
参考文献 | 第71-74页 |
攻硕期间取得成果 | 第74-75页 |