摘要 | 第6-8页 |
ABSTRACT | 第8-9页 |
1 绪论 | 第13-18页 |
1.1 研究背景 | 第13-14页 |
1.2 研究及应用现状 | 第14-16页 |
1.3 论文主要工作 | 第16-17页 |
1.4 论文结构和安排 | 第17-18页 |
2 Android系统技术与加密算法 | 第18-26页 |
2.1 Android平台结构 | 第18-19页 |
2.2 Dalvik虚拟机 | 第19-20页 |
2.3 JNI开发 | 第20-21页 |
2.4 加密算法 | 第21-25页 |
2.4.1 对称性加密算法的选择 | 第21页 |
2.4.2 非对称性加密算法的选择 | 第21-22页 |
2.4.3 消息摘要算法的选择 | 第22页 |
2.4.4 AES | 第22-23页 |
2.4.5 NTRU | 第23-24页 |
2.4.6 MD5消息摘要算法 | 第24-25页 |
2.5 小结 | 第25-26页 |
3 Android系统软件的安全问题 | 第26-31页 |
3.1 组件漏洞隐患 | 第26-28页 |
3.1.1 广播接收器的漏洞隐患 | 第27页 |
3.1.2 内容提供者的漏洞隐患 | 第27-28页 |
3.2 逆向的威胁 | 第28-29页 |
3.3 文件存储的风险 | 第29-30页 |
3.3.1 外部存储的风险 | 第29页 |
3.3.2 内部存储的风险 | 第29-30页 |
3.4 本章小结 | 第30-31页 |
4 软件安全保护方案的设计和实现 | 第31-61页 |
4.1 方案设计 | 第31-33页 |
4.2 密钥存储模块设计与实现 | 第33-38页 |
4.2.1 框架设计 | 第33页 |
4.2.2 密钥存储模块的实现 | 第33-38页 |
4.3 组件漏洞测试模块设计与实现 | 第38-50页 |
4.3.1 组件漏洞测试架构设计 | 第38-39页 |
4.3.2 测试思想 | 第39页 |
4.3.3 Android Manifest文件分析 | 第39-40页 |
4.3.4 意图分析 | 第40-41页 |
4.3.5 Fuzzing测试 | 第41页 |
4.3.6 Robotium框架 | 第41-42页 |
4.3.7 分析模块实现 | 第42-45页 |
4.3.8 测试用例生成模块的实现 | 第45-47页 |
4.3.9 测试用例执行模块实现 | 第47-49页 |
4.3.10 结果处理模块实现 | 第49-50页 |
4.4 防范逆向模块设计与实现 | 第50-59页 |
4.4.1 PC端加壳工作 | 第50-51页 |
4.4.2 Android端解壳工作 | 第51-52页 |
4.4.3 Application动态加载 | 第52-55页 |
4.4.4 代码混淆 | 第55-57页 |
4.4.5 插入垃圾字节码 | 第57-59页 |
4.4.6 破坏apk文件结构 | 第59页 |
4.5 Android安全开发原则 | 第59-60页 |
4.6 本章小结 | 第60-61页 |
5 实验结果分析 | 第61-67页 |
5.1 加解密功能测试 | 第61页 |
5.2 组件漏洞分析 | 第61-64页 |
5.2.1 组件暴露情况统计 | 第61-62页 |
5.2.2 组件拒绝服务情况统计 | 第62-63页 |
5.2.3 组件漏洞分类 | 第63-64页 |
5.3 抗逆性 | 第64-66页 |
5.4 本章小结 | 第66-67页 |
6 总结与展望 | 第67-69页 |
6.1 总结 | 第67-68页 |
6.2 展望 | 第68-69页 |
参考文献 | 第69-72页 |
致谢 | 第72页 |