摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
缩略语对照表 | 第9-12页 |
第一章 绪论 | 第12-16页 |
1.1 研究背景 | 第12-13页 |
1.2 本文主要工作 | 第13-14页 |
1.3 论文的组织结构 | 第14-16页 |
第二章 相关研究工作与背景技术介绍 | 第16-22页 |
2.1 相关研究工作 | 第16-19页 |
2.2 相关背景知识介绍 | 第19-22页 |
2.2.1 Linux | 第19页 |
2.2.2 GCC | 第19-20页 |
2.2.3 QEMU、KVM和DDD | 第20-22页 |
第三章 基于编译器的内核控制数据保护方案与关键技术 | 第22-32页 |
3.1 设计目标与威胁模型 | 第22-23页 |
3.2 总体设计方案 | 第23-24页 |
3.3 基于编译器的指令转换技术 | 第24-25页 |
3.4 控制数据的定位与转换 | 第25-29页 |
3.4.1 函数指针的定位与转换 | 第25-28页 |
3.4.2 返回地址的定位与转换 | 第28-29页 |
3.5 控制数据索引实现 | 第29-32页 |
第四章 原型系统实现 | 第32-42页 |
4.1 原型系统实现的环境 | 第32页 |
4.2 GCC源代码的修改 | 第32-35页 |
4.2.1 GCC内核源代码介绍 | 第32-33页 |
4.2.2 GCC内核源代码修改 | 第33-35页 |
4.3 Linux内核源码的修改 | 第35-39页 |
4.3.1 Linux内核源代码介绍 | 第35-36页 |
4.3.2 Linux内核源代码的修改 | 第36-39页 |
4.4 返回地址表和函数地址表的构建 | 第39-42页 |
4.4.1 构造返回地址表 | 第39-40页 |
4.4.2 构造函数地址表 | 第40-42页 |
第五章 原型系统测试 | 第42-50页 |
5.1 原型系统运行效果 | 第42-43页 |
5.2 原型系统测试结果 | 第43-48页 |
5.2.1 系统性能损耗测试 | 第43-45页 |
5.2.2 系统攻击测试 | 第45-48页 |
5.3 原型系统讨论 | 第48-50页 |
第六章 研究总结与展望 | 第50-52页 |
6.1 论文工作总结 | 第50页 |
6.2 下一步工作展望 | 第50-52页 |
参考文献 | 第52-58页 |
致谢 | 第58-60页 |
作者简介 | 第60-61页 |