基于动态符号执行和静态分析的Fuzzing测试算法研究 | |
论文目录 | |
| 摘要 | 第1-7页 |
| ABSTRACT | 第7-11页 |
| 第一章 绪论 | 第11-17页 |
| 1.1 研究背景及意义 | 第11页 |
| 1.2 研究动机及现状 | 第11-14页 |
| 1.3 本文主要工作内容 | 第14-15页 |
| 1.4 本文组织结构 | 第15-16页 |
| 1.5 本章小结 | 第16-17页 |
| 第二章 相关技术研究 | 第17-34页 |
| 2.1 软件漏洞检测 | 第17-21页 |
| 2.1.1 软件漏洞 | 第17-20页 |
| 2.1.2 漏洞检测 | 第20-21页 |
| 2.2 模糊测试技术 | 第21-25页 |
| 2.2.1 漏洞检测技术Fuzzing测试的整体流程 | 第22-23页 |
| 2.2.2 Fuzzing测试种子能量调度和队列筛选 | 第23-24页 |
| 2.2.3 Fuzzing测试的局限性 | 第24-25页 |
| 2.3 静态分析技术 | 第25-29页 |
| 2.3.1 LLVM | 第25-27页 |
| 2.3.2 程序控制流分析 | 第27-29页 |
| 2.4 动态符号执行技术 | 第29-33页 |
| 2.4.1 动态符号执行流程 | 第30-31页 |
| 2.4.2 路径空间探索 | 第31-32页 |
| 2.4.3 动态符号执行与模糊测试结合存在的问题 | 第32-33页 |
| 2.5 本章小结 | 第33-34页 |
| 第三章 基于动态符号执行和静态分析的Fuzzing测试算法研究 | 第34-54页 |
| 3.1 分支代码块危险性静态评估算法 | 第34-39页 |
| 3.1.1 危险性评估准备工作 | 第34-37页 |
| 3.1.2 分支代码块危险性评估思路 | 第37-38页 |
| 3.1.3 分支代码块接近度评分方法 | 第38页 |
| 3.1.4 分支代码块连通度评分方法 | 第38-39页 |
| 3.2 基于危险分数的导向型Fuzzing测试算法 | 第39-46页 |
| 3.2.1 问题引出 | 第39-40页 |
| 3.2.2 导向型Fuzzing测试算法优化思路 | 第40-41页 |
| 3.2.3 基于危险分数的导向型Fuzzing测试流程设计 | 第41-42页 |
| 3.2.4 种子队列筛选和能量调度优化 | 第42-46页 |
| 3.3 动态符号执行路径探索算法 | 第46-49页 |
| 3.3.1 问题引出 | 第46页 |
| 3.3.2 路径探索算法优化思路 | 第46-47页 |
| 3.3.3 路径约束和危险分支节点序列设计 | 第47-48页 |
| 3.3.4 危险分支节点优先的路径搜索策略 | 第48-49页 |
| 3.4 漏洞检测方法Fuzzing测试整体设计 | 第49-52页 |
| 3.4.1 Fuzzing测试与动态符号执行结合方式的优化 | 第49-50页 |
| 3.4.2 整体Fuzzing测试算法设计 | 第50-52页 |
| 3.5 本章小结 | 第52-54页 |
| 第四章 Fuzzing测试工具SpeedyFuzz设计与实现 | 第54-70页 |
| 4.1 整体架构及调度模块 | 第54-58页 |
| 4.1.1 整体框架设计及工作流程 | 第54-55页 |
| 4.1.2 调度模块 | 第55-58页 |
| 4.2 静态分析模块 | 第58-61页 |
| 4.3 模糊测试模块 | 第61-65页 |
| 4.4 符号执行模块 | 第65-69页 |
| 4.5 本章小结 | 第69-70页 |
| 第五章 实验与评估 | 第70-82页 |
| 5.1 实验环境 | 第70页 |
| 5.2 实验内容 | 第70-81页 |
| 5.2.1 有效性评估 | 第71-78页 |
| 5.2.2 LAVA-M对比测试 | 第78-81页 |
| 5.3 本章小结 | 第81-82页 |
| 第六章 结束语 | 第82-84页 |
| 6.1 工作总结 | 第82-83页 |
| 6.2 问题与展望 | 第83-84页 |
| 参考文献 | 第84-88页 |
| 致谢 | 第88-89页 |
| 攻读学位期间发表的学术论文 | 第89页 |
本篇论文共89页,点击
这进入下载页面 |
|
| Copyright(C) All Rights Reserved |
| 客服QQ:304386486 |
| 目录由用户 1858035** 提供,作者删除入口请点击这里 |