基于混合符号执行和遗传算法的源代码漏洞挖掘技术研究
摘要 | 第5-7页 |
ABSTRACT | 第7-8页 |
第一章 绪论 | 第11-20页 |
1.1 研究背景与意义 | 第11-12页 |
1.2 研究现状 | 第12-17页 |
1.3 本文主要工作 | 第17-20页 |
第二章 混合符号执行与KLEE概述 | 第20-32页 |
2.1 混合符号执行概述 | 第20-22页 |
2.1.1 关键技术 | 第21-22页 |
2.1.2 系统框架 | 第22页 |
2.2 KLEE测试工具概述 | 第22-31页 |
2.2.1 符号执行 | 第23-25页 |
2.2.1.1 原理概述 | 第24-25页 |
2.2.1.2 功能实现 | 第25页 |
2.2.2 KLEE介绍 | 第25-31页 |
2.2.2.1 LLVM框架 | 第26-27页 |
2.2.2.2 内存模型 | 第27-28页 |
2.2.2.3 约束求解器 | 第28-31页 |
2.3 本章小结 | 第31-32页 |
第三章 改进的遗传算法求解非线性约束条件 | 第32-46页 |
3.1 遗传算法 | 第32-34页 |
3.2 改进的遗传算法 | 第34-36页 |
3.2.1 算法描述 | 第34-35页 |
3.2.2 编码方式 | 第35页 |
3.2.3 适应度函数 | 第35页 |
3.2.4 牛顿迭代 | 第35-36页 |
3.3 非线性约束条件的求解 | 第36-44页 |
3.3.1 算法描述 | 第36-37页 |
3.3.2 求解非线性约束功能实现 | 第37-42页 |
3.3.3 改进遗传算法对比验证 | 第42-44页 |
3.4 本章小结 | 第44-46页 |
第四章 改进遗传算法求解模块与STP并行求解实现 | 第46-61页 |
4.1 遗传算法求解模块 | 第46-49页 |
4.2 遗传算法求解模块接口实现 | 第49-54页 |
4.3 KLEE并行约束求解模块 | 第54-58页 |
4.3.1 并行求解模块设计 | 第55-56页 |
4.3.2 KQuery抽象解析层 | 第56-58页 |
4.4 KLEE调用并行求解模块生成测试用例 | 第58-60页 |
4.5 本章小结 | 第60-61页 |
第五章 实验与结果分析 | 第61-71页 |
5.1 实验环境 | 第61页 |
5.2 实验测试 | 第61-66页 |
5.3 改进后的KLEE在内存泄露检测中的应用 | 第66-70页 |
5.4 本章小结 | 第70-71页 |
第六章 总结与展望 | 第71-73页 |
6.1 全文总结 | 第71-72页 |
6.2 本文创新点总结 | 第72页 |
6.3 后续工作展望 | 第72-73页 |
致谢 | 第73-74页 |
参考文献 | 第74-78页 |
攻读硕士学位期间取得的成果 | 第78-79页 |