摘要 | 第5-6页 |
ABSTRACT | 第6页 |
第一章 绪论 | 第9-16页 |
1.1 研究背景和意义 | 第9-10页 |
1.2 研究现状 | 第10-14页 |
1.2.1 FlowDroid | 第10页 |
1.2.2 TaintDroid | 第10-11页 |
1.2.3 TaintART | 第11页 |
1.2.4 ARTist | 第11-12页 |
1.2.5 Malton | 第12页 |
1.2.6 其他工作 | 第12-13页 |
1.2.7 小结 | 第13-14页 |
1.3 本文工作和研究成果 | 第14页 |
1.4 本文结构 | 第14-16页 |
第二章 背景知识 | 第16-23页 |
2.1 污点分析 | 第16-17页 |
2.1.1 概述 | 第16页 |
2.1.2 动态污点分析技术 | 第16-17页 |
2.1.3 示例 | 第17页 |
2.2 安卓运行时 | 第17-21页 |
2.2.1 Dalvik虚拟机 | 第18-19页 |
2.2.2 ART运行时 | 第19-21页 |
2.3 底层CPU架构 | 第21页 |
2.4 vixl工具套件 | 第21-22页 |
2.5 本章小结 | 第22-23页 |
第三章 利用污点分析检测安卓应用隐私泄露 | 第23-35页 |
3.1 隐私信息分类及面临威胁分析 | 第23-24页 |
3.2 安卓应用隐私泄露方式 | 第24-25页 |
3.2.1 粗粒度权限机制导致的隐私泄露 | 第24页 |
3.2.2 合谋攻击导致的隐私泄露 | 第24-25页 |
3.3 动态污点分析技术与安卓新特性的结合 | 第25-33页 |
3.3.1 污点源与污点槽的设计 | 第25-26页 |
3.3.2 污点存储的设计 | 第26-29页 |
3.3.3 污点传播的设计 | 第29-32页 |
3.3.4 污点访问接口的设计 | 第32-33页 |
3.4 TA64系统整体框架 | 第33-34页 |
3.5 本章小结 | 第34-35页 |
第四章 TA64系统的实现 | 第35-49页 |
4.1 版本选择 | 第35页 |
4.2 模块实现 | 第35-45页 |
4.2.1 污点存储模块实现 | 第36-38页 |
4.2.2 污点传播模块实现 | 第38-41页 |
4.2.3 污点访问接口实现 | 第41-42页 |
4.2.4 java层的实现 | 第42-43页 |
4.2.5 Notification App的实现 | 第43-45页 |
4.3 实现中的具体问题 | 第45-48页 |
4.3.1 污点存储寄存器的选择 | 第45-46页 |
4.3.2 辅助函数的污点传播 | 第46-47页 |
4.3.3 ARM64的调用约定 | 第47页 |
4.3.4 污点信息的记录 | 第47-48页 |
4.4 本章小结 | 第48-49页 |
第五章 实验 | 第49-54页 |
5.1 实验前准备 | 第49-50页 |
5.1.1 系统编译 | 第49页 |
5.1.2 系统部署 | 第49页 |
5.1.3 实验工具 | 第49-50页 |
5.2 实验结果 | 第50-52页 |
5.2.1 系统有效性 | 第50-51页 |
5.2.2 系统性能 | 第51-52页 |
5.3 本章小结 | 第52-54页 |
第六章 总结与展望 | 第54-56页 |
6.1 工作总结 | 第54页 |
6.2 工作展望 | 第54-56页 |
参考文献 | 第56-59页 |
附录1 Java层定义的污点添加与访问相关的APIs | 第59-60页 |
附录2 部分宏定义的实现 | 第60-61页 |
致谢 | 第61-62页 |
攻读学位期间发表的学术论文目录 | 第62页 |