面向Android的第三方库检测技术研究
摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
符号对照表 | 第10-11页 |
缩略语对照表 | 第11-15页 |
第一章 绪论 | 第15-23页 |
1.1 研究背景 | 第15-16页 |
1.2 挑战和意义 | 第16-18页 |
1.3 国内外研究现状 | 第18-20页 |
1.3.1 第三方库边界识别 | 第18-19页 |
1.3.2 第三方库检测 | 第19-20页 |
1.4 主要工作 | 第20-21页 |
1.5 课题支持 | 第21页 |
1.6 组织结构 | 第21-22页 |
1.7 本章小结 | 第22-23页 |
第二章 基础知识 | 第23-31页 |
2.1 Android第三方库 | 第23-24页 |
2.1.1 第三方库的组成要素 | 第23页 |
2.1.2 Java Package的命名规则 | 第23-24页 |
2.1.3 名称约定 | 第24页 |
2.2 Dalvik指令集 | 第24-26页 |
2.2.1 位描述 | 第24-25页 |
2.2.2 格式标识 | 第25页 |
2.2.3 Smali语法 | 第25-26页 |
2.3 Android应用程序 | 第26-27页 |
2.4 Dex文件格式 | 第27-29页 |
2.4.1 Dex头部结构 | 第27-29页 |
2.4.2 类结构索引区 | 第29页 |
2.5 代码混淆和优化 | 第29-30页 |
2.6 本章小结 | 第30-31页 |
第三章 第三方库检测系统设计 | 第31-43页 |
3.1 整体框架 | 第31-32页 |
3.2 第三方库边界识别 | 第32-34页 |
3.2.1 依赖关系 | 第32-33页 |
3.2.2 构建依赖关系图 | 第33页 |
3.2.3 边界识别算法 | 第33-34页 |
3.3 特征计算 | 第34-37页 |
3.4 聚类及结果优化 | 第37-39页 |
3.5 第三方库检测 | 第39-42页 |
3.5.1 相似度计算 | 第39-40页 |
3.5.2 索引数据库 | 第40页 |
3.5.3 检测算法 | 第40-42页 |
3.6 本章小结 | 第42-43页 |
第四章 第三方库检测系统实现 | 第43-49页 |
4.1 应用解析模块的实现 | 第43-44页 |
4.2 边界识别模块的实现 | 第44-45页 |
4.3 检测模块和聚类优化模块的实现 | 第45-47页 |
4.4 数据库结构设计 | 第47-48页 |
4.5 本章小结 | 第48-49页 |
第五章 实验与分析 | 第49-61页 |
5.1 第三方库边界识别算法评估 | 第49-51页 |
5.1.1 测试应用集I | 第49-50页 |
5.1.2 和LibD的对比 | 第50-51页 |
5.1.3 和白名单方法的对比 | 第51页 |
5.2 海量应用的处理和评估 | 第51-55页 |
5.2.1 聚类数据集 | 第51-52页 |
5.2.2 聚类阈值 | 第52-53页 |
5.2.3 聚类优化 | 第53页 |
5.2.4 聚类结果的评估 | 第53-54页 |
5.2.5 处理时间 | 第54-55页 |
5.2.6 讨论 | 第55页 |
5.3 第三方库检测 | 第55-60页 |
5.3.1 确定检测阈值 | 第55-56页 |
5.3.2 测试数据集II | 第56页 |
5.3.3 和LibD以及LibRadar的对比 | 第56-57页 |
5.3.4 抗混淆分析 | 第57-59页 |
5.3.5 讨论 | 第59-60页 |
5.4 本章小结 | 第60-61页 |
第六章 总结与未来工作 | 第61-63页 |
6.1 总结 | 第61页 |
6.2 未来工作 | 第61-63页 |
参考文献 | 第63-69页 |
致谢 | 第69-71页 |
作者简介 | 第71-72页 |