基于逆向分析的软件漏洞挖掘与利用技术研究
摘要 | 第4-6页 |
Abstract | 第6-7页 |
第一章 绪论 | 第10-13页 |
1.1 软件漏洞挖掘 | 第10-11页 |
1.2 软件漏洞利用 | 第11页 |
1.3 本文结构 | 第11-13页 |
第二章 Shellcode 技术 | 第13-19页 |
2.1 什么是Shellcode | 第13页 |
2.2 编写Shellcode | 第13-18页 |
2.2.1 寄存器 | 第13-14页 |
2.2.2 获取EIP | 第14-15页 |
2.2.3 编码与解码 | 第15-16页 |
2.2.4 获得函数地址 | 第16-17页 |
2.2.5 建立Socket | 第17-18页 |
2.2.6 启动Shell | 第18页 |
2.3 本章小结 | 第18-19页 |
第三章 漏洞挖掘与检测 | 第19-42页 |
3.1 软件漏洞分类 | 第19-23页 |
3.1.1 缓冲区溢出漏洞 | 第19-21页 |
3.1.2 格式串漏洞 | 第21-22页 |
3.1.3 堆/BSS 段溢出漏洞 | 第22-23页 |
3.2 基于源代码的挖掘与检测 | 第23-26页 |
3.2.1 静态挖掘与检测 | 第23-25页 |
3.2.2 动态挖掘与检测 | 第25-26页 |
3.3 基于二进制代码逆向分析的挖掘和检测技术 | 第26-35页 |
3.3.1 PE 文件与虚拟内存 | 第27-28页 |
3.3.2 反汇编技术 | 第28-29页 |
3.3.3 软件版本差异比较 | 第29-30页 |
3.3.4 输入追踪测试 | 第30页 |
3.3.5 利用静态分析工具自动分析 | 第30页 |
3.3.6 代码覆盖测试 | 第30-35页 |
3.4 软件漏洞挖掘工具的设计与实现 | 第35-41页 |
3.4.1 函数调用关系识别模块 | 第35-36页 |
3.4.2 函数基本块分析模块 | 第36-38页 |
3.4.3 数据流控制和分析模块 | 第38-40页 |
3.4.4 错误注入模块 | 第40-41页 |
3.5 本章小结 | 第41-42页 |
第四章 漏洞利用技术 | 第42-54页 |
4.1 缓冲区溢出漏洞攻击 | 第42-45页 |
4.1.1 缓冲区溢出漏洞危害 | 第42-43页 |
4.1.2 引起缓冲区溢出的库函数 | 第43页 |
4.1.3 缓冲区溢出攻击 | 第43-45页 |
4.2 格式化字符串漏洞的攻击 | 第45-48页 |
4.2.1 格式化字符串漏洞的危害 | 第46页 |
4.2.2 引起格式化字符串漏洞的库函数 | 第46页 |
4.2.3 格式化字符串攻击 | 第46-48页 |
4.3 基于堆/BSS 段溢出漏洞的攻击 | 第48-53页 |
4.3.1 基本概念 | 第48页 |
4.3.2 堆/BSS 段溢出漏洞攻击 | 第48-53页 |
4.4 本章小结 | 第53-54页 |
第五章 漏洞挖掘与利用实例 | 第54-65页 |
5.1 实例一 | 第54-56页 |
5.1.1 漏洞代码 | 第54-55页 |
5.1.2 漏洞挖掘与应用 | 第55-56页 |
5.2 实例二 | 第56-61页 |
5.2.1 漏洞概述 | 第56-57页 |
5.2.2 漏洞攻击原理 | 第57-59页 |
5.2.3 漏洞攻击过程 | 第59-60页 |
5.2.4 漏洞防御 | 第60-61页 |
5.3 实例三 | 第61-64页 |
5.3.1 漏洞概述 | 第61页 |
5.3.2 漏洞攻击原理 | 第61页 |
5.3.3 漏洞攻击过程 | 第61-64页 |
5.3.4 漏洞防御 | 第64页 |
5.4 本章小结 | 第64-65页 |
第六章 总结与展望 | 第65-66页 |
6.1 论文总结 | 第65页 |
6.2 前景展望 | 第65-66页 |
参考文献 | 第66-69页 |
致谢 | 第69-70页 |
攻读学位期间发表的学术论文目录 | 第70页 |