摘要 | 第5-6页 |
ABSTRACT | 第6页 |
第一章 绪论 | 第10-16页 |
1.1 介绍 | 第10-11页 |
1.2 反编译技术的应用 | 第11-13页 |
1.3 反编译技术的发展历史 | 第13-15页 |
1.4 当前面临的问题 | 第15页 |
1.5 本文组织结构 | 第15-16页 |
第二章 反编译技术综述 | 第16-28页 |
2.1 可执行代码 | 第16页 |
2.2 变量分析 | 第16-18页 |
2.2.1 二进制代码与源代码变量间的关系 | 第17-18页 |
2.3 类型分析 | 第18-22页 |
2.3.1 类型信息来源 | 第19页 |
2.3.2 指定常量的类型 | 第19页 |
2.3.3 类型约束 | 第19-20页 |
2.3.4 基于数据流的类型分析 | 第20-21页 |
2.3.5 静态变量,动态变量与聚合类型 | 第21-22页 |
2.4 表达式分析 | 第22-24页 |
2.4.1 表达式融合 | 第22-23页 |
2.4.2 表达式传播 | 第23页 |
2.4.3 有限传播 | 第23-24页 |
2.5 控制结构分析 | 第24页 |
2.6 函数,参数/返回值识别 | 第24-25页 |
2.6.1 函数识别 | 第24-25页 |
2.6.2 参数/返回值识别 | 第25页 |
2.7 编译器识别 | 第25页 |
2.8 库函数识别 | 第25-27页 |
2.8.1 静态库函数识别 | 第26页 |
2.8.2 动态库函数识别 | 第26-27页 |
2.9 本章小结 | 第27-28页 |
第三章 静态反编译及其局限性 | 第28-33页 |
3.1 静态分析 | 第28页 |
3.2 动态分析 | 第28页 |
3.3 静态分析与动态分析比较 | 第28-29页 |
3.4 静态反编译的局限性 | 第29-32页 |
3.4.1 区分代码和数据 | 第30页 |
3.4.2 区别常量与指针 | 第30-31页 |
3.4.3 指针别名分析 | 第31-32页 |
3.4.4 其他问题 | 第32页 |
3.5 本章小结 | 第32-33页 |
第四章 DYNAMIC ANALYZER 设计与实现 | 第33-49页 |
4.1 可执行代码分析工具DYNAMIC ANALYZER | 第33-34页 |
4.2 动态翻译与调试 | 第34-35页 |
4.3 动态构造控制流图 | 第35-39页 |
4.4 影子堆栈 | 第39-41页 |
4.5 指针别名分析 | 第41-46页 |
4.6 异常,线程,和信号处理 | 第46-47页 |
4.7 动态反编译得与失 | 第47-48页 |
4.8 本章小结 | 第48-49页 |
第五章 全文总结 | 第49-50页 |
5.1 主要结论 | 第49页 |
5.2 研究展望 | 第49-50页 |
参考文献 | 第50-52页 |
攻读硕士学位期间已发表或录用的论文 | 第52-53页 |
攻读硕士学位期间参与的科研项目 | 第53-54页 |
致谢 | 第54页 |