一种安卓应用的识别方法及装置的制造方法

xiaoxiao2020-10-23  32

一种安卓应用的识别方法及装置的制造方法
【技术领域】
[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为本发明实施例提供的分类信息库的建立方法的第二种流程图;
[0046]图5为本发明实施例提供的安卓应用的识别方法的第二种流程图;
[0047]图6为本发明实施例提供的安卓应用的识别装置的结构示意图。
【具体实施方式】
[0048]首先对本发明实施例一种安卓应用识别方法进行说明,该方法包括以下步骤:
[0049]A)提取目标应用的apk文件中至少一种与行为相关的信息;其中,apk为安卓安装包;
[0050]B)提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
[0051]C)根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。
[0052]通过以上方法,就算应用的apk文件的内容稍微有所变化,只要得到的特征值与分类信息库中已知类别相应的特征值相同,便可认为两者是同一类别,可以有效的识别相似的应用。
[0053]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054]实施例1
[0055]本发明实施例提供的一种安卓应用的识别方法的流程图如图1所示,该方法可以包括以下步骤:
[0056]SlOl,提取目标应用的apk文件中至少一种与行为相关的信息;
[0057]安卓系统应用的文件格式为apk,即安卓安装包(Android Package)。apk文件是把安卓sdk (Software Development Kit,软件开发工具包)编译的工程打包成一个安装程序文件。apk文件其实是zip格式的压缩文件,但后缀名被修改为apk,通过解压缩文件解压后,可以得到一个apk文件夹,其中包含若干子文件,例如,manifest子文件、dex子文件、Iib子文件等。
[0058]本发明实施例利用安卓应用的apk文件中与行为相关的信息来对目标应用进行识别,这些信息中包含实现该应用的功能所需要的操作。可以理解的是,如果两个应用所做的操作相同,便可认为这两个应用是一类相似的应用。
[0059]在apk文件的子文件中包含了目标应用的所有信息,在进行步骤SlOl之前,可以对各个子文件进行整理,提高识别的效率。例如,对manifest子文件,可以预先对其中包含的信息进行删除、合并等操作,仅留下该子文件中与行为相关的信息。
[0060]经过对apk文件各个子文件的整理,可以得到apk文件的各个子文件中与行为相关的信息,这些信息可以包括:
[0061]I )apk 中 manifest 子文件中的信息,包括:package 信息、service 信息、receiver信息、activity信息和permiss1n信息;
[0062]II) apk中dex子文件中的信息,包括:dexheader信息、datamap信息、对应manifest文件中的service对应类入口 OpCode信息、对应manifest文件中的receiver对应类入口 OpCode信息、对应manifest文件中的activity对应类入口 OpCode信息;
[0063]IIDapk中dex子文件中的字符串信息、类名信息、包名信息;apk中Iib目录下so文件名信息;apk中assets目录下的文件名信息;apk中res/raw目录下的文件名信息;apk中的证书?目息。
[0064]在实际应用中,根据不同的需要,可以对上述与行为相关的信息进行随机组合,来作为对目标应用进行识别的依据。在apk文件的各个子文件中,第I )类信息和第II)类信息包含的是apk文件中较为高层的信息,第ΠΙ)类信息是apk文件中较为底层的信息;如果选取第III)类中的信息作为分类依据,会使得分类较为严格,如果选取第I )类信息和第II)类信息作为分类依据,会使得分类较为宽泛。
[0065]可以理解的是,如果选取多条第I )类信息和第II)类信息,也会使分类更为严格。在应用中,可以根据实际需要进行选择。
[0066]S102,提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
[0067]操作码是一种指令序列,计算机程序中所规定的要执行操作的那一部分指令或字段用代码表示出来,就是操作码。安卓应用也是一种计算机程序,其功能的实现需要一步步的操作,这些具体的操作是通过操作码来体现的。
[0068]因此,所述与行为相关的信息的操作码可以作为这些信息的特征点,进一步可以作为对安卓应用进行识别的依据。
[0069]以dex子文件中、对应manifest文件中的service对应类入口 OpCode信息为例,对S102做具体的说明。
[0070]如图2所示,通过反编译工具,可以获取到上述信息中函数名为service:com.TZhjDDffr.ShwIaLp095958.PushService.0nStart: (Landroid/content/Intert; I) V 的函数的字节码,图中只显示了一部分该函数字节码的内容,仅作示意性说明。
[0071]如图2所示,根据安卓程序dalvik虚拟机的编码规则,invoke-virtual对应的操作码的十六进制表不为6e, move-result-object对应的操作码为Oc,以此类推,可以获取所述函数的全部操作码为:6e0c......。
[0072]对于所提取的其他与行为相关的信息,均可采用上述方法获得所述信息对应的操作码。需要说明的是,本发明中的字节码可以通过任意一种现有技术得到,本发明对此不做限制。
[0073]在得到操作码之后,可以对所得到的操作码进行处理,得到特征值。得到特征值的方法可以包括:计算操作码的哈希值、md5值,或使用操作码的二进制表示。该处理方法可以是任何一种现有技术,本发明对此不作限制。
[0074]特别地,可以取操作码的原始数据作为特征值。
[0075]S103,根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。
[0076]操作码体现了安卓应用的具体行为,如果两个应用的操作码相同,意味着两者做了相同的操作,就可以认为两个应用为同一类别。可以理解的是,步骤S102得到的特征值是在操作码的基础上得到的数值,可以体现操作码的特征,但是更方便比较。
[0077]所述已知类别的应用,可以为预设的分类信息库中任意类别已知的应用,预设的分类信息库可以是任何包含若干已知类别应用的分类信息库,本发明对此不做限制。
[0078]实施例2
[0079]当需要对大量的应用进行分类,但目前没有所需的分类信息库时,可以取其中的一部分应用,将这部分应用作为目标样本群,并且对目标样本群进行分析,建立新的分类信息库,其余的应用即可使用本发明提供的方进行归类。图3为本发明实施例提供的一种分类信息库的建立方法流程图,下面结合图3,对分类库的建立方法做详细的说明,该方法可以包括以下步骤:
[0080]S201,选取apk文件中至少一种与行为相关的信息,将所选取的信息设定为分类信息;
[0081]本步骤中,与行为相关的信息的选择是随机的,可以是步骤SlOl中所述与行为相关的信息中的任意一种,也可以是这些信息的任意组合。
[0082]S202,根据所设定的分类信息,针对目标样本群中的每一个应用样本,提取该应用样本apk文件中分类信息的操作码,并对所述操作码进行处理,得到特征值;
[0083]当有大量样本需要分类的时候,为了保证结果的可靠性,目标样本群中包含的应用数量占所有应用数量的百分比应该大于第一预设值。例如,如果有10000个应用需要分类,可以选择其中十分之一,即1000个应用作 为目标样本群进行分析。
[0084]可以理解的是,目标样本群的数量并不是固定的,可以根据实际情况调整。
[0085]S203,将特征值相同的应用归为一类,得到分类结果;
[0086]通过本发明实施例1中的分析,如果两个应用的特征值相同,则认为两者是同一类,以此类推,对于多个应用,如果这些应用的特征值相同,则可以认为这些应用属于同一类别。
[0087]经过步骤S201-S203,可以得到分类结果,但是该分类结果是否可靠,需要对分类结果进行进一步的分析。如图4所示,在步骤S203之后,本发明提供的建立分类信息库的方法还可以包括步骤S204 ;
[0088]S204,针对每一类应用,选取一组应用进行分析;如果所述一组应用中包含的应用具有相同的功能,则保存所述分类结果;如果所述一组应用中包含的应用具有不同的功能,则重新选取至少一种与行为相关的信息,并将所述信息设定为分类信息,重复步骤S202到步骤S204 ;其中,所述一组应用中的应用数量不小于预设值。
[0089]以包含1000个应用的目标样本群为例,如果经过步骤S201到S203之后,目标样本群的1000个样本被分为了 50类,那么可以在每一类中选取一定数量的应用进行分析,以此来验证分类的结果是否正确。为了保证验证结果的可靠性,每一类应用需要选取的应用数量必须大于第二预设值,该预设值可以根据实际需要确定。例如,如果一类应用中包含了15个应用,可以选取其中5个应用进行分析。
[0090]可以理解的是,如果每一类中包含的应用过少,可以选择包含应用数量较多的类别进行分析,如果经过分析之后该分类的结果是可靠的,那么可以认为包含应用数量较少的类别的分类结果也是可靠的。可以理解的是,需要进行分析的类别数量占总类别数的百分比需要不小于第三预设值,才可认为该分析结果是可靠的;例如,只有对二分之一以上的类别进行分析,才可认为分析结果是可靠的。
[0091]具体地,如果目标应用群中的应用数量为1000,经过分类之后被分为50类,那么,可以选取包含应用数量不小于15的类别进行分析,并且包含应用数量大于15的类别数量必须不小于25,才可认为该分类结果是可靠的,否则需要重新进行分类。
[0092]需要说明的是,上述第一预设值、第二预设值和第三预设值的具体数值的选取可以根据实际情况选择,本发明实施例中提出的数值仅作示意性说明,并不对本发明构成限制。
[0093]本发明实施例利用对应用功能的分析来验证分类结果的可靠性,例如:如果经过分析,某一类被选取出的5个应用中,其中2个应用的功能是“截取用户的网上银行密码”,剩余3个应用的功能是“截取用户的支付密码”,5个应用有两个不同的功能,则认为该分类结果不可靠。该分析方法可以是任何一种现有技术,本发明对此不做限制。
[0094]经过分析之后,如果分类结果被认为不可靠,则需要重新选取一组与行为相关的信息,将重新选取的信息作为分类信息,进行步骤S202到S204。
[0095]可以理解的是,通过重复进行以上步骤,可以获得多种可靠的分类,可以根据需要选择合适的分类结果,并以此建立分类信息库。
[0096]建立分类信息库之后,对于目标应用群之外的应用,就可以利用所建立的分类信息库,采用本发明提供的应用识别方法对其进行分类,具体的步骤基本如实施例1所述。但是,在本实施例中,可以对目标应用直接提取分类信息库的分类信息,对该分类信息提取操作码,并对提取的操作码进行处理,得到特征值;然后将得到的特征值与分类信息库中已知类别的相应特征值做比较,如果目标应用的特征值和分类信息库中已知类别应用的特征值相同,则可认为目标应用属于该类应用。
[0097]特别地,如果目标应用的特征值和分类信息库中任一类应用的相应特征值都不相同,则可以在分类信息库中建立一个新类别。
[0098]通过以上方法,可以识别相似的应用,在对新的应用进行识别的时候,只需要提取相应的操作码,并进行处理,得到特征值,将得到的特征值和已知类别的相应特征值进行比较即可。并且在需要对大量样本进行分类的时候,只需要对其中一部分进行分析,建立分类信息库,并不需要对每一个应用进行具体的分析,相应的也提高了识别的效率。
[0099]实施例3
[0100]本发明提供的安卓应用的识别方法可以应用于移动终端安全领域,尤其在病毒查杀方面。针对这种应用场合,对该方法进行具体的说明。如图5所示,该方法可以包括:
[0101]S301,提取目标应用的apk文件中至少一种与行为相关的信息;
[0102]目前存在的移动终端病毒在某些行为上有一定相似,可以从病毒文件中与行为相关的信息上体现出来。本发明实施例提供一组与行为相关的信息作为优选信息,包括:
[0103]apk中manifest子文件中的三种信息,包括:service信息、receiver信息、activity /[言息和 permiss1n /[言息;和,
[0104]apk中dex子文件中的三种信息,包括:对应manifest文件中的service对应类入口 OpCode信息、对应manifest文件中的receiver对应类入口 OpCode信息、对应manifest文件中的activity对应类入口 OpCode信息。
[0105]从目标应用的apk文件中提取以上六条与行为相关的信息,并根据这六条信息对目标应用进行识别。
[0106]S302,提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
[0107]S302的内容与S102的内容基本相同,在此不做赘述。
[0108]S303,根据预设的病毒信息库,将所述特征值与病毒文件的相应特征值作比较;如果所述特征值与所述病毒文件的相应特征值相同,则确定所述目标应用对应的apk文件为病毒文件;
[0109]优选的,S303还可以包括:如果所述目标应用的特征值与所述病毒信息库中任意病毒文件的相应特征值不同,则判断所述目标应用中是否包含病毒,如果是,则在所述病毒信息库中新建一个病毒类别。
[0110]需要说明的是,判断目标应用中是否包含病毒可以用任何一种现有技术实现,本发明对此不做具体限制。
[0111]通过上述方法,就算病毒文件内容稍有变化,也能够将其识别出来,增强了病毒的查杀效果,提高了移动终端的安全性。
[0112]本发明还提供了一种安卓应用的识别装置,该装置的结构示意图如图6所示,可以包括:信息提取模块001、操作码处理模块002和识别模块003 ;其中。
[0113]信息提取模块001,用于提取目标应用的apk文件中至少一种与行为相关的信息;
[0114]apk为安卓安装包,经过解压缩,可以看出apk文件中包含多个子文件。在提取所需信息之前,可以对这些子文件进行整理,只保留与行为相关的信息,以提高识别效率。
[0115]操作码处理模块002,用于提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
[0116]操作码体现了安卓应用的具体行为,如果两个安卓应用做了相同的操作,可以认为两者是同一类相似的应用。特征值体现了操作码的特征,因此也可以作为识别的依据。
[0117]得到特征值的方法可以包括:计算操作码的哈希值、md5值,或使用操作码的二进制表示。该处理方法可以是任何一种现有技术,本发明对此不作限制。
[0118]特别地,可以将操作码的原始数值作为特征值。
[0119]识别模块003,用于根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类;
[0120]预设的分类信息库,可以是任意已有的分类信息库,也可以是根据本发明提供的安卓应用的识别方法建立的分类信息库,具体建立方法包括:
[0121]a)选取apk文件中至少一种与行为相关的信息,将所选取的信息设定为分类信息;
[0122]b)根据所设定的分类信息,针对目标样本 群中的每一个应用样本,提取该应用样本apk文件中分类信息的操作码,并对所述操作码进行处理,得到特征值;
[0123]c)将特征值相同的应用归为一类,得到分类结果。
[0124]根据上述步骤,可以建立分类信息库,但是c)中得到的分类结果不一定可靠,因此,建立分类信息库的方法还可以包括:
[0125]d)针对每一类应用,选取一组应用进行分析;如果所述一组应用中包含的应用具有相同的功能,则保存所述分类结果;如果所述一组应用中包含的应用具有不同的功能,则重新选取至少一种与行为相关的信息,并将所述信息设定为分类信息,重复b)到d);其中,所述一组应用中的应用数量不小于预设值。
[0126]可以理解的是,如果预设的分类信息库是采用上述方法建立的,那么,信息提取模块中提取的信息可以是预设的分类信息库的分类信息;相应地,操作码处理模块中提取的操作码为所提取的分类信息的操作码。
[0127]另外,目标应用的特征值有时候与预设的分类信息库中任意已知类别应用的相应特征值都不相同,针对这种情况,识别模块可以进一步用于:如果所述目标应用的特征值与所述已知类别的相应特征值不相同,则在分类信息库中新建一个类别。
[0128]对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0129]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0130]本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:R0M/RAM、磁碟、光盘等。
[0131]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1.一种安卓应用的识别方法,其特征在于,包括: A)提取目标应用的apk文件中至少一种与行为相关的信息;其中,apk为安卓安装包; B)提取所述信息的操作码,并对所述操作码进行处理,得到特征值; C)根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。2.如权利要求1所述的方法,其特征在于,所述分类信息库的建立方法包括: a)选取apk文件中至少一种与行为相关的信息,将所选取的信息设定为分类信息; b)根据所设定的分类信息,针对目标样本群中的每一个应用样本,提取该应用样本apk文件中分类信息的操作码,并对所述操作码进行处理,得到特征值; c)将特征值相同的应用归为一类,得到分类结果。3.如权利要求2所述的方法,其特征在于,在c)步骤之后,还包括: d)针对每一类应用,选取一组应用进行分析;如果所述一组应用中包含的应用具有相同的功能,则保存所述分类结果;如果所述一组应用中包含的应用具有不同的功能,则重新选取至少一种与行为相关的信息,并将所述信息设定为分类信息,重复b)到d);其中,所述一组应用中的应用数量不小于预设值。4.如权利要求2或3所述的方法,其特征在于: 所述A)为:从目标应用的apk文件中提取预设的分类信息库的分类信息; 所述B)为:提取所述分类信息的操作码,并对所述操作码进行处理,得到特征值。5.如权利要求1所述的方法,其特征在于,所述C)步骤进一步包括:如果所述目标应用的特征值与所述分类信息库中任意已知类别的相应特征值不相同,则在所述分类信息库中新建一个类别。6.如权利要求1所述的方法,其特征在于: 所述C)为:根据预设的病毒信息库,将所述特征值与病毒文件的相应特征值作比较;如果所述特征值与所述病毒文件的相应特征值相同,则确定所述目标应用对应的apk文件为病毒文件。7.如权利要求6所述的方法,其特征在于,所述C)进一步包括:如果所述目标应用的特征值与所述病毒信息库中任意病毒文件的相应特征值不同,则判断所述目标应用中是否包含病毒,如果是,则在所述病毒信息库中新建一个病毒类别。8.一种安卓应用的识别装置,其特征在于,包括:信息提取模块、操作码处理模块和识别模块;其中, 所述信息提取模块用于提取目标应用的apk文件中至少一种与行为相关的信息,apk为安卓安装包; 所述操作码处理模块用于提取所述信息的操作码,并对所述操作码进行处理,得到特征值; 所述识别模块用于根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。9.如权利要求8所述的装置,其特征在于,所述识别模块使用的分类信息库的建立方法,包括: a)选取apk文件中至少一种与行为相关的信息,将所选取的信息设定为分类信息; b)根据所设定的分类信息,针对目标样本群中的每一个应用样本,提取该应用样本apk文件中分类信息的操作码,并对所述操作码进行处理,得到特征值; c)将特征值相同的应用归为一类,得到分类结果。10.如权利要求9所述的装置,其特征在于,所述识别模块使用的分类信息库的建立方法,在c)之后,还包括: d)针对每一类应用,选取一组应用进行分析;如果所述一组应用中包含的应用具有相同的功能,则保存所述分类结果;如果所述一组应用中包含的应用具有不同的功能,则重新选取至少一种与行为相关的信息,并将所述信息设定为分类信息,重复b)到d);其中,所述一组应用中的应用数量不小于预设值。11.如权利要求9或10所述的装置,其特征在于: 所述信息提取模块具体用于:从目标应用的apk文件中提取预设的分类信息库的分类信息; 所述操作码处理模块具体用于:提取所述分类信息的操作码,并对所述操作码进行处理,得到特征值。12.如权利要求8所述的装置,其特征在于,所述识别模块进一步用于:如果所述目标应用的特征值与所述分类信息库中任意已知类别的相应特征值不相同,则在所述分类信息库中新建一个类别。13.如权利要求8所述的装置,其特征在于,所述识别模块具体用于:根据预设的病毒信息库,将所述特征值与病毒文件的相应特征值作比较;如果所述特征值与所述病毒文件的相应特征值相同,则确定所述目标应用对应的apk文件为病毒文件。14.如权利要求13所述的装置,其特征在于,所述识别模块进一步用于:如果所述目标应用的特征值与所述病毒信息库中任意病毒文件的相应特征值不同,则判断所述目标应用中是否包含病毒,如果是,则在所述病毒信息库中新建一个病毒类别。
【专利摘要】本发明公开了一种安卓应用的识别方法及装置。一种安卓应用的识别方法,包括:提取目标应用的apk文件中至少一种与行为相关的信息;其中,apk为安卓安装包;提取所述信息的操作码,并对所述操作码进行处理,得到特征值;根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。一种安卓应用的识别装置,包括:信息提取模块、操作码处理模块和识别模块。本发明能够有效识别相似的应用,给用户提供了便利。
【IPC分类】G06F9/44
【公开号】CN104899009
【申请号】CN201410075170
【发明人】苏海峰, 袁国庆, 舒鑫, 罗斌
【申请人】可牛网络技术(北京)有限公司
【公开日】2015年9月9日
【申请日】2014年3月3日

最新回复(0)