第一章 绪论 | 第1-13页 |
·概述 | 第9-12页 |
·缓冲区溢出和堆栈溢出攻击 | 第9-10页 |
·当前信息安全面临的主要挑战-缓冲区溢出攻击 | 第10-12页 |
·主要工作 | 第12页 |
·本文组织 | 第12-13页 |
第二章 堆栈溢出攻击概述 | 第13-23页 |
·缓冲区/堆栈溢出攻击简介 | 第13-14页 |
·堆栈溢出攻击的固有原因 | 第14-15页 |
·C/C++缺乏安全机制 | 第14页 |
·导致缓冲区溢出的常见C和C++ 错误 | 第14-15页 |
·编程错误难以避免 | 第15页 |
·堆栈溢出攻击的原理 | 第15-22页 |
·进程的用户堆栈段 | 第15-16页 |
·程序运行过程中堆栈的作用 | 第16-18页 |
·程序运行过程中堆栈的变化 | 第18-21页 |
·Buffer Overflow 的机理 | 第21-22页 |
·ShellCode | 第22页 |
·小结 | 第22-23页 |
第三章 目前针对堆栈溢出攻击的防御手段 | 第23-32页 |
·STACKGUARD 和VS.NET 的/GS 选项 | 第23-26页 |
·原理 | 第23-25页 |
·VS.net 的/GS 选项 | 第25页 |
·Stackguard 的评价 | 第25-26页 |
·STACKSHIELD | 第26-28页 |
·LIBSAFE | 第28-29页 |
·其他方法 | 第29-31页 |
·ProPolice | 第30页 |
·不可执行缓冲区/堆栈 | 第30-31页 |
·页面可执行位NX | 第31页 |
·小结 | 第31-32页 |
第四章 GCC 编译器结构 | 第32-44页 |
·GCC 简介 | 第32-35页 |
·GCC 处理过程 | 第32-33页 |
·GCC 框架结构 | 第33-35页 |
·GCC的AST 表示 | 第35-38页 |
·RTL(REGISTER TRANSFER LANGUAGE) | 第38-43页 |
·RTL 作用 | 第38-39页 |
·RTL 定义 | 第39-42页 |
·从AST生成RTL | 第42-43页 |
·小结 | 第43-44页 |
第五章 分离参数和函数控制的双栈结构 | 第44-56页 |
·以前的双栈模型 | 第44-45页 |
·分离控制和数据信息的双栈模型 | 第45-54页 |
·双栈模型的运行环境-彻底分离数据和控制信息 | 第46-49页 |
·考虑到兼容性后的运行环境模型-只分离局部变量 | 第49-54页 |
·小结 | 第54-56页 |
第六章 试验-CRACK GCC | 第56-65页 |
·调试 | 第56-57页 |
·CRACKGCC 面临的三个的主要问题 | 第57-61页 |
·伪寄存器1vp,1vb 的设置 | 第57-59页 |
·数据栈的初始化 | 第59-60页 |
·在数据栈上分配局部变量 | 第60-61页 |
·进入代码和退出代码 | 第61页 |
·最终的目标代码分析和比较 | 第61-65页 |
第七章 总结与展望 | 第65-66页 |
参考文献 | 第66-68页 |
致谢 | 第68-69页 |
个人简历 | 第69页 |