嵌入式软件中控制流恢复和分析的方法研究及实现
摘要 | 第3-4页 |
Abstract | 第4页 |
第一章 绪论 | 第7-15页 |
1.1 研究背景与意义 | 第7-8页 |
1.2 研究目标与内容 | 第8-9页 |
1.3 国内外研究现 | 第9-12页 |
1.3.1 逆向工程现状 | 第9-11页 |
1.3.2 控制流分析现状 | 第11-12页 |
1.4 本文组织结构 | 第12-15页 |
第二章 相关理论与技术研究 | 第15-23页 |
2.1 逆向工程的基本概念与定义 | 第15页 |
2.2 反编译技术 | 第15-17页 |
2.3 控制流恢复及分析技术 | 第17-20页 |
2.4 Graphviz绘图技术 | 第20-22页 |
2.5 小结 | 第22-23页 |
第三章 嵌入式软件控制流恢复和分析框架 | 第23-31页 |
3.1 控制流指令特征分析 | 第23-25页 |
3.1.1 跳转指令特征 | 第23-24页 |
3.1.2 数据传送类指令特征 | 第24-25页 |
3.2 嵌入式软件控制流恢复和分析的总体框架 | 第25-27页 |
3.3 控制流的恢复和分析的工作过程 | 第27-30页 |
3.3.1 指令分类提取阶段和存储阶段 | 第28-29页 |
3.3.2 控制流恢复阶段 | 第29-30页 |
3.3.3 控制流分析阶段 | 第30页 |
3.4 小结 | 第30-31页 |
第四章 控制流中恢复和分析的关键方法 | 第31-47页 |
4.1 程序中基本块的生成 | 第32-37页 |
4.1.1 跳转指令分析 | 第32-33页 |
4.1.2 间接跳转地址分析 | 第33-35页 |
4.1.3 过程划分和过程的控制流输出 | 第35-37页 |
4.2 非高级结构的分析 | 第37-39页 |
4.2.1 非结构分支 | 第37-38页 |
4.2.2 非结构循环 | 第38-39页 |
4.3 高级结构的分析 | 第39-42页 |
4.3.1 无环结构提取 | 第39-41页 |
4.3.2 循环结构 | 第41-42页 |
4.4 高级结构控制树生成 | 第42-45页 |
4.4.1 控制流图后序遍历 | 第42-44页 |
4.4.2 高级结构提取方法 | 第44-45页 |
4.4.3 高级控制结构的代码生成 | 第45页 |
4.5 小结 | 第45-47页 |
第五章 控制流中恢复和分析工具的设计和实现 | 第47-69页 |
5.1 控制流中恢复和分析工具的整体设计 | 第47页 |
5.2 控制流恢复模块 | 第47-54页 |
5.2.1 控制流恢复的设计 | 第48-52页 |
5.2.2 控制流恢复的实现 | 第52-54页 |
5.3 控制流分析模块 | 第54-67页 |
5.3.1 控制流分析的设计 | 第55-58页 |
5.3.2 控制流分析的实现 | 第58-67页 |
5.4 本章小结 | 第67-69页 |
第六章 实验研究 | 第69-77页 |
6.1 实验目的 | 第69页 |
6.2 实验描述及实验设计 | 第69-70页 |
6.3 实验过程及结果分析 | 第70-76页 |
6.3.1 控制流恢复的正确性分析 | 第70-73页 |
6.3.2 控制流分析的正确性分析 | 第73-76页 |
6.4 实验总结 | 第76-77页 |
第七章 结束语 | 第77-79页 |
致谢 | 第79-81页 |
参考文献 | 第81-85页 |
在研期间研究成果 | 第85页 |