基于DEX重构和虚拟保护的安卓应用加固研究与实现
摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第1章 绪论 | 第11-15页 |
1.1 研究背景及意义 | 第11-12页 |
1.2 国内外研究现状 | 第12-13页 |
1.3 论文的组织结构 | 第13-15页 |
第2章 安卓系统架构与应用软件威胁 | 第15-26页 |
2.1 安卓系统结构 | 第15-18页 |
2.1.1 应用程序层 | 第16页 |
2.1.2 应用程序框架层 | 第16-17页 |
2.1.3 运行时和系统库 | 第17-18页 |
2.1.4 Linux内核层 | 第18页 |
2.2 安卓应用运行机制 | 第18-21页 |
2.2.1 安卓应用结构 | 第19页 |
2.2.2 安卓应用安装过程 | 第19-20页 |
2.2.3 安卓应用启动过程 | 第20-21页 |
2.3 安卓应用安全威胁 | 第21-26页 |
2.3.1 逆向工程 | 第21页 |
2.3.2 代码注入 | 第21-25页 |
2.3.3 二次打包 | 第25-26页 |
第3章 安卓应用脱壳技术研究与实现 | 第26-42页 |
3.1 安卓应用加壳技术简要分析 | 第26-28页 |
3.1.1 动态加载机制 | 第26-27页 |
3.1.2 挂钩技术应用 | 第27-28页 |
3.1.3 DEX内存离散化 | 第28页 |
3.2 Dalvik虚拟机研究 | 第28-34页 |
3.2.1 Dalvik虚拟机实现 | 第29页 |
3.2.2 Dalvik虚拟机特征 | 第29-31页 |
3.2.3 DEX文件结构 | 第31-34页 |
3.3 DEX重构脱壳 | 第34-42页 |
3.3.1 方案设计 | 第34-37页 |
3.3.2 方案实现 | 第37-42页 |
第4章 安卓应用虚拟保护技术研究与实现 | 第42-54页 |
4.1 Dalvik指令 | 第42-46页 |
4.1.1 Dalvik指令简介 | 第42-43页 |
4.1.2 数据定义指令 | 第43-44页 |
4.1.3 数据运算指令 | 第44-45页 |
4.1.4 方法调用指令 | 第45-46页 |
4.2 反射机制 | 第46-48页 |
4.2.1 安卓Java层反射 | 第46-47页 |
4.2.2 安卓原生层反射 | 第47-48页 |
4.3 DEX虚拟保护 | 第48-54页 |
4.3.1 自定义虚拟机 | 第48-49页 |
4.3.2 方案实现 | 第49-54页 |
第5章 安卓应用脱壳和加固效果分析 | 第54-63页 |
5.1 DEX重构脱壳效果分析 | 第54-57页 |
5.1.1 应用加固 | 第54-55页 |
5.1.2 重构点选择 | 第55-56页 |
5.1.3 应用脱壳 | 第56页 |
5.1.4 脱壳效果分析 | 第56-57页 |
5.2 DEX虚拟保护效果分析 | 第57-62页 |
5.2.1 注册码保护示例程序 | 第57-59页 |
5.2.2 加固测试 | 第59-62页 |
5.3 小结 | 第62-63页 |
总结与展望 | 第63-65页 |
总结 | 第63页 |
展望 | 第63-65页 |
参考文献 | 第65-68页 |
攻读硕士学位期间发表的成果 | 第68-69页 |
致谢 | 第69页 |