C/C++源代码级软加固关键技术研究
摘要 | 第9-11页 |
ABSTRACT | 第11-12页 |
第一章 绪论 | 第13-18页 |
1.1 研究背景 | 第13-15页 |
1.2 研究目标及意义 | 第15页 |
1.3 本文主要工作 | 第15-16页 |
1.4 论文结构 | 第16-18页 |
第二章 技术背景 | 第18-29页 |
2.1 容错技术概述 | 第18-21页 |
2.1.1 容错相关概念 | 第18-20页 |
2.1.2 容错基本原理 | 第20页 |
2.1.3 硬件容错技术 | 第20-21页 |
2.1.4 软件容错技术 | 第21页 |
2.2 软容错技术研究现状 | 第21-24页 |
2.2.1 应用级容错 | 第22页 |
2.2.2 编译级容错 | 第22-23页 |
2.2.3 系统级容错 | 第23-24页 |
2.3 源代码级容错技术研究现状 | 第24-28页 |
2.3.1 源代码级的数据流错误检测技术 | 第24-26页 |
2.3.2 源代码级的控制流错误检测技术 | 第26-27页 |
2.3.3 源代码级容错的优缺点 | 第27-28页 |
2.4 本章小结 | 第28-29页 |
第三章 C/C++源代码级数据流加固方法研究 | 第29-49页 |
3.1 类成员复算加固方法适用范围 | 第29-30页 |
3.2 基于类成员复算的加固方法 | 第30-46页 |
3.2.1 复算中的一致性规则 | 第30-31页 |
3.2.2 AN-codes编码算法 | 第31-34页 |
3.2.3 副本变量的生成 | 第34-35页 |
3.2.4 副本变量基本运算转换规则 | 第35-36页 |
3.2.5 副本程序生成算法 | 第36-41页 |
3.2.6 数据流错误检测级恢复机制 | 第41-43页 |
3.2.7 加固代码与原始代码的协同机制 | 第43-46页 |
3.3 数据流加固方法分析 | 第46-48页 |
3.3.1 数据流错误容错处理过程分析 | 第46-47页 |
3.3.2 检测能力分析 | 第47-48页 |
3.4 本章小结 | 第48-49页 |
第四章 基于AOP的容错技术研究 | 第49-61页 |
4.1 AOP技术与源代码级容错 | 第49-50页 |
4.1.1 AOP技术介绍 | 第49-50页 |
4.1.2 软件加固引入的可靠性问题 | 第50页 |
4.2 利用AOP解决虚函数引发的可靠性问题 | 第50-54页 |
4.2.1 虚函数表 | 第50-51页 |
4.2.2 针对动态分派的可靠性Aspect | 第51-54页 |
4.3 利用AOP解决返回地址错误问题 | 第54-59页 |
4.3.1 识别关键返回地址 | 第54-57页 |
4.3.2 冗余返回地址 | 第57-59页 |
4.4 双签名的控制流检测机制 | 第59-60页 |
4.5 本章小结 | 第60-61页 |
第五章 实验验证 | 第61-72页 |
5.1 基于DSP的粒子辐照实验 | 第61-68页 |
5.1.1 实验环境 | 第61-63页 |
5.1.2 目标程序 | 第63-65页 |
5.1.3 实验结果分析 | 第65-68页 |
5.2 基于PIN_FI的模拟故障注入实验 | 第68-71页 |
5.2.1 PIN_FI的设计与实现 | 第68-69页 |
5.2.2 目标代码 | 第69-70页 |
5.2.3 故障注入实验结果分析 | 第70页 |
5.2.4 时空开销 | 第70-71页 |
5.3 本章小结 | 第71-72页 |
第六章 结束语 | 第72-74页 |
6.1 工作总结 | 第72页 |
6.2 工作展望 | 第72-74页 |
致谢 | 第74-76页 |
参考文献 | 第76-80页 |
作者在学期间取得的学术成果 | 第80页 |