面向Android智能手机终端应用程序的代码混淆算法研究与实现
摘要 | 第4-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第10-16页 |
1.1 研究背景及意义 | 第10-11页 |
1.2 国内外研究现状 | 第11-13页 |
1.3 论文主要研究内容 | 第13-14页 |
1.4 创新性分析 | 第14-15页 |
1.5 论文章节安排 | 第15-16页 |
第二章 代码混淆技术 | 第16-29页 |
2.1 代码混淆技术研究 | 第16-26页 |
2.1.1 代码混淆的定义 | 第16-17页 |
2.1.2 控制流混淆 | 第17-20页 |
2.1.2.1 压扁控制流 | 第18页 |
2.1.2.2 插入多余的控制流 | 第18-20页 |
2.1.2.3 通过跳转函数执行无条件转移指令 | 第20页 |
2.1.3 数据混淆 | 第20-24页 |
2.1.3.1 混淆整型数 | 第21页 |
2.1.3.2 混淆布尔型变量 | 第21-22页 |
2.1.3.3 混淆常量 | 第22-23页 |
2.1.3.4 混淆数组 | 第23-24页 |
2.1.4 结构混淆 | 第24-25页 |
2.1.5 动态混淆 | 第25-26页 |
2.2 不透明谓词技术研究 | 第26-27页 |
2.2.1 不透明谓词的定义 | 第26页 |
2.2.2 常见的不透明谓词的强化方法 | 第26-27页 |
2.3 代码混淆评估标准研究 | 第27-28页 |
2.4 本章小结 | 第28-29页 |
第三章 混淆方案及其相关算法 | 第29-41页 |
3.1 混淆方案概述 | 第29-31页 |
3.2 混淆方案相关算法描述 | 第31-40页 |
3.2.1 插入多余的分支路径 | 第31-33页 |
3.2.2 压扁控制流 | 第33-39页 |
3.2.2.1 压扁控制流算法 | 第34页 |
3.2.2.2 条件基本块压扁控制流算法 | 第34-39页 |
3.2.3 强化不透明谓词 | 第39-40页 |
3.3 本章小结 | 第40-41页 |
第四章 混淆工具的开发实现 | 第41-50页 |
4.1 混淆工具的设计 | 第41-42页 |
4.2 开发环境 | 第42-43页 |
4.3 系统设计 | 第43-44页 |
4.4 用户界面及工作流程 | 第44-46页 |
4.4.1 用户界面 | 第44-45页 |
4.4.2 工作流程 | 第45-46页 |
4.5 程序分析模块的实现 | 第46页 |
4.6 混淆模块的实现 | 第46-47页 |
4.7 程序运行实例分析 | 第47-49页 |
4.8 本章小结 | 第49-50页 |
第五章 混淆工具的测试及性能分析 | 第50-56页 |
5.1 混淆方案的可行性分析 | 第50-51页 |
5.2 混淆工具的有效性分析 | 第51-54页 |
5.2.1 代码长度 | 第51-52页 |
5.2.2 时间开销 | 第52-53页 |
5.2.3 语义复杂度 | 第53-54页 |
5.3 本章小结 | 第54-56页 |
第六章 总结与展望 | 第56-58页 |
6.1 总结 | 第56页 |
6.2 展望与进一步研究 | 第56-58页 |
参考文献 | 第58-60页 |
致谢 | 第60-61页 |
攻读学位期间发表的学术论文目录 | 第61页 |