CN104899009A - 一种安卓应用的识别方法及装置 - Google Patents
一种安卓应用的识别方法及装置 Download PDFInfo
- Publication number
- CN104899009A CN104899009A CN201410075170.6A CN201410075170A CN104899009A CN 104899009 A CN104899009 A CN 104899009A CN 201410075170 A CN201410075170 A CN 201410075170A CN 104899009 A CN104899009 A CN 104899009A
- Authority
- CN
- China
- Prior art keywords
- application
- information
- eigenwert
- classified information
- classified
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种安卓应用的识别方法及装置。一种安卓应用的识别方法,包括:提取目标应用的apk文件中至少一种与行为相关的信息;其中,apk为安卓安装包;提取所述信息的操作码,并对所述操作码进行处理,得到特征值;根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。一种安卓应用的识别装置,包括:信息提取模块、操作码处理模块和识别模块。本发明能够有效识别相似的应用,给用户提供了便利。
Description
技术领域
本发明涉及移动终端领域,特别涉及一种安卓应用识别方法及装置。
背景技术
随着科学技术的发展,移动终端的出现极大的丰富了人们的日常生活。平板电脑、智能手机等移动终端以其方便携带,并且功能多样的优点得到了广泛的应用。移动终端的核心是操作***,如今主流的移动终端操作***有两种,一种为iOS操作***,另一种为安卓操作***。
由于安卓***是开放源代码的操作***,节省了厂商的开发成本,也便于在此基础上开发该***的应用,因此一经推出便发展得极为迅速,各种应用层出不穷。但是,这些应用中存在许多相似性很高的应用,让用户在寻找自己需要的应用时,浪费了大量的时间。将这些相似的应用识别出来,并对其进行归类,可以帮助用户解决这个问题。
安卓***应用的文件一般采用apk的格式。一般来说,通过对apk文件内容的识别,可以将应用文件识别出来。目前存在两种方式可以对apk文件的内容进行识别:
一种方式是使用文件的md5来识别apk文件。md5是一种文件加密方法,对每一个文件,会产生一个相应的“文件指纹”,所有内容不相同文件的“文件指纹”都不相同。因此只要文件内容稍作变化,其md5便会不同。
另一种方式是使用sign_md5方法来识别apk文件,这种方法可以对重新命名、但文件内容不变的文件加以识别,比上一方法覆盖的范围广。但是,只要向apk文件中增添无用文件,其sign_md5特征就会改变。假如文件内容稍有变化,便会认为该应用为其他种类。
以上两种方法都能通过对apk文件内容的识别来对应用进行识别,但是一般来说,很多相似的文件内容并不完全相同,而是有微小的变化,因此使用上述两种方式无法识别出相似的应用。
发明内容
为了解决上述问题,本发明提供了一种安卓应用的识别方法及装置,以对相似的安卓应用进行识别,技术方案如下:
一种安卓应用的识别方法,包括:
A)提取目标应用的apk文件中至少一种与行为相关的信息;其中,apk为安卓安装包;
B)提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
C)根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。
所述分类信息库的建立方法包括:
a)选取apk文件中至少一种与行为相关的信息,将所选取的信息设定为分类信息;
b)根据所设定的分类信息,针对目标样本群中的每一个应用样本,提取该应用样本apk文件中分类信息的操作码,并对所述操作码进行处理,得到特征值;
c)将特征值相同的应用归为一类,得到分类结果。
在c)步骤之后,还包括:
d)针对每一类应用,选取一组应用进行分析;如果所述一组应用中包含的应用具有相同的功能,则保存所述分类结果;如果所述一组应用中包含的应用具有不同的功能,则重新选取至少一种与行为相关的信息,并将所述信息设定为分类信息,重复b)到d);其中,所述一组应用中的应用数量不小于预设值。
较佳的,所述A)为:从目标应用的apk文件中提取预设的分类信息库的分类信息;
所述B)为:提取所述分类信息的操作码,并对所述操作码进行处理,得到特征值。
所述C)步骤进一步包括:如果所述目标应用的特征值与所述分类信息库中任意已知类别的相应特征值不相同,则在所述分类信息库中新建一个类别。
较佳的,所述C)为:根据预设的病毒信息库,将所述特征值与病毒文件的相应特征值作比较;如果所述特征值与所述病毒文件的相应特征值相同,则确定所述目标应用对应的apk文件为病毒文件。
所述C)进一步包括:如果所述目标应用的特征值与所述病毒信息库中任意病毒文件的相应特征值不同,则判断所述目标应用中是否包含病毒,如果是,则在所述病毒信息库中新建一个病毒类别。
本发明还提供了一种安卓应用的识别装置,包括:信息提取模块、操作码处理模块和识别模块;其中,
所述信息提取模块用于提取目标应用的apk文件中至少一种与行为相关的信息,apk为安卓安装包;
所述操作码处理模块用于提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
所述识别模块用于根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。
所述识别模块使用的分类信息库的建立方法,包括:
a)选取apk文件中至少一种与行为相关的信息,将所选取的信息设定为分类信息;
b)根据所设定的分类信息,针对目标样本群中的每一个应用样本,提取该应用样本apk文件中分类信息的操作码,并对所述操作码进行处理,得到特征值;
c)将特征值相同的应用归为一类,得到分类结果。
所述识别模块使用的分类信息库的建立方法,在c)之后,还包括:
d)针对每一类应用,选取一组应用进行分析;如果所述一组应用中包含的应用具有相同的功能,则保存所述分类结果;如果所述一组应用中包含的应用具有不同的功能,则重新选取至少一种与行为相关的信息,并将所述信息设定为分类信息,重复b)到d);其中,所述一组应用中的应用数量不小于预设值。
较佳的,所述信息提取模块具体用于:从目标应用的apk文件中提取预设的分类信息库的分类信息;
所述操作码处理模块具体用于:提取所述分类信息的操作码,并对所述操作码进行处理,得到特征值。
所述识别模块进一步用于:如果所述目标应用的特征值与所述分类信息库中任意已知类别的相应特征值不相同,则在所述分类信息库中新建一个类别。
所述识别模块具体用于:根据预设的病毒信息库,将所述特征值与病毒文件的相应特征值作比较;如果所述特征值与所述病毒文件的相应特征值相同,则确定所述目标应用对应的apk文件为病毒文件。
所述识别模块进一步用于:如果所述目标应用的特征值与所述病毒信息库中任意病毒文件的相应特征值不同,则判断所述目标应用中是否包含病毒,如果是,则在所述病毒信息库中新建一个病毒类别。
本发明实施例中,对目标应用提取该应用的apk文件中包含的至少一种与行为相关的信息,对所述信息提取其操作码,并对所述操作码进行处理,得到特征值;然后将所得到的特征值与预设的分类信息库中已知类别应用的相应特征值做比较,如果所述特征值与所述已知类别应用的相应特征值相同,则确定该应用与已知应用为一类。
通过以上方法,就算应用的apk文件的内容稍微有所变化,只要得到的特征值与已知类别相应的特征值相同,便可认为两者是同一类别,能够有效的识别相似的应用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的安卓应用的识别方法的第一种流程图;
图2为本发明实施例提供的字节码片段的示意图;
图3为本发明实施例提供的分类信息库的建立方法的第一种流程图;
图4为本发明实施例提供的分类信息库的建立方法的第二种流程图;
图5为本发明实施例提供的安卓应用的识别方法的第二种流程图;
图6为本发明实施例提供的安卓应用的识别装置的结构示意图。
具体实施方式
首先对本发明实施例一种安卓应用识别方法进行说明,该方法包括以下步骤:
A)提取目标应用的apk文件中至少一种与行为相关的信息;其中,apk为安卓安装包;
B)提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
C)根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。
通过以上方法,就算应用的apk文件的内容稍微有所变化,只要得到的特征值与分类信息库中已知类别相应的特征值相同,便可认为两者是同一类别,可以有效的识别相似的应用。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供的一种安卓应用的识别方法的流程图如图1所示,该方法可以包括以下步骤:
S101,提取目标应用的apk文件中至少一种与行为相关的信息;
安卓***应用的文件格式为apk,即安卓安装包(Android Package)。apk文件是把安卓sdk(Software Development Kit,软件开发工具包)编译的工程打包成一个安装程序文件。apk文件其实是zip格式的压缩文件,但后缀名被修改为apk,通过解压缩文件解压后,可以得到一个apk文件夹,其中包含若干子文件,例如,manifest子文件、dex子文件、lib子文件等。
本发明实施例利用安卓应用的apk文件中与行为相关的信息来对目标应用进行识别,这些信息中包含实现该应用的功能所需要的操作。可以理解的是,如果两个应用所做的操作相同,便可认为这两个应用是一类相似的应用。
在apk文件的子文件中包含了目标应用的所有信息,在进行步骤S101之前,可以对各个子文件进行整理,提高识别的效率。例如,对manifest子文件,可以预先对其中包含的信息进行删除、合并等操作,仅留下该子文件中与行为相关的信息。
经过对apk文件各个子文件的整理,可以得到apk文件的各个子文件中与行为相关的信息,这些信息可以包括:
Ⅰ)apk中manifest子文件中的信息,包括:package信息、service信息、receiver信息、activity信息和permission信息;
Ⅱ)apk中dex子文件中的信息,包括:dexheader信息、datamap信息、对应manifest文件中的service对应类入口OpCode信息、对应manifest文件中的receiver对应类入口OpCode信息、对应manifest文件中的activity对应类入口OpCode信息;
Ⅲ)apk中dex子文件中的字符串信息、类名信息、包名信息;apk中lib目录下so文件名信息;apk中assets目录下的文件名信息;apk中res/raw目录下的文件名信息;apk中的证书信息。
在实际应用中,根据不同的需要,可以对上述与行为相关的信息进行随机组合,来作为对目标应用进行识别的依据。在apk文件的各个子文件中,第Ⅰ)类信息和第Ⅱ)类信息包含的是apk文件中较为高层的信息,第Ⅲ)类信息是apk文件中较为底层的信息;如果选取第Ⅲ)类中的信息作为分类依据,会使得分类较为严格,如果选取第Ⅰ)类信息和第Ⅱ)类信息作为分类依据,会使得分类较为宽泛。
可以理解的是,如果选取多条第Ⅰ)类信息和第Ⅱ)类信息,也会使分类更为严格。在应用中,可以根据实际需要进行选择。
S102,提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
操作码是一种指令序列,计算机程序中所规定的要执行操作的那一部分指令或字段用代码表示出来,就是操作码。安卓应用也是一种计算机程序,其功能的实现需要一步步的操作,这些具体的操作是通过操作码来体现的。
因此,所述与行为相关的信息的操作码可以作为这些信息的特征点,进一步可以作为对安卓应用进行识别的依据。
以dex子文件中、对应manifest文件中的service对应类入口OpCode信息为例,对S102做具体的说明。
如图2所示,通过反编译工具,可以获取到上述信息中函数名为service:com.TZhjDDWr.ShwIaLpO95958.PushService.onStart:(Landroid/content/Intert;I)V的函数的字节码,图中只显示了一部分该函数字节码的内容,仅作示意性说明。
如图2所示,根据安卓程序dalvik虚拟机的编码规则,invoke-virtual对应的操作码的十六进制表示为6e,move-result-object对应的操作码为0c,以此类推,可以获取所述函数的全部操作码为:6e0c……。
对于所提取的其他与行为相关的信息,均可采用上述方法获得所述信息对应的操作码。需要说明的是,本发明中的字节码可以通过任意一种现有技术得到,本发明对此不做限制。
在得到操作码之后,可以对所得到的操作码进行处理,得到特征值。得到特征值的方法可以包括:计算操作码的哈希值、md5值,或使用操作码的二进制表示。该处理方法可以是任何一种现有技术,本发明对此不作限制。
特别地,可以取操作码的原始数据作为特征值。
S103,根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类。
操作码体现了安卓应用的具体行为,如果两个应用的操作码相同,意味着两者做了相同的操作,就可以认为两个应用为同一类别。可以理解的是,步骤S102得到的特征值是在操作码的基础上得到的数值,可以体现操作码的特征,但是更方便比较。
所述已知类别的应用,可以为预设的分类信息库中任意类别已知的应用,预设的分类信息库可以是任何包含若干已知类别应用的分类信息库,本发明对此不做限制。
实施例2
当需要对大量的应用进行分类,但目前没有所需的分类信息库时,可以取其中的一部分应用,将这部分应用作为目标样本群,并且对目标样本群进行分析,建立新的分类信息库,其余的应用即可使用本发明提供的方进行归类。图3为本发明实施例提供的一种分类信息库的建立方法流程图,下面结合图3,对分类库的建立方法做详细的说明,该方法可以包括以下步骤:
S201,选取apk文件中至少一种与行为相关的信息,将所选取的信息设定为分类信息;
本步骤中,与行为相关的信息的选择是随机的,可以是步骤S101中所述与行为相关的信息中的任意一种,也可以是这些信息的任意组合。
S202,根据所设定的分类信息,针对目标样本群中的每一个应用样本,提取该应用样本apk文件中分类信息的操作码,并对所述操作码进行处理,得到特征值;
当有大量样本需要分类的时候,为了保证结果的可靠性,目标样本群中包含的应用数量占所有应用数量的百分比应该大于第一预设值。例如,如果有10000个应用需要分类,可以选择其中十分之一,即1000个应用作为目标样本群进行分析。
可以理解的是,目标样本群的数量并不是固定的,可以根据实际情况调整。
S203,将特征值相同的应用归为一类,得到分类结果;
通过本发明实施例1中的分析,如果两个应用的特征值相同,则认为两者是同一类,以此类推,对于多个应用,如果这些应用的特征值相同,则可以认为这些应用属于同一类别。
经过步骤S201-S203,可以得到分类结果,但是该分类结果是否可靠,需要对分类结果进行进一步的分析。如图4所示,在步骤S203之后,本发明提供的建立分类信息库的方法还可以包括步骤S204;
S204,针对每一类应用,选取一组应用进行分析;如果所述一组应用中包含的应用具有相同的功能,则保存所述分类结果;如果所述一组应用中包含的应用具有不同的功能,则重新选取至少一种与行为相关的信息,并将所述信息设定为分类信息,重复步骤S202到步骤S204;其中,所述一组应用中的应用数量不小于预设值。
以包含1000个应用的目标样本群为例,如果经过步骤S201到S203之后,目标样本群的1000个样本被分为了50类,那么可以在每一类中选取一定数量的应用进行分析,以此来验证分类的结果是否正确。为了保证验证结果的可靠性,每一类应用需要选取的应用数量必须大于第二预设值,该预设值可以根据实际需要确定。例如,如果一类应用中包含了15个应用,可以选取其中5个应用进行分析。
可以理解的是,如果每一类中包含的应用过少,可以选择包含应用数量较多的类别进行分析,如果经过分析之后该分类的结果是可靠的,那么可以认为包含应用数量较少的类别的分类结果也是可靠的。可以理解的是,需要进行分析的类别数量占总类别数的百分比需要不小于第三预设值,才可认为该分析结果是可靠的;例如,只有对二分之一以上的类别进行分析,才可认为分析结果是可靠的。
具体地,如果目标应用群中的应用数量为1000,经过分类之后被分为50类,那么,可以选取包含应用数量不小于15的类别进行分析,并且包含应用数量大于15的类别数量必须不小于25,才可认为该分类结果是可靠的,否则需要重新进行分类。
需要说明的是,上述第一预设值、第二预设值和第三预设值的具体数值的选取可以根据实际情况选择,本发明实施例中提出的数值仅作示意性说明,并不对本发明构成限制。
本发明实施例利用对应用功能的分析来验证分类结果的可靠性,例如:如果经过分析,某一类被选取出的5个应用中,其中2个应用的功能是“截取用户的网上银行密码”,剩余3个应用的功能是“截取用户的支付密码”,5个应用有两个不同的功能,则认为该分类结果不可靠。该分析方法可以是任何一种现有技术,本发明对此不做限制。
经过分析之后,如果分类结果被认为不可靠,则需要重新选取一组与行为相关的信息,将重新选取的信息作为分类信息,进行步骤S202到S204。
可以理解的是,通过重复进行以上步骤,可以获得多种可靠的分类,可以根据需要选择合适的分类结果,并以此建立分类信息库。
建立分类信息库之后,对于目标应用群之外的应用,就可以利用所建立的分类信息库,采用本发明提供的应用识别方法对其进行分类,具体的步骤基本如实施例1所述。但是,在本实施例中,可以对目标应用直接提取分类信息库的分类信息,对该分类信息提取操作码,并对提取的操作码进行处理,得到特征值;然后将得到的特征值与分类信息库中已知类别的相应特征值做比较,如果目标应用的特征值和分类信息库中已知类别应用的特征值相同,则可认为目标应用属于该类应用。
特别地,如果目标应用的特征值和分类信息库中任一类应用的相应特征值都不相同,则可以在分类信息库中建立一个新类别。
通过以上方法,可以识别相似的应用,在对新的应用进行识别的时候,只需要提取相应的操作码,并进行处理,得到特征值,将得到的特征值和已知类别的相应特征值进行比较即可。并且在需要对大量样本进行分类的时候,只需要对其中一部分进行分析,建立分类信息库,并不需要对每一个应用进行具体的分析,相应的也提高了识别的效率。
实施例3
本发明提供的安卓应用的识别方法可以应用于移动终端安全领域,尤其在病毒查杀方面。针对这种应用场合,对该方法进行具体的说明。如图5所示,该方法可以包括:
S301,提取目标应用的apk文件中至少一种与行为相关的信息;
目前存在的移动终端病毒在某些行为上有一定相似,可以从病毒文件中与行为相关的信息上体现出来。本发明实施例提供一组与行为相关的信息作为优选信息,包括:
apk中manifest子文件中的三种信息,包括:service信息、receiver信息、activity信息和permission信息;和,
apk中dex子文件中的三种信息,包括:对应manifest文件中的service对应类入口OpCode信息、对应manifest文件中的receiver对应类入口OpCode信息、对应manifest文件中的activity对应类入口OpCode信息。
从目标应用的apk文件中提取以上六条与行为相关的信息,并根据这六条信息对目标应用进行识别。
S302,提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
S302的内容与S102的内容基本相同,在此不做赘述。
S303,根据预设的病毒信息库,将所述特征值与病毒文件的相应特征值作比较;如果所述特征值与所述病毒文件的相应特征值相同,则确定所述目标应用对应的apk文件为病毒文件;
优选的,S303还可以包括:如果所述目标应用的特征值与所述病毒信息库中任意病毒文件的相应特征值不同,则判断所述目标应用中是否包含病毒,如果是,则在所述病毒信息库中新建一个病毒类别。
需要说明的是,判断目标应用中是否包含病毒可以用任何一种现有技术实现,本发明对此不做具体限制。
通过上述方法,就算病毒文件内容稍有变化,也能够将其识别出来,增强了病毒的查杀效果,提高了移动终端的安全性。
本发明还提供了一种安卓应用的识别装置,该装置的结构示意图如图6所示,可以包括:信息提取模块001、操作码处理模块002和识别模块003;其中。
信息提取模块001,用于提取目标应用的apk文件中至少一种与行为相关的信息;
apk为安卓安装包,经过解压缩,可以看出apk文件中包含多个子文件。在提取所需信息之前,可以对这些子文件进行整理,只保留与行为相关的信息,以提高识别效率。
操作码处理模块002,用于提取所述信息的操作码,并对所述操作码进行处理,得到特征值;
操作码体现了安卓应用的具体行为,如果两个安卓应用做了相同的操作,可以认为两者是同一类相似的应用。特征值体现了操作码的特征,因此也可以作为识别的依据。
得到特征值的方法可以包括:计算操作码的哈希值、md5值,或使用操作码的二进制表示。该处理方法可以是任何一种现有技术,本发明对此不作限制。
特别地,可以将操作码的原始数值作为特征值。
识别模块003,用于根据预设的分类信息库,将所述特征值与所述分类信息库中已知类别应用的相应特征值作比较;如果所述特征值与所述已知类别的相应特征值相同,则确定所述目标应用与所述已知类别应用为同一类;
预设的分类信息库,可以是任意已有的分类信息库,也可以是根据本发明提供的安卓应用的识别方法建立的分类信息库,具体建立方法包括:
a)选取apk文件中至少一种与行为相关的信息,将所选取的信息设定为分类信息;
b)根据所设定的分类信息,针对目标样本群中的每一个应用样本,提取该应用样本apk文件中分类信息的操作码,并对所述操作码进行处理,得到特征值;
c)将特征值相同的应用归为一类,得到分类结果。
根据上述步骤,可以建立分类信息库,但是c)中得到的分类结果不一定可靠,因此,建立分类信息库的方法还可以包括:
d)针对每一类应用,选取一组应用进行分析;如果所述一组应用中包含的应用具有相同的功能,则保存所述分类结果;如果所述一组应用中包含的应用具有不同的功能,则重新选取至少一种与行为相关的信息,并将所述信息设定为分类信息,重复b)到d);其中,所述一组应用中的应用数量不小于预设值。
可以理解的是,如果预设的分类信息库是采用上述方法建立的,那么,信息提取模块中提取的信息可以是预设的分类信息库的分类信息;相应地,操作码处理模块中提取的操作码为所提取的分类信息的操作码。
另外,目标应用的特征值有时候与预设的分类信息库中任意已知类别应用的相应特征值都不相同,针对这种情况,识别模块可以进一步用于:如果所述目标应用的特征值与所述已知类别的相应特征值不相同,则在分类信息库中新建一个类别。
对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (14)
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所述的装置,其特征在于,所述识别模块进一步用于:如果所述目标应用的特征值与所述病毒信息库中任意病毒文件的相应特征值不同,则判断所述目标应用中是否包含病毒,如果是,则在所述病毒信息库中新建一个病毒类别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410075170.6A CN104899009A (zh) | 2014-03-03 | 2014-03-03 | 一种安卓应用的识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410075170.6A CN104899009A (zh) | 2014-03-03 | 2014-03-03 | 一种安卓应用的识别方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104899009A true CN104899009A (zh) | 2015-09-09 |
Family
ID=54031688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410075170.6A Pending CN104899009A (zh) | 2014-03-03 | 2014-03-03 | 一种安卓应用的识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104899009A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325851A (zh) * | 2016-08-10 | 2017-01-11 | 复旦大学 | 一种Android应用交互式远程协作方法 |
CN107315955A (zh) * | 2016-04-27 | 2017-11-03 | 百度在线网络技术(北京)有限公司 | 文件安全性识别方法和装置 |
CN107977574A (zh) * | 2017-12-19 | 2018-05-01 | 深圳豪客互联网有限公司 | 病毒识别方法和装置 |
CN108255522A (zh) * | 2016-12-27 | 2018-07-06 | 北京金山云网络技术有限公司 | 一种应用程序分类方法及装置 |
CN108319449A (zh) * | 2017-01-16 | 2018-07-24 | 北京金山云网络技术有限公司 | 一种应用程序架构确定方法及装置 |
CN108401253A (zh) * | 2017-02-06 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 一种应用信息识别方法、装置以及*** |
CN109828780A (zh) * | 2018-12-28 | 2019-05-31 | 北京奇安信科技有限公司 | 一种开源软件的识别方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101304426A (zh) * | 2008-07-10 | 2008-11-12 | 腾讯科技(深圳)有限公司 | 一种可疑文件的识别上报方法和装置 |
CN102663285A (zh) * | 2012-03-21 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种apk病毒特征码的提取方法及装置 |
CN102663286A (zh) * | 2012-03-21 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种病毒apk的识别方法及装置 |
CN102708320A (zh) * | 2012-05-04 | 2012-10-03 | 奇智软件(北京)有限公司 | 一种病毒apk的识别方法及装置 |
CN102867038A (zh) * | 2012-08-30 | 2013-01-09 | 北京奇虎科技有限公司 | 文件类型的确定方法和装置 |
-
2014
- 2014-03-03 CN CN201410075170.6A patent/CN104899009A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101304426A (zh) * | 2008-07-10 | 2008-11-12 | 腾讯科技(深圳)有限公司 | 一种可疑文件的识别上报方法和装置 |
CN102663285A (zh) * | 2012-03-21 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种apk病毒特征码的提取方法及装置 |
CN102663286A (zh) * | 2012-03-21 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种病毒apk的识别方法及装置 |
CN102708320A (zh) * | 2012-05-04 | 2012-10-03 | 奇智软件(北京)有限公司 | 一种病毒apk的识别方法及装置 |
CN102867038A (zh) * | 2012-08-30 | 2013-01-09 | 北京奇虎科技有限公司 | 文件类型的确定方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315955A (zh) * | 2016-04-27 | 2017-11-03 | 百度在线网络技术(北京)有限公司 | 文件安全性识别方法和装置 |
CN106325851A (zh) * | 2016-08-10 | 2017-01-11 | 复旦大学 | 一种Android应用交互式远程协作方法 |
CN106325851B (zh) * | 2016-08-10 | 2020-05-26 | 复旦大学 | 一种Android应用交互式远程协作方法 |
CN108255522A (zh) * | 2016-12-27 | 2018-07-06 | 北京金山云网络技术有限公司 | 一种应用程序分类方法及装置 |
CN108319449A (zh) * | 2017-01-16 | 2018-07-24 | 北京金山云网络技术有限公司 | 一种应用程序架构确定方法及装置 |
CN108319449B (zh) * | 2017-01-16 | 2021-07-20 | 北京金山云网络技术有限公司 | 一种应用程序架构确定方法及装置 |
CN108401253A (zh) * | 2017-02-06 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 一种应用信息识别方法、装置以及*** |
CN107977574A (zh) * | 2017-12-19 | 2018-05-01 | 深圳豪客互联网有限公司 | 病毒识别方法和装置 |
CN109828780A (zh) * | 2018-12-28 | 2019-05-31 | 北京奇安信科技有限公司 | 一种开源软件的识别方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899009A (zh) | 一种安卓应用的识别方法及装置 | |
JP5694473B2 (ja) | 危険度計算を通じたリパッケージアプリケーションの分析システム及び分析方法 | |
CN103839005B (zh) | 移动操作***的恶意软件检测方法和恶意软件检测*** | |
CN102279786B (zh) | 一种监测应用程序有效访问量的方法及装置 | |
CN105205397B (zh) | 恶意程序样本分类方法及装置 | |
US20170149830A1 (en) | Apparatus and method for automatically generating detection rule | |
US20120159625A1 (en) | Malicious code detection and classification system using string comparison and method thereof | |
CN110825363B (zh) | 智能合约获取方法、装置、电子设备及存储介质 | |
CN104123493A (zh) | 应用程序的安全性检测方法和装置 | |
CN104933352A (zh) | 一种弱口令检测方法及装置 | |
CN104751053A (zh) | 移动智能终端软件的静态行为分析方法 | |
CN104954353A (zh) | Apk文件包的校验方法和装置 | |
CN105683990A (zh) | 用于保护动态库的方法和装置 | |
CN105357204B (zh) | 生成终端识别信息的方法及装置 | |
CN105426759A (zh) | Url的合法性识别方法及装置 | |
CN102340398A (zh) | 安全策略设置、确定方法、应用程序执行操作方法及装置 | |
CN110084064B (zh) | 基于终端的大数据分析处理方法及*** | |
CN110071924B (zh) | 基于终端的大数据分析方法及*** | |
CN105975855B (zh) | 一种基于apk证书相似性的恶意代码检测方法及*** | |
US10296743B2 (en) | Method and device for constructing APK virus signature database and APK virus detection system | |
CN104036187A (zh) | 计算机病毒类型确定方法及其*** | |
US20180268141A1 (en) | Identifying signatures for data sets | |
CN105760761A (zh) | 软件行为分析方法和装置 | |
CN106055375A (zh) | 应用程序安装方法及装置 | |
CN106529229A (zh) | 权限数据的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150909 |
|
RJ01 | Rejection of invention patent application after publication |