摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第15-21页 |
1.1 研究背景 | 第15页 |
1.2 研究现状 | 第15-19页 |
1.3 论文所做的工作 | 第19-21页 |
第二章 Android平台技术介绍 | 第21-35页 |
2.1 Android系统架构 | 第21-24页 |
2.1.1 Linux Kernel | 第21-22页 |
2.1.2 Android Runtime | 第22页 |
2.1.3 Libraries | 第22-23页 |
2.1.4 Application Framework | 第23页 |
2.1.5 Applications | 第23-24页 |
2.2 Android运行时环境 | 第24-25页 |
2.2.1 Dalvik虚拟机 | 第24页 |
2.2.2 Dalvik字节码 | 第24-25页 |
2.3 Android应用开发流程 | 第25-27页 |
2.3.1 开发环境搭建 | 第26页 |
2.3.2 应用开发 | 第26-27页 |
2.3.3 调试和测试 | 第27页 |
2.3.4 App打包发布 | 第27页 |
2.4 Android开发中代码组织结构 | 第27-28页 |
2.5 Android四大组件 | 第28-31页 |
2.5.1 Activity组件 | 第28-29页 |
2.5.2 Service服务 | 第29-30页 |
2.5.3 Broadcast Receive | 第30页 |
2.5.4 Content Provider | 第30页 |
2.5.5 Intent组件 | 第30-31页 |
2.6 Android应用程序文件结构 | 第31-32页 |
2.7 Android app安装和启动 | 第32-33页 |
2.8 小结 | 第33-35页 |
第三章 Android应用程序逆向分析技术 | 第35-41页 |
3.1 静态分析技术 | 第35-36页 |
3.2 静态分析工具 | 第36-38页 |
3.3 动态分析技术 | 第38-39页 |
3.4 小结 | 第39-41页 |
第四章 Android当前软件保护技术 | 第41-51页 |
4.1 代码混淆 | 第41-42页 |
4.2 NDK保护 | 第42-45页 |
4.3 字节码填充 | 第45-46页 |
4.4 加壳 | 第46-49页 |
4.5 签名保护 | 第49-50页 |
4.6 小结 | 第50-51页 |
第五章 基于动态加载的软件保护方案 | 第51-57页 |
5.1 源码打包 | 第51-52页 |
5.2 jar包加密 | 第52-54页 |
5.2.1 AES加密原理 | 第53页 |
5.2.2 jar包加密 | 第53-54页 |
5.3 解密jar包 | 第54页 |
5.4 动态加载机制 | 第54-55页 |
5.5 防动态分析 | 第55-56页 |
5.6 小结 | 第56-57页 |
第六章 基于动态加载的软件保护方案实现 | 第57-67页 |
6.1 受保护代码 | 第58-59页 |
6.2 加密程序 | 第59-61页 |
6.3 动态加载 | 第61-65页 |
6.3.1 解密jar文件的类 | 第61-63页 |
6.3.2 动态加载jar文件的类 | 第63-65页 |
6.4 实验结果 | 第65-66页 |
6.5 后续工作的展望 | 第66-67页 |
参考文献 | 第67-71页 |
致谢 | 第71-73页 |
作者简介 | 第73-75页 |
附录A | 第75-91页 |