表目录7-8
图目录8-10
摘要10-11
ABSTRACT11-12
第一章 绪论12-19
1.1 课题背景12-13
1.2 国内外探讨近况13-17
1.2.1 缓冲区溢出漏洞检测13-15
1.2.2 多样化防御15-17
1.3 探讨目的与内容17-18
1.3.1 探讨目的17
1.3.2 探讨内容17-18
1.4 论文组织结构18-19
第二章 缓冲区溢出漏洞攻击原理及防御系统设计19-34
2.1 缓冲区溢出原理19-23
2.1.1 缓冲区相关概念19
2.1.2 缓冲区溢出分类19-20
2.1.3 栈溢出利用原理20-22
2.1.4 堆溢出利用原理22-23
2.2 缓冲区溢出攻击历程浅析23-27
2.2.1 获取漏洞信息23-24
2.2.2 定位漏洞位置24-25
2.2.3 更改制约流程25-26
2.2.4 运转 SHELLCODE26-27
2.3 缓冲区溢出攻击的关键技术27-29
2.3.1 定位 SHELLCODE 位置27
2.3.2 定位 API 函数地址27-28
2.3.3 代码重定位28-29
2.4 缓冲区溢出漏洞防御模型设计29-33
2.4.1 防御时机浅析29-30
2.4.2 攻击代码检测浅析30-31
2.4.3 多样化防御浅析31-32
2.4.4 缓冲区溢出漏洞防御模型设计32-33
2.5 本章小节33-34
第三章 缓冲区溢出攻击代码检测技术探讨34-45
3.1 缓冲区溢出漏洞检测策略34-35
3.1.1 函数返回地址检测算法34-35
3.1.2 基于特点的检测策略35
3.2 检测数据获取技术35-37
3.2.1 截取待检测数据35-36
3.2.2 典型 SHELLCODE 特点归纳36-37
3.3 特点数据分片技术37-40
3.3.1 特点子序列定义37
3.3.2 固定长度数据分片法37-38
3.3.3 不定长度分片策略38-39
3.3.4 基于终止符的不定长度分片策略39-40
3.4 特点提取技术40-44
3.4.1 Bloom Filter 算法40-42
3.4.2 BloomFilter 算法改善42-43
3.4.3 BloomFilter 算法测试43-44
3.5 本章小节44-45
第四章 缓冲区溢出攻击多样化防御技术探讨45-57
4.1 多样化防御原理浅析45-48
4.1.1 基于指令集随机的多样性45-46
4.1.2 基于代码混淆的多样化46-47
4.1.3 基于地址随机的多样化47-48
4.2 基于地址随机的多样化实现关键技术48-54
4.2.1 调用机制浅析48-49
4.2.2 进程虚拟地址管理49-51
4.2.3 进程创建历程逆向浅析51-53
4.2.4 HOOK 技术53-54
4.3 地址随机化有效性浅析54-56
4.4 本章小节56-57
第五章 缓冲区溢出漏洞防御系统探讨与实现57-71
5.1 HBVDS 系统概述57-59
5.1.1 HBVDS 系统实现技术路线57
5.1.2 HBVDS 系统组成57-58
5.1.3 HBVDS 系统工作流程58-59
5.2 预处理模块实现59-60
5.2.1 驱动模块59-60
5.2.2 HBVDS 挂钩模块60
5.3 攻击代码检测模块实现60-61
5.3.1 攻击代码库生成算法60-61
5.3.2 攻击代码检测算法61
5.4 多样化模块实现61-70
5.4.1 PE 装载基地址随机化实现61-66
5.4.2 堆基地址随机化66-69
5.4.3 栈基地址随机化69
5.4.4 PEB/TEB 基地址随机化69-70
5.5 本章小结70-71
第六章 系统测试与评估71-77
6.1 测试环境71
6.2 性能测试71-72
6.3 功能测试72-74
6.3.1 随机化粒度浅析72-73
6.3.2 测试代码73
6.3.3 测试结果73
6.3.4 漏洞防御验证73-74
6.4 比较测试74-76
6.4.1 测试用例74-75
6.4.2 测试步骤75
6.4.3 测试结果75-76
6.4.4 结果浅析76
6.5 本章小结76-77
结束语77-79