| 摘要 | 第5-6页 |
| ABSTRACT | 第6-7页 |
| 第一章 绪论 | 第10-15页 |
| 1.1 研究背景及意义 | 第10-12页 |
| 1.1.1 论文研究背景 | 第10-11页 |
| 1.1.2 论文研究意义 | 第11-12页 |
| 1.2 国内外研究现状 | 第12-13页 |
| 1.3 主要研究内容 | 第13-14页 |
| 1.4 论文组织结构 | 第14-15页 |
| 第二章 漏洞基本知识 | 第15-32页 |
| 2.1 软件漏洞 | 第15-21页 |
| 2.1.1 漏洞的基本概念 | 第15-17页 |
| 2.1.2 漏洞和错误、缺陷、故障的区别 | 第17页 |
| 2.1.3 漏洞原理 | 第17-21页 |
| 2.2 漏洞挖掘 | 第21-24页 |
| 2.2.1 基于源代码的漏洞挖掘 | 第21-23页 |
| 2.2.2 基于目标代码的漏洞挖掘 | 第23-24页 |
| 2.3 静态分析 | 第24-25页 |
| 2.4 插桩技术 | 第25-31页 |
| 2.4.1 插桩工具介绍 | 第26-30页 |
| 2.4.2 二进制动态插桩 | 第30-31页 |
| 2.5 本章小结 | 第31-32页 |
| 第三章 基于插桩技术的漏洞自动化验证平台技术研究 | 第32-39页 |
| 3.1 Pin插桩工具及其应用 | 第32-34页 |
| 3.1.1 编写主函数 | 第32-34页 |
| 3.1.2 编写回调函数 | 第34页 |
| 3.2 Linux下的可加载模块及应用 | 第34-36页 |
| 3.2.1 LKM技术简介 | 第34-35页 |
| 3.2.2 LKM技术在攻击感知模块中的应用 | 第35-36页 |
| 3.3 系统设计思路和最终目标 | 第36-37页 |
| 3.4 系统总体设计 | 第37-38页 |
| 3.5 本章小结 | 第38-39页 |
| 第四章 基于插桩技术的漏洞自动化系统原型设计与实现 | 第39-62页 |
| 4.1 系统整体架构 | 第39-40页 |
| 4.1.1 软件架构 | 第40页 |
| 4.2 功能模块 | 第40-61页 |
| 4.2.1 用户交互模块的设计 | 第41-42页 |
| 4.2.2 通信模块的设计 | 第42-43页 |
| 4.2.3 虚拟机管理模块的设计 | 第43-46页 |
| 4.2.4 服务端设计 | 第46-47页 |
| 4.2.5 漏洞触发判定模块的设计 | 第47-52页 |
| 4.2.6 漏洞攻击感知模块 | 第52-58页 |
| 4.2.7 漏洞验证数据库的设计 | 第58-61页 |
| 4.3 本章小结 | 第61-62页 |
| 第五章 实验结果与分析 | 第62-73页 |
| 5.1 缓冲区溢出漏洞插桩规则 | 第62-64页 |
| 5.2 缓冲区样本测试 | 第64-67页 |
| 5.2.1 测试环境 | 第64-65页 |
| 5.2.2 插桩测试 | 第65-67页 |
| 5.3 ROP漏洞插桩规则 | 第67-68页 |
| 5.4 ROP样本测试 | 第68-72页 |
| 5.4.1 测试环境 | 第68页 |
| 5.4.2 插桩测试 | 第68-72页 |
| 5.5 本章小结 | 第72-73页 |
| 第六章 总结与展望 | 第73-75页 |
| 6.1 论文工作总结 | 第73-74页 |
| 6.2 后续工作展望 | 第74-75页 |
| 致谢 | 第75-76页 |
| 参考文献 | 第76-79页 |
| 攻硕期间取得的成果 | 第79-80页 |