摘要 | 第4-5页 |
ABSTRACT | 第5-6页 |
第一章 引言 | 第9-15页 |
1.1 研究背景 | 第9-10页 |
1.2 国内外研究现状 | 第10-12页 |
1.3 本文研究内容 | 第12-13页 |
1.4 本文组织结构 | 第13-15页 |
第二章 Android应用程序及其安全机制分析 | 第15-31页 |
2.1 Android应用程序 | 第15-18页 |
2.1.1 Android应用程序的结构及编译过程 | 第15-18页 |
2.1.2 Android应用程序的运行环境 | 第18页 |
2.2 Android应用程序逆向工程 | 第18-25页 |
2.2.1 常用的Android app逆向分析方法 | 第18-19页 |
2.2.2 常用的Android app逆向工具 | 第19-25页 |
2.3 Android应用程序的二次打包 | 第25-26页 |
2.3.1 二次打包所带来的威胁 | 第25-26页 |
2.3.2 二次打包原理 | 第26页 |
2.4 Android应用程序的保护方法 | 第26-29页 |
2.4.1 壳保护 | 第26-28页 |
2.4.2 混淆 | 第28页 |
2.4.3 防篡改 | 第28-29页 |
2.4.4 反调试 | 第29页 |
2.5 本章总结 | 第29-31页 |
第三章 基于内存信息隐藏的Android应用程序保护方法 | 第31-43页 |
3.1 dex文件的内存dump分析 | 第31-36页 |
3.1.1 概念 | 第31页 |
3.1.2 Android平台上的内存dump方法 | 第31-33页 |
3.1.3 内存dump攻击模型及攻击成本分析 | 第33-36页 |
3.2 内存信息隐藏方法 | 第36-40页 |
3.2.1 可执行代码碎片化 | 第36-38页 |
3.2.2 关键函数动态加载 | 第38-39页 |
3.2.3 反调试 | 第39-40页 |
3.3 保护后应用程序执行过程 | 第40-41页 |
3.4 本章小结 | 第41-43页 |
第四章 原型系统的设计与实现 | 第43-57页 |
4.1 整体框架设计 | 第43-45页 |
4.2 关键数据结构 | 第45-46页 |
4.3 关键算法设计 | 第46-52页 |
4.3.1 关键函数指令提取算法 | 第46-49页 |
4.3.2 可执行代码碎片化算法 | 第49-50页 |
4.3.3 可执行文件修复算法 | 第50-52页 |
4.4 信息隐藏模块 | 第52-54页 |
4.5 资源文件提取与配置模块 | 第54-55页 |
4.6 上下文替换模块 | 第55-56页 |
4.7 本章小结 | 第56-57页 |
第五章 系统评测实验与分析 | 第57-67页 |
5.1 系统界面展示 | 第57-58页 |
5.2 保护有效性分析 | 第58-61页 |
5.2.1 定性分析 | 第59-60页 |
5.2.2 定量分析 | 第60-61页 |
5.3 性能消耗 | 第61-65页 |
5.3.1 实验环境与实验用例 | 第61页 |
5.3.2 实验过程 | 第61页 |
5.3.3 实验结果 | 第61-64页 |
5.3.4 实验结果分析 | 第64-65页 |
5.4 本章小结 | 第65-67页 |
总结与展望 | 第67-69页 |
1 总结 | 第67页 |
2 展望 | 第67-69页 |
参考文献 | 第69-73页 |
致谢 | 第73-75页 |
攻读硕士学位期间取得的科研成果 | 第75页 |