一种安卓应用的识别方法及装置的制造方法
【技术领域】
[0001]本发明涉及移动终端领域,特别涉及一种安卓应用识别方法及装置。
【背景技术】
[0002]随着科学技术的发展,移动终端的出现极大的丰富了人们的日常生活。平板电脑、智能手机等移动终端以其方便携带,并且功能多样的优点得到了广泛的应用。移动终端的核心是操作系统,如今主流的移动终端操作系统有两种,一种为1s操作系统,另一种为安卓操作系统。
[0003]由于安卓系统是开放源代码的操作系统,节省了厂商的开发成本,也便于在此基础上开发该系统的应用,因此一经推出便发展得极为迅速,各种应用层出不穷。但是,这些应用中存在许多相似性很高的应用,让用户在寻找自己需要的应用时,浪费了大量的时间。将这些相似的应用识别出来,并对其进行归类,可以帮助用户解决这个问题。
[0004]安卓系统应用的文件一般采用apk的格式。一般来说,通过对apk文件内容的识另O,可以将应用文件识别出来。目前存在两种方式可以对apk文件的内容进行识别:
[0005]一种方式是使用文件的md5来识别apk文件。md5是一种文件加密方法,对每一个文件,会产生一个相应的“文件指纹”,所有内容不相同文件的“文件指纹”都不相同。因此只要文件内容稍作变化,其md5便会不同。
[0006]另一种方式是使用sign_md5方法来识别apk文件,这种方法可以对重新命名、但文件内容不变的文件加以识别,比上一方法覆盖的范围广。但是,只要向apk文件中增添无用文件,其sign_md5特征就会改变。假如文件内容稍有变化,便会认为该应用为其他种类。
[0007]以上两种方法都能通过对apk文件内容的识别来对应用进行识别,但是一般来说,很多相似的文件内容并不完全相同,而是有微小的变化,因此使用上述两种方式无法识别出相似的应用。
【发明内容】
[0008]为了解决上述问题,本发明提供了一种安卓应用的识别方法及装置,以对相似的安卓应用进行识别,技术方案如下:
[0009]一种安卓应用的识别方法,包括:
[0010]A)提取目标应用的apk文件中至少一种与行为相关的信息;其中,apk为安卓安装包;
[0011]B)提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
[0012]C)根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。
[0013]所述分类信息库的建立方法包括:
[0014]a)选取apk文件中至少一种与行为相关的信息,将所选取的信息设定为分类信息;
[0015]b)根据所设定的分类信息,针对目标样本群中的每一个应用样本,提取该应用样本apk文件中分类信息的操作码,并对所述操作码进行处理,得到特征值;
[0016]c)将特征值相同的应用归为一类,得到分类结果。
[0017]在c)步骤之后,还包括:
[0018]d)针对每一类应用,选取一组应用进行分析;如果所述一组应用中包含的应用具有相同的功能,则保存所述分类结果;如果所述一组应用中包含的应用具有不同的功能,则重新选取至少一种与行为相关的信息,并将所述信息设定为分类信息,重复b)到d);其中,所述一组应用中的应用数量不小于预设值。
[0019]较佳的,所述A)为:从目标应用的apk文件中提取预设的分类信息库的分类信息;
[0020]所述B)为:提取所述分类信息的操作码,并对所述操作码进行处理,得到特征值。
[0021]所述C)步骤进一步包括:如果所述目标应用的特征值与所述分类信息库中任意已知类别的相应特征值不相同,则在所述分类信息库中新建一个类别。
[0022]较佳的,所述C)为:根据预设的病毒信息库,将所述特征值与病毒文件的相应特征值作比较;如果所述特征值与所述病毒文件的相应特征值相同,则确定所述目标应用对应的apk文件为病毒文件。
[0023]所述C)进一步包括:如果所述目标应用的特征值与所述病毒信息库中任意病毒文件的相应特征值不同,则判断所述目标应用中是否包含病毒,如果是,则在所述病毒信息库中新建一个病毒类别。
[0024]本发明还提供了一种安卓应用的识别装置,包括:信息提取模块、操作码处理模块和识别模块;其中,
[0025]所述信息提取模块用于提取目标应用的apk文件中至少一种与行为相关的信息,apk为安卓安装包;
[0026]所述操作码处理模块用于提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
[0027]所述识别模块用于根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。
[0028]所述识别模块使用的分类信息库的建立方法,包括:
[0029]a)选取apk文件中至少一种与行为相关的信息,将所选取的信息设定为分类信息;
[0030]b)根据所设定的分类信息,针对目标样本群中的每一个应用样本,提取该应用样本apk文件中分类信息的操作码,并对所述操作码进行处理,得到特征值;
[0031]c)将特征值相同的应用归为一类,得到分类结果。
[0032]所述识别模块使用的分类信息库的建立方法,在c)之后,还包括:
[0033]d)针对每一类应用,选取一组应用进行分析;如果所述一组应用中包含的应用具有相同的功能,则保存所述分类结果;如果所述一组应用中包含的应用具有不同的功能,则重新选取至少一种与行为相关的信息,并将所述信息设定为分类信息,重复b)到d);其中,所述一组应用中的应用数量不小于预设值。
[0034]较佳的,所述信息提取模块具体用于:从目标应用的apk文件中提取预设的分类信息库的分类信息;
[0035]所述操作码处理模块具体用于:提取所述分类信息的操作码,并对所述操作码进行处理,得到特征值。
[0036]所述识别模块进一步用于:如果所述目标应用的特征值与所述分类信息库中任意已知类别的相应特征值不相同,则在所述分类信息库中新建一个类别。
[0037]所述识别模块具体用于:根据预设的病毒信息库,将所述特征值与病毒文件的相应特征值作比较;如果所述特征值与所述病毒文件的相应特征值相同,则确定所述目标应用对应的apk文件为病毒文件。
[0038]所述识别模块进一步用于:如果所述目标应用的特征值与所述病毒信息库中任意病毒文件的相应特征值不同,则判断所述目标应用中是否包含病毒,如果是,则在所述病毒信息库中新建一个病毒类别。
[0039]本发明实施例中,对目标应用提取该应用的apk文件中包含的至少一种与行为相关的信息,对所述信息提取其操作码,并对所述操作码进行处理,得到特征值;然后将所得到的特征值与预设的分类信息库中已知类别应用的相应特征值做比较,如果所述特征值与所述已知类别应用的相应特征值相同,则确定该应用与已知应用为一类。
[0040]通过以上方法,就算应用的apk文件的内容稍微有所变化,只要得到的特征值与已知类别相应的特征值相同,便可认为两者是同一类别,能够有效的识别相似的应用。
【附图说明】
[0041]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]图1为本发明实施例提供的安卓应用的识别方法的第一种流程图;
[0043]图2为本发明实施例提供的字节码片段的示意图;
[0044]图3为本发明实施例提供的分类信息库的建立方法的第一种流程图;
[0045]图4为本发明实施例提供的分类信息库的建立方法的第二种流程图;