致谢 | 第5-6页 |
摘要 | 第6-7页 |
ABSTRACT | 第7-8页 |
1 引言 | 第12-18页 |
1.1 研究背景 | 第12-14页 |
1.2 国内外研究现状 | 第14-16页 |
1.2.1 静态分析 | 第14-15页 |
1.2.2 动态分析 | 第15-16页 |
1.2.3 基于机器学习的检测方法 | 第16页 |
1.3 论文研究内容 | 第16-17页 |
1.4 本文结构 | 第17-18页 |
2 相关技术研究 | 第18-38页 |
2.1 安卓系统概述 | 第18-20页 |
2.1.1 Linux内核层 | 第19页 |
2.1.2 系统运行库层 | 第19-20页 |
2.1.3 应用框架层 | 第20页 |
2.1.4 应用层 | 第20页 |
2.2 安卓应用安全机制 | 第20-22页 |
2.3 安卓恶意软件分析 | 第22-25页 |
2.3.1 恶意软件分类 | 第23-24页 |
2.3.2 恶意代码植入方法 | 第24-25页 |
2.4 机器学习 | 第25-32页 |
2.4.1 最近邻算法 | 第25-26页 |
2.4.2 决策树算法 | 第26-27页 |
2.4.3 朴素贝叶斯算法 | 第27-28页 |
2.4.4 随机森林 | 第28-30页 |
2.4.5 Adaboost算法 | 第30页 |
2.4.6 SVM算法 | 第30-32页 |
2.5 反编译文件解析 | 第32-37页 |
2.5.1 AndroidManifest.xml文件分析 | 第32-34页 |
2.5.2 smali文件分析 | 第34-36页 |
2.5.3 classes.dex文件分析 | 第36-37页 |
2.6 本章小结 | 第37-38页 |
3 基于机器学习的恶意应用检测方案设计 | 第38-55页 |
3.1 实验准备 | 第38-40页 |
3.1.1 实验环境 | 第38-39页 |
3.1.2 数据集 | 第39-40页 |
3.2 基于机器学习的恶意应用检测框架设计 | 第40-48页 |
3.2.1 检测框架设计 | 第40页 |
3.2.2 反编译 | 第40-42页 |
3.2.3 特征抽取 | 第42-45页 |
3.2.4 特征处理 | 第45-46页 |
3.2.5 分类器训练 | 第46-47页 |
3.2.6 分类器评价 | 第47-48页 |
3.3 N-gram Opcode特征检测方案设计 | 第48-52页 |
3.3.1 检测框架与实验方案 | 第49页 |
3.3.2 Dalvik指令分类规则 | 第49-51页 |
3.3.3 N-gram Opcode特征 | 第51-52页 |
3.4 特征比较实验方案设计 | 第52-54页 |
3.4.1 检测框架 | 第53页 |
3.4.2 分类器效率测试 | 第53-54页 |
3.5 本章小结 | 第54-55页 |
4 实验结果与评价 | 第55-65页 |
4.1 N-gram Opcode特征实验 | 第55-57页 |
4.1.1 Dalvik指令分类规则选取 | 第55-56页 |
4.1.2 N-gram参数确定 | 第56-57页 |
4.2 特征比较实验 | 第57-63页 |
4.2.1 单个特征集实验结果 | 第57-59页 |
4.2.2 组合特征集实验结果 | 第59-60页 |
4.2.3 分类器效率实验结果 | 第60-62页 |
4.2.4 综合评价 | 第62-63页 |
4.3 本章小结 | 第63-65页 |
5 总结与展望 | 第65-67页 |
5.1 总结 | 第65-66页 |
5.2 展望 | 第66-67页 |
参考文献 | 第67-69页 |
作者简历及攻读硕士学位期间取得的研究成果 | 第69-71页 |
学位论文数据集 | 第71页 |