摘要 | 第4-5页 |
abstract | 第5页 |
第一章 绪论 | 第8-12页 |
1.1 研究背景及意义 | 第8-9页 |
1.2 国内外研究现状 | 第9-10页 |
1.3 研究内容及创新点 | 第10-11页 |
1.4 本文组织结构 | 第11-12页 |
第二章 基本概念 | 第12-22页 |
2.1 程序切片技术 | 第12-15页 |
2.1.1 程序切片概述 | 第12-13页 |
2.1.2 程序切片的分类 | 第13-14页 |
2.1.3 程序切片的应用 | 第14-15页 |
2.2 代码混淆 | 第15-20页 |
2.2.1 代码混淆的定义 | 第15-16页 |
2.2.2 控制流混淆 | 第16-17页 |
2.2.3 数据流混淆 | 第17-18页 |
2.2.4 布局混淆 | 第18-19页 |
2.2.5 预防混淆 | 第19页 |
2.2.6 代码混淆评价 | 第19-20页 |
2.3 代码反混淆 | 第20-21页 |
2.3.1 静态分析 | 第20页 |
2.3.2 动态分析 | 第20-21页 |
2.4 本章小结 | 第21-22页 |
第三章 基于程序切片的死代码检测方法 | 第22-31页 |
3.1 死代码概念 | 第22-23页 |
3.2 基于程序切片的死代码检测流程 | 第23-24页 |
3.3 死代码检测算法 | 第24-26页 |
3.3.1 不相关代码检测算法 | 第24-25页 |
3.3.2 不可达代码检测算法 | 第25-26页 |
3.4 实例分析 | 第26-29页 |
3.5 复杂度分析 | 第29页 |
3.6 本章小结 | 第29-31页 |
第四章 基于变量距离图的无用变量检测方法 | 第31-39页 |
4.1 无用变量概念 | 第31-32页 |
4.2 变量距离图和变量距离 | 第32-34页 |
4.3 基于变量距离图的无用变量检测流程 | 第34-35页 |
4.4 无用变量检测算法 | 第35-36页 |
4.5 实例分析 | 第36-38页 |
4.5.1 单输出程序的无用变量检测 | 第36页 |
4.5.2 多输出程序的无用变量检测 | 第36-38页 |
4.6 复杂度分析 | 第38页 |
4.7 本章小结 | 第38-39页 |
第五章 基于LLVM的死代码检测系统框架及实验分析 | 第39-47页 |
5.1 死代码检测系统框架设计 | 第39-42页 |
5.1.1 LLVM编译框架 | 第39-41页 |
5.1.2 基于LLVM的死代码检测系统框架 | 第41-42页 |
5.2 实验与分析 | 第42-46页 |
5.2.1 死代码检测实验 | 第42-45页 |
5.2.2 无用变量检测实验 | 第45-46页 |
5.3 本章小结 | 第46-47页 |
第六章 总结与展望 | 第47-49页 |
6.1 本文工作总结 | 第47页 |
6.2 未来研究方向 | 第47-49页 |
参考文献 | 第49-52页 |
附录一 攻读硕士学位期间发表的论文 | 第52-53页 |
附录二 攻读硕士学位期间申请的专利 | 第53-54页 |
致谢 | 第54页 |