致谢 | 第5-6页 |
摘要 | 第6-7页 |
ABSTRACT | 第7-8页 |
1 引言 | 第12-17页 |
1.1 研究背景 | 第12-13页 |
1.2 研究现状 | 第13-15页 |
1.2.1 恶意应用检测 | 第13-14页 |
1.2.2 应用静态分析 | 第14页 |
1.2.3 应用商店的可信性分析 | 第14-15页 |
1.3 论文主要工作 | 第15-16页 |
1.4 论文的组织结构 | 第16-17页 |
2 背景知识和相关技术 | 第17-33页 |
2.1 ANDROID系统架构 | 第17-19页 |
2.1.1 应用程序层 | 第17-18页 |
2.1.2 应用框架层 | 第18页 |
2.1.3 系统运行库 | 第18-19页 |
2.1.4 Linux内核 | 第19页 |
2.2 ANDROID应用程序组件 | 第19-21页 |
2.2.1 活动(Activity) | 第19-20页 |
2.2.2 服务(Service) | 第20-21页 |
2.2.3 内容提供者(Content Provider) | 第21页 |
2.2.4 广播接收者(Broadcast Receiver) | 第21页 |
2.3 ANDROID应用程序软件包结构 | 第21-24页 |
2.4 ANDROID应用逆向工程 | 第24-28页 |
2.4.1 APK文件正向过程 | 第24-26页 |
2.4.2 Android逆向分析 | 第26-28页 |
2.5 ANDROID应用程序分析方法 | 第28-29页 |
2.5.1 静态分析方法 | 第28页 |
2.5.2 动态分析 | 第28-29页 |
2.5.3 机器学习分析方法 | 第29页 |
2.6 可信度评估原理 | 第29-32页 |
2.6.1 信任概念 | 第30-31页 |
2.6.2 几种常见信任计算的理论数学模式 | 第31-32页 |
2.7 本章小结 | 第32-33页 |
3 基于静态检测的可信性评估方法 | 第33-40页 |
3.1 检测方法需求分析 | 第33页 |
3.2 基于特征值的检测方法设计 | 第33-37页 |
3.2.1 异常评分检测方法 | 第34页 |
3.2.2 包名特征值和版本代码检测方法 | 第34-35页 |
3.2.3 SHA256检测方法 | 第35页 |
3.2.4 运行权限检测方法 | 第35页 |
3.2.5 数字签名检测方法 | 第35-37页 |
3.2.6 Dalvik可执行文件的检验方法 | 第37页 |
3.3 可信性分析 | 第37-38页 |
3.4 本章小结 | 第38-40页 |
4 数据采集系统设计与实现 | 第40-53页 |
4.1 数据采集系统设计 | 第40-45页 |
4.1.1 整体结构设计 | 第41-42页 |
4.1.2 普通应用商店网络爬虫设计 | 第42页 |
4.1.3 动态网页应用商店网络爬虫设计 | 第42-45页 |
4.2 数据采集系统实现 | 第45-52页 |
4.2.1 jsoup使用 | 第45-47页 |
4.2.2 普通应用商店网络爬虫实现 | 第47-50页 |
4.2.3 动态网页应用商店网络爬虫实现 | 第50-51页 |
4.2.4 数据采集过程技术疑难点 | 第51-52页 |
4.3 本章小结 | 第52-53页 |
5 实验与评估 | 第53-70页 |
5.1 功能需求分析 | 第53页 |
5.2 系统整体实现 | 第53-54页 |
5.3 特征提取及检测模块 | 第54-57页 |
5.3.1 包名和版本代码的提取 | 第54-55页 |
5.3.2 文件预处理 | 第55页 |
5.3.3 数字签名的提取 | 第55页 |
5.3.4 运行权限的提取 | 第55页 |
5.3.5 Dalvik可执行文件的提取 | 第55-56页 |
5.3.6 特征值的比较分析 | 第56-57页 |
5.4 系统测试与分析 | 第57-63页 |
5.4.1 编码缺陷测试 | 第57-58页 |
5.4.2 功能测试 | 第58-63页 |
5.4.3 非功能性测试 | 第63页 |
5.5 实验结果与分析 | 第63-69页 |
5.5.1 数据收集 | 第63-65页 |
5.5.2 结果分析 | 第65-69页 |
5.6 本章小结 | 第69-70页 |
6 总结和展望 | 第70-72页 |
6.1 本文总结 | 第70页 |
6.2 工作展望 | 第70-72页 |
参考文献 | 第72-77页 |
学位论文数据集 | 第77页 |