基于Android内存镜像的恶意软件检测研究
中文摘要 | 第3-4页 |
英文摘要 | 第4-5页 |
1 绪论 | 第9-14页 |
1.1 研究背景与意义 | 第9-11页 |
1.2 国内外研究现状 | 第11-12页 |
1.3 论文的主要工作 | 第12页 |
1.4 论文的组织结构 | 第12-14页 |
2 Android和Linux相关机制介绍 | 第14-24页 |
2.1 Android系统综述 | 第14-18页 |
2.1.1 Android系统体系结构 | 第14-16页 |
2.1.2 Android应用结构概述 | 第16-17页 |
2.1.3 Dalvik虚拟机 | 第17-18页 |
2.2 Android安全机制 | 第18-19页 |
2.2.1 Android内核安全机制 | 第18页 |
2.2.2 Android应用框架层安全机制 | 第18-19页 |
2.3 Java平台相关机制 | 第19-20页 |
2.3.1 JNI标准 | 第19-20页 |
2.3.2 Java反射技术 | 第20页 |
2.4 Linux相关机制 | 第20-23页 |
2.4.1 虚拟文件系统 | 第20-22页 |
2.4.2 LKM动态可加载模块 | 第22页 |
2.4.3 内核符号表 | 第22-23页 |
2.5 本章小结 | 第23-24页 |
3 Android内存镜像分析 | 第24-37页 |
3.1 Linux进程管理 | 第24-26页 |
3.1.1 进程和线程 | 第24页 |
3.1.2 进程调度 | 第24-26页 |
3.2 Linux内存管理 | 第26-29页 |
3.2.1 内核虚拟地址转换 | 第26-27页 |
3.2.2 重要内核结构 | 第27-29页 |
3.3 隐藏进程检测 | 第29-33页 |
3.3.1 进程隐藏的常用方法 | 第30-31页 |
3.3.2 基于进程号对比的隐藏进程检测方法 | 第31-33页 |
3.4 可疑进程检测 | 第33-36页 |
3.4.1 恶意应用的典型行为 | 第33页 |
3.4.2 可疑进程检测方法 | 第33-36页 |
3.5 本章小结 | 第36-37页 |
4 Android可疑应用分类检测 | 第37-50页 |
4.1 引言 | 第37页 |
4.2 APK逆向分析 | 第37-42页 |
4.2.1 DEX文件结构 | 第37-39页 |
4.2.2 Dalvik类加载机制 | 第39-41页 |
4.2.3 Dex文件获取方法 | 第41-42页 |
4.3 敏感API提取 | 第42-45页 |
4.3.1 Smali语法 | 第42-43页 |
4.3.2 逆向提取敏感API | 第43-45页 |
4.4 Android可疑应用分类检测 | 第45-49页 |
4.4.1 概率神经网络PNN | 第45-46页 |
4.4.2 分类器集成 | 第46-47页 |
4.4.3 基于API调用的应用分类 | 第47-49页 |
4.5 本章小结 | 第49-50页 |
5 实验验证与结果分析 | 第50-65页 |
5.1 实验环境搭建 | 第50-53页 |
5.2 内存镜像获取 | 第53页 |
5.3 隐藏进程检测 | 第53-56页 |
5.3.1 实验设计 | 第53-55页 |
5.3.2 结果分析 | 第55-56页 |
5.4 可疑进程检测 | 第56-60页 |
5.4.1 实验设计 | 第56-58页 |
5.4.2 结果分析 | 第58-60页 |
5.5 恶意应用分类检测 | 第60-64页 |
5.5.1 集成概率神经网络学习 | 第60-61页 |
5.5.2 可疑应用DEX文件获取 | 第61-63页 |
5.5.3 恶意应用分类检测 | 第63-64页 |
5.6 本章小结 | 第64-65页 |
6 总结与展望 | 第65-67页 |
6.1 本文工作总结 | 第65页 |
6.2 未来工作展望 | 第65-67页 |
致谢 | 第67-68页 |
参考文献 | 第68-71页 |
附录 | 第71页 |
A 作者在攻读学位期间发表的论文目录 | 第71页 |
B 作者在攻读学位期间取得的科研成果目录 | 第71页 |