| 摘要 | 第1-6页 |
| Abstract | 第6-9页 |
| 第一章 背景介绍 | 第9-15页 |
| §1.1 反编译技术简介 | 第9页 |
| §1.2 发展历史和现状 | 第9-12页 |
| §1.3 本文的主要工作及内容安排 | 第12-15页 |
| 第二章 反编译技术综述 | 第15-26页 |
| §2.1 运行时环境 | 第15-16页 |
| §2.1.1 程序的机器代码格式 | 第15-16页 |
| §2.1.2 运行时的堆栈结构 | 第16页 |
| §2.1.3 机器代码中数据的存贮 | 第16页 |
| §2.2 反编译过程的模块划分 | 第16-17页 |
| §2.3 控制流分析 | 第17-21页 |
| §2.3.1 控制流分析基本原理 | 第17-18页 |
| §2.3.2 常用的高级控制结构 | 第18-19页 |
| §2.3.3 区间理论 | 第19页 |
| §2.3.4 可归约控制流图的结构化算法 | 第19-20页 |
| §2.3.5 不可归约控制流图的结构化算法 | 第20-21页 |
| §2.3.6 总结 | 第21页 |
| §2.4 数据类型恢复问题简介 | 第21页 |
| §2.5 库函数识别 | 第21-22页 |
| §2.6 反编译过程中的其他模块 | 第22-25页 |
| §2.6.1 反汇编 | 第22-23页 |
| §2.6.2 语言和编译器版本识别 | 第23页 |
| §2.6.3 中间语言 | 第23页 |
| §2.6.4 数据流分析 | 第23-25页 |
| §2.6.5 翻译器 | 第25页 |
| §2.7 总结 | 第25-26页 |
| 第三章 数据类型恢复算法及其理论基础 | 第26-49页 |
| §3.1 概述 | 第26-27页 |
| §3.2 数据类型恢复问题的研究方法 | 第27-28页 |
| §3.3 数据类型恢复算法的理论基础 | 第28-34页 |
| §3.3.1 两个模型语言的形式化定义 | 第28-31页 |
| §3.3.2 编译器本质及局部性原理 | 第31-34页 |
| §3.4 Assembly-Sub的类型系统及其类型恢复算法 | 第34-42页 |
| §3.5 数据类型恢复算法实例分析 | 第42-47页 |
| §3.6 class类型识别的讨论 | 第47-49页 |
| 第四章 数据类型恢复算法的实现技术 | 第49-57页 |
| §4.1 Lex和Yacc在数据类型信息收集中的应用 | 第49-53页 |
| §4.2 对数据类型信息进行综合分析的实现 | 第53-54页 |
| §4.3 一些特殊的变量类型的识别 | 第54-55页 |
| §4.4 与其它数据类型恢复技术的比较 | 第55-57页 |
| 第五章 结论及进一步的工作 | 第57-59页 |
| §5.1 结论 | 第57-58页 |
| §5.2 进一步的工作 | 第58-59页 |
| 参考文献 | 第59页 |