论文部分内容阅读
在Android应用市场上的移动应用程序中,存在数量众多的对合法应用程序肆意进行修改,并用新的签名密钥进行重新打包并重新发布应用的现象。现有的Android应用相似性研究存在着特征提取难以描述Android代码的特征,提取算法过于复杂,检出率差和处理效率差等问题,如何系统地、快速准确地从海量的Android应用中识别这些经过重新打包的应用?是否能够快速而可度量地检测这些经过重新打包的应用从而对每天提交的大量应用进行有效的管理?能否帮助用户有效判断下载的应用程序的是否合法、是否包含恶意负载。这些都成为Android系统研究中的挑战。针对这些问题,本文基于图特征向量的特征模型,结合余弦算法、规范压缩距离等算法对程序间的相似性进行分析,给出一种具有时效性的算法。该算法主要是通过从Dalvik字节码级别对Android应用程序进行静态分析,找出其中类之间的互相依赖关系,根据Android反编译代码中的类依赖关系,提出一种基于图的特征向量模型,该模型通过类依赖图中顶点之间的互调信息,保留了程序的结构中经过混淆和变形处理后的不变量,可以有效对抗上述技术所产生的影响。在类依赖图中首先通过计算类中方法和变量相互调用得到类依赖关系的转移概率矩阵,依据转移概率矩阵进行拉普拉斯变换,并把得到的矩阵映射为一个多维特征向量进行Android应用的相似性分析。可以快速有效地从海量应用中识别出重新打包的应用,并采用机器学习分析结果,来检测出潜藏在Android应用程序中的剽窃及恶意代码。本文提出的算法具有较高的检查效率和精确度,本文研究成果将为广大的Android应用开发者提供一个更好的外部环境,减小了广大的智能手机用户安装第三方应用程序时面临的风险。