基于LLVM框架的非控制数据保护
摘要 | 第1-7页 |
Abstract | 第7-9页 |
目录 | 第9-11页 |
图表目录 | 第11-13页 |
第一章 引言 | 第13-17页 |
·研究背景 | 第13-15页 |
·本文研究内容 | 第15页 |
·论文结构 | 第15-17页 |
第二章 相关工作 | 第17-35页 |
·攻击方式 | 第17-22页 |
·栈溢出 | 第17-19页 |
·堆溢出 | 第19-21页 |
·格式化溢出 | 第21页 |
·小结 | 第21-22页 |
·攻击实例 | 第22-26页 |
·格式化字符串攻击用户身份数据 | 第22-23页 |
·堆溢出攻击配置数据 | 第23-25页 |
·栈溢出攻击用户输入数据 | 第25-26页 |
·小结 | 第26页 |
·防护方式 | 第26-35页 |
·内存污点 | 第26-27页 |
·动态访问控制 | 第27-29页 |
·数据流图 | 第29-30页 |
·YARRA | 第30-32页 |
·数据随机化 | 第32-33页 |
·小结 | 第33-35页 |
第三章 LLVM编译系统 | 第35-43页 |
·LLVM编译系统结构 | 第35-36页 |
·LLVM中间代码 | 第36-40页 |
·概要 | 第36-37页 |
·内存模型 | 第37-38页 |
·函数调用和异常处理 | 第38页 |
·代码的表示 | 第38页 |
·小结 | 第38-40页 |
·PASS | 第40页 |
·QEMU | 第40-43页 |
第四章 非控制数据的保护机制 | 第43-54页 |
·保护机制概要 | 第43-44页 |
·指针引用问题 | 第44-48页 |
·函数调用 | 第48-50页 |
·库函数的处理 | 第50-52页 |
·数据结构内的溢出 | 第52-53页 |
·本章小结 | 第53-54页 |
第五章 非控制数据的保护实现 | 第54-62页 |
·实验环境 | 第54页 |
·程序逻辑 | 第54-56页 |
·防护实验 | 第56-62页 |
·栈溢出保护 | 第56-58页 |
·格式化溢出保护 | 第58-59页 |
·堆溢出保护 | 第59-61页 |
·小结 | 第61-62页 |
第六章 总结与展望 | 第62-64页 |
参考文献 | 第64-68页 |
致谢 | 第68-69页 |