基于混合符号执行和遗传算法的源代码漏洞挖掘技术研究
| 摘要 | 第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页 |