CN105631325A - 一种恶意应用程序检测方法和装置 - Google Patents

一种恶意应用程序检测方法和装置 Download PDF

Info

Publication number
CN105631325A
CN105631325A CN201410610791.XA CN201410610791A CN105631325A CN 105631325 A CN105631325 A CN 105631325A CN 201410610791 A CN201410610791 A CN 201410610791A CN 105631325 A CN105631325 A CN 105631325A
Authority
CN
China
Prior art keywords
api
user profile
class
sent
parameter
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.)
Granted
Application number
CN201410610791.XA
Other languages
English (en)
Other versions
CN105631325B (zh
Inventor
张二鹏
彭华熹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201410610791.XA priority Critical patent/CN105631325B/zh
Publication of CN105631325A publication Critical patent/CN105631325A/zh
Application granted granted Critical
Publication of CN105631325B publication Critical patent/CN105631325B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种恶意应用程序检测方法和装置,用以提高恶意应用程序检测的准确性。根据是否发送消息,将API划分为发送类API和非发送类API;所述方法,包括:提取移动终端中的所有用户信息;获取移动终端安装的应用程序所包含的各API的参数变量,所述参数变量包括执行参数或者执行参数和结果变量;将获取的发送类API的执行参数与提取的所有用户信息或者获取的非发送类API的结果变量进行匹配,根据匹配结果确定所述应用程序是否为恶意应用程序。

Description

一种恶意应用程序检测方法和装置
技术领域
本发明涉及智能终端应用安全技术领域,尤其涉及一种恶意应用程序检测方法和装置。
背景技术
随着移动互联网的迅速发展以及智能移动终端的增多,移动终端上相应的恶意应用程序威胁也逐渐增多。由于Android平台的开放性以及Android应用由JAVA语言开发,相对来说反编译分析和逆向修改较为容易,同时Android应用研发的门槛较低,直接导致了Android平台恶意应用程序的泛滥。
目前主流的移动终端恶意应用程序中,大多数的恶意应用程序都存在搜集获取用户敏感信息等恶意行为,如通讯录信息、通话记录、短信信息、银行账户信息、位置信息等,部分恶意应用程序对这些信息进行加密,然后向远程服务器(或目标移动终端)发送搜集的用户敏感信息,数据加密增加了对应用程序的恶意行为进行分析的难度。
目前针对移动终端中的恶意应用程序以及互联网病毒的恶意行为分析,主要采用的手段有:
1)对恶意应用程序进行静态分析。
主要是通过对Android应用程序进行逆向、反编译生成Smali代码或反汇编生成JAVA源码,然后对反编译代码进行全文遍历、解析,将应用程序使用的API(应用程序编程接口,ApplicationProgramInterface)与预定义恶意行为库中的API进行匹配,将匹配成功的应用程序的API标记为恶意行为API,同时扫描应用程序权限信息,与预定义的危险权限库中记载的权限信息进行匹配,结合标记的恶意行为API判定待测应用程序是否为恶意应用程序。由于其只检测到了应用程序的具体行为,无法检测出行为本身具体的操作内容,例如,只能检测到发短信的行为,无法检测到发送短信的内容,这使得恶意应用程序检测准确性较低,同时该方法也只能检测到已知的恶意行为。
2)对恶意应用程序在沙箱中进行养殖,采集并分析恶意应用程序发送的网络数据包,确定其恶意行为,这种方法只能分析恶意应用程序使用明文发送的数据包,而对于加密数据包无能为力,因此其也无法准确检测到移动终端中存在的恶意应用程序。
发明内容
本发明实施例提供一种恶意应用程序检测方法和装置,用以提高恶意应用程序检测的准确性。
本发明实施例提供一种恶意应用程序检测方法,包括:
提取移动终端中的所有用户信息;
获取移动终端安装的应用程序所包含的各应用程序编程接口API的参数变量,所述参数变量包括执行参数,或者,执行参数和结果变量,其中,各API根据是否发送消息,被划分为发送类API和非发送类API;
将获取的发送类API的执行参数与提取的所有用户信息或者获取的非发送类API的结果变量进行匹配,根据匹配结果确定所述应用程序是否为恶意应用程序。
本发明实施例提供一种恶意应用程序检测装置,包括:
提取单元,用于提取移动终端中的所有用户信息;
获取单元,用于获取移动终端安装的应用程序所包含的各应用程序编程接口API的参数变量,所述参数变量包括执行参数,或者,执行参数和结果变量,其中,各API根据是否发送消息,被划分为发送类API和非发送类API;
确定单元,用于将获取的发送类API的执行参数与提取的所有用户信息或者获取的非发送类API的结果变量进行匹配,根据匹配结果确定所述应用程序是否为恶意应用程序。
本发明实施例提供的恶意应用程序检测方法和装置,将API划分为发送类API和非发送类API,对于应用程序包含的发送类API,将其执行参数与提取的移动终端中的用户信息匹配,或者将其与非发送类API的结果变量进行匹配,根据匹配结果确定应用程序是否为恶意程序。上述过程中,可以根据发送类API的执行参数从非发送类API中追溯到该执行参数在被处理之前的原始信息,因此,即使应用程序将获取的用户信息进行加密等处理,也能够确定出其是否为恶意应用程序,从而,提高了应用程序检测的确定性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1a为本发明实施例中,恶意应用程序检测方法的实施流程示意图;
图1b为本发明实施中,确定应用程序是否为恶意应用程序的实施流程示意图;
图2为本发明实施例中,发送类API的执行参数与提取的用户信息进行匹配的示意图;
图3为本发明实施例中,递归查找目标API的实施流程示意图;
图4为本发明实施例中,恶意应用程序检测装置的结构示意图。
具体实施方式
为了提高恶意应用程序检测方法的准确性,本发明实施例中,提取移动终端中用户信息,结合对应用程序包含的API的分析结果来判断移动终端安装的应用程序是否为恶意应用程序。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
由于移动终端中的恶意应用程序通常具有以下明显的特征:搜集移动终端上的用户信息,并将搜集的用户信息发送给远程服务器或者目标移动终端。因此,根据API是否发送信息,将API划分为发送类API和非发送类API并标记,如表1所示。
表1
具体实施时,发送类API包括以任何方式发送信息的API,例如,以短信方式发送信息、以蓝牙方式发送信息或者以网络数据包方式发送信息等等。非发送类API包括除发送类API以外的API,例如,可以是读取信息的API,包括读取短信信息、通话记录信息、通讯录信息、位置信息等,还可以是加密的API。
基于此,本发明实施例中,在进行恶意应用程序检测时,主要检测发送类API发送的信息是否为移动终端上的用户信息。如图1a所示,为本发明实施例提供的恶意应用程序检测方法的实施流程示意图,包括以下步骤:
S11、提取移动终端中的所有用户信息。
其中,提取的用户信息可以包括短信信息、通话记录信息、通讯录信息、位置信息等移动终端上与用户有关的信息。
较佳的,为了便于后续比较,可以为提取的每一用户信息分配一信息标识,如表2所示:
表2
信息内容 信息标识
短信信息 ID1
通话记录信息 ID2
位置信息 ID3
…… ……
S12、获取移动终端安装的应用程序所包含的各API的参数变量。
需要说明的是,API的类别不同,获取的API的参数变量也不同,例如,对于发送类API来说,其参数变量包括执行参数,即发送的信息内容,而对于非发送类的API来说,其参数变量可能包括执行参数和结果变量。但不限于此,在实际应用中,也有可能发送类API的参数变量也同时包括执行参数和结果变量。
具体的,步骤S12可以按照以下步骤实施:
步骤一、对应用程序进行逆向反编译,得到其对应的源码。
具体实施时,对应用程序安装包(扩展名为.apk的文件)进行逆向反编译,得到smali源码。
步骤二、根据源码获取该应用程序包含的各API的参数变量。
具体实施时,可以针对每一API,分别在源码中、该API执行前和执行后***标记代码,所述标记代码包括API分类标记代码;记录每一API的执行信息,根据该API的执行信息和该API的标记代码,获取该API的类别和该API的参数变量。可以通过用于记录各API的执行信息的日志,获取各API的参数变量,并输出记录各API的执行信息的日志。
较佳的,利用获得的smali源码,可以采用以下方式输出应用程序中包含的各API的执行参数或者结果变量:扫描smali源码中包含的所有API,针对每一API,在该API执行前和执行后***标记代码,其中包括API分类标记代码;并将逆向的源码重打包后运行,输出运行结果即为API的变量参数,具体实施时,可以使用输出日志的方式进行输出,如下所示:
Uriuri=Uri.parse(AllFinalInfo.SMS_URI_INBOX);
SmsContentsc=newSmsContent(this,uri);
Log.v(tag,API名称+API分类标记+代码位置);
List<SmsInfo>infos=sc.getSmsInfo();
body.setText(infos.get(position).getSmsbody());
name.setText(infos.get(position).getName());
log.v(tag,infos.get(position).getSmsbody());
log.v(tag,infos.get(position).getSmsbody());
Log.v(tag,API名称);
以发送类API为例,其执行参数是指API发送的信息内容,而对于加密API来说,其执行参数为待加密的原信息,而结果变量为加密后的加密信息。
需要说明的是,步骤S11和步骤S12并无先后执行顺序,步骤S12也可以先于步骤S11执行,两个步骤也可以同时执行。
S13、将获取的发送类API的执行参数与提取的所有用户信息或者获取的非发送类API的结果变量进行匹配,根据匹配结果确定所述应用程序是否为恶意应用程序。
较佳的,如图1b所示,步骤S13中,可以按照以下步骤实施:
S131、针对应用程序包含的每一发送类API,判断提取的用户信息中是否存在与该发送类API的执行参数匹配的用户信息,如果是,执行步骤S132,否则执行步骤S133。
如图2所示,为将发送类API的执行参数与提取的用户信息进行匹配的示意图。以发送类API1为例,按照为用户信息分配的信息标识的顺序,依次比较API1的执行参数与提取的每一用户信息,如果其执行参数与当前比较的用户信息相同,则确定提取的用户信息中存在与API1的执行参数匹配的用户信息。如果遍历所有的用户信息之后发现,API1的执行参数与提取的每一用户信息均不相同,则确定提取的用户信息中不存在与API1的执行参数匹配的用户信息。假设API1的执行参数与信息标识为ID1的用户信息相同,则确定提取的用户信息中存在与API1的执行参数匹配的用户信息,即信息标识为ID1的用户信息。
S132、确定该应用程序为恶意应用程序,流程结束。
S133、根据该发送类API的执行参数和该应用程序包含的非发送类API的结果变量,从非发送类API中递归查找是否存在执行参数与提取的用户信息匹配的非发送类API,如果是,执行步骤S132,否则,流程结束。
需要说明的是,具体实施时,需要遍历应用程序包含的每一API,只要有一个API满足上述条件,即可确定该应用程序为恶意应用程序,只有所有的API均不满足上述条件,才可确定该应用程序不是恶意应用程序。
如图3所示,在步骤S133中,可以按照以下方法在非发送类API中递归查找是否存在与执行参数与提取的用户信息匹配的非发送类API,为了便于描述,图3中将发送类API称为源API:
S31、在非发送类API中查找是否存在结果变量与源API的执行参数一致的目标API,如果存在,执行步骤S32,否则,执行步骤S35。
S32、判断目标API的执行参数是否与提取的至少一个用户信息匹配,如果是,执行步骤S33,否则,执行步骤S34。
S33、确定非发送类API中存在执行参数与提取的用户信息匹配的非发送类API,流程结束。
S34、确定目标API为源API,并执行步骤S31。
S35、确定包含源API的应用程序不是恶意应用程序。
由上述流程可知,本发明实施例中,如果目标API的执行参数与提取的所有用户信息均不匹配时,则继续根据该目标API的执行参数查找非发送类API的结果变量中是否存在与其执行参数一致的非发送类API,直至遍历所有的非发送类API,如果仍然未查找到,则可以确定源API所在的应用程序不是恶意应用程序,即其发送的信息不是移动终端中的用户信息。
为了更好的理解本发明实施例中,以下以图2中的发送类API2为例对本发明实施例的实施过程进行说明。图2中,发送类API2包含两个执行参数,假设分别为A1和A2,即API1发送的信息为A1和A2。
对于A1来说,假设提取的用户信息中不存在与其匹配的用户信息,即API2发送的信息A1可能是被处理后的信息。则还需要从非发送类API中查找结果变量为A1的API,假设为非发送类API1,此时,需要判断A1被处理之前的信息即非发送类API1的执行参数是否与提取的至少一个用户信息匹配,假设匹配到信息标识为ID2的用户信息,也就是说API2发送的信息为被处理后的用户信息,因此,可以确定包含API2的应用程序为恶意应用程序。
对于A2来说,假设提取的用户信息中不存在与其匹配的用户信息,即API2发送的信息A2也可能是被处理后的信息。则还需要从非发送类API中查找结果变量为A2的API,假设为非发送类API1,此时,需要判断A2被处理之前的信息即非发送类API1的执行参数B1是否与提取的至少一个用户信息匹配,假设不匹配,B1还可能是被处理之后的信息,因此,继续在非发送类API中查找结果变量为B1的非发送类API,假设非发送类API2的结果变量为B1,则判断非发送类API2的执行参数(即B2被处理之前的信息)是否与至少一个用户信息匹配,如果匹配,确定包含发送类API2的应用程序为恶意应用程序。具体实施时,如果仍不匹配,则在非发送类API中继续递归查找,直至遍历所有的非发送类API为止。
由此可见,本发明实施例中,即使恶意应用程序将用户信息进行多次处理之后再进行发送,根据上述流程,依然能够追溯到原始的用户信息,从而能够准确检测出该应用程序是否为恶意应用程序。
本发明实施例中,对于应用程序包含的发送类API,如果其执行参数与提取的移动终端中的用户信息匹配,则直接确定该应用程序为恶意应用程序,否则,根据其执行参数和非发送类API的结果变量,在非发送类中递归查找执行参数与提取的用户信息匹配的非发送类API,如果查找到,则确定该应用程序为恶意应用程序。上述过程中,如果发送类API的执行参数与提取的用户信息不匹配时,也可以从非发送类API中追溯到该执行参数在被处理之前的原始信息,因此,即使应用程序将获取的用户信息进行加密等处理,也能够确定出其是否为恶意应用程序,从而,提高了应用程序检测的确定性。
基于同一发明构思,本发明实施例中还提供了一种恶意应用程序检测装置,由于上述装置解决问题的原理与恶意应用程序检测方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,为本发明实施例提供的恶意应用程序检测装置的结构示意图,包括:
提取单元41,用于提取移动终端中的所有用户信息;
获取单元42,用于获取移动终端安装的应用程序所包含的各应用程序编程接口API的参数变量,所述参数变量包括执行参数,或者,执行参数和结果变量,其中,各API根据是否发送消息,被划分为发送类API和非发送类API;
确定单元43,用于将获取的发送类API的执行参数与提取的所有用户信息或者获取的非发送类API的结果变量进行匹配,根据匹配结果确定所述应用程序是否为恶意应用程序。
其中,确定单元43,可以包括:
判断子单元,用于针对所述应用程序包含的每一发送类API,判断提取的用户信息中是否存在与该发送类API的执行参数匹配的用户信息;
确定子单元,用于在所述判断子单元的判断结果为是时,确定所述应用程序为恶意应用程序;或者用于在查找子单元从非发送类API中查找到执行参数与提取的用户信息匹配的非发送类API时,确定所述应用程序为恶意应用程序;
查找子单元,用于在所述判断子单元的判断结果为否时,根据所述发送类API的执行参数和所述应用程序包含的非发送类API的结果变量,从非发送类API中递归查找是否存在执行参数与提取的用户信息匹配的非发送类API。
较佳的,查找子单元,可以包括:
查找模块,用于根据所述发送类API的执行参数,从所述非发送类API中查找是否存在结果变量与所述发送类API的执行参数一致的目标API;以及用于在判断模块的判断结果为否时,根据目标API的执行参数,从未遍历的非发送类API中继续递归查找是否存在结果变量与目标API的执行参数一致的非发送类API,直至查找到执行参数与提取的用户信息匹配的非发送类API或者遍历所有非发送类API为止;
判断模块,用于在所述查找模块查找到所述目标API时,判断目标API的执行参数否是与提取的至少一个用户信息匹配;
第一确定模块,用于在所述判断模块的判断结果为是时,确定所述非发送类API中存在执行参数与提取的用户信息匹配的非发送类API。
较佳的,获取单元42,可以包括:
逆向反编译子单元,用于对所述应用程序进行逆向反编译,得到所述应用程序对应的源码;
获取子单元,用于根据所述源码获取所述应用程序包含的各API变量参数。
其中,获取子单元,包括:
标记模块,用于针对每一API,分别在该所述源码中、该API执行前和执行后***标记代码,所述标记代码包括API分类标记代码;
记录模块,用于记录每一API的执行信息,根据该API的执行信息和该API的标记代码,获取该API的类别和该API的参数变量。
其中,获取子单元,可以用于通过用于记录所述各API的执行信息的日志,获取所述各API的参数变量。
具体实施时,本发明实施例提供的恶意应用程序检测装置,还可以包括:
输出单元,用于输出记录各API的执行信息的日志。
具体实施时,判断子单元,可以包括:
比较模块,用于依次比较该发送类的执行参数与提取的每一用户信息;
第二确定模块,用于如果该发送类的执行参数与当前比较的用户信息相同,则确定提取的用户信息中存在与该发送类API的执行参数匹配的用户信息;如果该发送类的执行参数与提取的每一用户信息均不相同,则确定提取的用户信息中不存在与该发送类API的执行参数匹配的用户信息。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (16)

1.一种恶意应用程序检测方法,其特征在于,包括:
提取移动终端中的所有用户信息;
获取移动终端安装的应用程序所包含的各API的参数变量,所述参数变量包括执行参数,或者,执行参数和结果变量,其中,各API根据是否发送消息,被划分为发送类API和非发送类API;
将获取的发送类API的执行参数与提取的所有用户信息或者获取的非发送类API的结果变量进行匹配,根据匹配结果确定所述应用程序是否为恶意应用程序。
2.如权利要求1所述的方法,其特征在于,将获取的发送类API的执行参数与提取的所有用户信息或者获取的非发送类API的结果变量进行匹配,根据匹配结果确定所述应用程序是否为恶意应用程序,具体包括:
针对所述应用程序包含的每一发送类API,判断提取的用户信息中是否存在与该发送类API的执行参数匹配的用户信息;
如果存在,则确定所述应用程序为恶意应用程序;
如果不存在,则根据所述发送类API的执行参数和所述应用程序包含的非发送类API的结果变量,从非发送类API中递归查找是否存在执行参数与提取的用户信息匹配的非发送类API;
如果存在,确定所述应用程序为恶意应用程序。
3.如权利要求2所述的方法,其特征在于,根据所述发送类API的执行参数和所述应用程序包含的非发送类API的结果变量,从非发送类API中递归查找是否存在执行参数与提取的用户信息匹配的非发送类API,具体包括:
根据所述发送类API的执行参数,从所述非发送类API中查找是否存在结果变量与所述发送类API的执行参数一致的目标API;
如果存在,则判断目标API的执行参数是否与提取的至少一个用户信息匹配;
如果是,则确定所述非发送类API中存在执行参数与提取的用户信息匹配的非发送类API;
如果否,则根据目标API的执行参数,从未遍历的非发送类API中继续递归查找是否存在结果变量与目标API的执行参数一致的非发送类API,直至查找到执行参数与提取的用户信息匹配的非发送类API或者遍历所有非发送类API为止。
4.如权利要求1所述的方法,其特征在于,获取移动终端安装的应用程序所包含的各应用程序编程接口API的参数变量,具体包括:
对所述应用程序进行逆向反编译,得到所述应用程序对应的源码;
根据所述源码获取所述应用程序包含的各API的参数变量。
5.如权利要求4所述的方法,其特征在于,根据所述源码获取所述应用程序包含的各API执行参数变量,具体包括:
针对每一API,分别在该所述源码中、该API执行前和执行后***标记代码,所述标记代码包括API分类标记代码;
记录每一API的执行信息,根据该API的执行信息和该API的标记代码,获取该API的类别和该API的参数变量。
6.如权利要求1至5任一权利要求所述的方法,其特征在于,所述获取移动终端安装的应用程序所包含的各API的参数变量,包括:
通过用于记录所述各API的执行信息的日志,获取所述各API的参数变量。
7.如权利要求6所述的方法,其特征在于,还包括:
输出记录各API的执行信息的日志。
8.如权利要求1所述的方法,其特征在于,判断提取的用户信息中是否存在与该发送类API的执行参数匹配的用户信息,具体包括:
依次比较该发送类的执行参数与提取的每一用户信息;
如果该发送类的执行参数与当前比较的用户信息相同,则确定提取的用户信息中存在与该发送类API的执行参数匹配的用户信息;
如果该发送类的执行参数与提取的每一用户信息均不相同,则确定提取的用户信息中不存在与该发送类API的执行参数匹配的用户信息。
9.一种恶意应用程序检测装置,其特征在于,包括:
提取单元,用于提取移动终端中的所有用户信息;
获取单元,用于获取移动终端安装的应用程序所包含的各API的参数变量,所述参数变量包括执行参数,或者,执行参数和结果变量,其中,各API根据是否发送消息,被划分为发送类API和非发送类API;
确定单元,用于将获取的发送类API的执行参数与提取的所有用户信息或者获取的非发送类API的结果变量进行匹配,根据匹配结果确定所述应用程序是否为恶意应用程序。
10.如权利要求9所述的装置,其特征在于,所述确定单元,包括:
判断子单元,用于针对所述应用程序包含的每一发送类API,判断提取的用户信息中是否存在与该发送类API的执行参数匹配的用户信息;
确定子单元,用于在所述判断子单元的判断结果为是时,确定所述应用程序为恶意应用程序;或者用于在查找子单元从非发送类API中查找到执行参数与提取的用户信息匹配的非发送类API时,确定所述应用程序为恶意应用程序;
查找子单元,用于在所述判断子单元的判断结果为否时,根据所述发送类API的执行参数和所述应用程序包含的非发送类API的结果变量,从非发送类API中递归查找是否存在执行参数与提取的用户信息匹配的非发送类API。
11.如权利要求10所述的装置,其特征在于,所述查找子单元,具体包括:
查找模块,用于根据所述发送类API的执行参数,从所述非发送类API中查找是否存在结果变量与所述发送类API的执行参数一致的目标API;以及用于在判断模块的判断结果为否时,根据目标API的执行参数,从未遍历的非发送类API中继续递归查找是否存在结果变量与目标API的执行参数一致的非发送类API,直至查找到执行参数与提取的用户信息匹配的非发送类API或者遍历所有非发送类API为止;
判断模块,用于在所述查找模块查找到所述目标API时,判断目标API的执行参数是否与提取的至少一个用户信息匹配;
第一确定模块,用于在所述判断模块的判断结果为是时,确定所述非发送类API中存在执行参数与提取的用户信息匹配的非发送类API。
12.如权利要求9所述的装置,其特征在于,所述获取单元,具体包括:
逆向反编译子单元,用于对所述应用程序进行逆向反编译,得到所述应用程序对应的源码;
获取子单元,用于根据所述源码获取所述应用程序包含的各API的参数变量。
13.如权利要求12所述的装置,其特征在于,所述获取子单元,包括:
标记模块,用于针对每一API,分别在该所述源码中、该API执行前和执行后***标记代码,所述标记代码包括API分类标记代码;
记录模块,用于记录每一API的执行信息,根据该API的执行信息和该API的标记代码,获取该API的类别和该API的参数变量。
14.如权利要求9~13任一权利要求所述的装置,其特征在于,
所述获取子单元,具体用于通过用于记录所述各API的执行信息的日志,获取所述各API的参数变量。
15.如权利要求14所述的装置,其特征在于,所述装置还包括:
输出单元,用于输出记录各API的执行信息的日志。
16.如权利要求10所述的装置,其特征在于,所述判断子单元,具体包括:
比较模块,用于依次比较该发送类的执行参数与提取的每一用户信息;
第二确定模块,用于如果该发送类的执行参数与当前比较的用户信息相同,则确定提取的用户信息中存在与该发送类API的执行参数匹配的用户信息;如果该发送类的执行参数与提取的每一用户信息均不相同,则确定提取的用户信息中不存在与该发送类API的执行参数匹配的用户信息。
CN201410610791.XA 2014-11-03 2014-11-03 一种恶意应用程序检测方法和装置 Active CN105631325B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410610791.XA CN105631325B (zh) 2014-11-03 2014-11-03 一种恶意应用程序检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410610791.XA CN105631325B (zh) 2014-11-03 2014-11-03 一种恶意应用程序检测方法和装置

Publications (2)

Publication Number Publication Date
CN105631325A true CN105631325A (zh) 2016-06-01
CN105631325B CN105631325B (zh) 2019-04-30

Family

ID=56046250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410610791.XA Active CN105631325B (zh) 2014-11-03 2014-11-03 一种恶意应用程序检测方法和装置

Country Status (1)

Country Link
CN (1) CN105631325B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958154A (zh) * 2016-10-17 2018-04-24 中国科学院深圳先进技术研究院 一种恶意软件检测装置及方法
CN108573151A (zh) * 2017-03-10 2018-09-25 武汉安天信息技术有限责任公司 一种仿冒应用分析***及方法
CN109492391A (zh) * 2018-11-05 2019-03-19 腾讯科技(深圳)有限公司 一种应用程序的防御方法、装置和可读介质
CN111523063A (zh) * 2019-02-01 2020-08-11 北京搜狗科技发展有限公司 一种应用程序的处理方法、装置和用于应用程序的处理的装置
CN113190835A (zh) * 2021-02-04 2021-07-30 恒安嘉新(北京)科技股份公司 一种应用程序违法检测方法、装置、设备及存储介质
CN113711559A (zh) * 2019-04-16 2021-11-26 北京嘀嘀无限科技发展有限公司 检测异常的***和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779255A (zh) * 2012-07-16 2012-11-14 腾讯科技(深圳)有限公司 判断恶意程序的方法及装置
CN102938040A (zh) * 2012-09-29 2013-02-20 中兴通讯股份有限公司 Android恶意应用程序检测方法、***及设备
CN103186740A (zh) * 2011-12-27 2013-07-03 北京大学 一种Android恶意软件的自动化检测方法
CN103916365A (zh) * 2012-12-31 2014-07-09 西门子公司 导出和验证恶意代码的网络行为特征的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103186740A (zh) * 2011-12-27 2013-07-03 北京大学 一种Android恶意软件的自动化检测方法
CN102779255A (zh) * 2012-07-16 2012-11-14 腾讯科技(深圳)有限公司 判断恶意程序的方法及装置
CN102938040A (zh) * 2012-09-29 2013-02-20 中兴通讯股份有限公司 Android恶意应用程序检测方法、***及设备
CN103916365A (zh) * 2012-12-31 2014-07-09 西门子公司 导出和验证恶意代码的网络行为特征的方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958154A (zh) * 2016-10-17 2018-04-24 中国科学院深圳先进技术研究院 一种恶意软件检测装置及方法
CN108573151A (zh) * 2017-03-10 2018-09-25 武汉安天信息技术有限责任公司 一种仿冒应用分析***及方法
CN109492391A (zh) * 2018-11-05 2019-03-19 腾讯科技(深圳)有限公司 一种应用程序的防御方法、装置和可读介质
CN109492391B (zh) * 2018-11-05 2023-02-28 腾讯科技(深圳)有限公司 一种应用程序的防御方法、装置和可读介质
CN111523063A (zh) * 2019-02-01 2020-08-11 北京搜狗科技发展有限公司 一种应用程序的处理方法、装置和用于应用程序的处理的装置
CN111523063B (zh) * 2019-02-01 2024-06-07 北京搜狗科技发展有限公司 一种应用程序的处理方法、装置和用于应用程序的处理的装置
CN113711559A (zh) * 2019-04-16 2021-11-26 北京嘀嘀无限科技发展有限公司 检测异常的***和方法
CN113711559B (zh) * 2019-04-16 2023-09-29 北京嘀嘀无限科技发展有限公司 检测异常的***和方法
CN113190835A (zh) * 2021-02-04 2021-07-30 恒安嘉新(北京)科技股份公司 一种应用程序违法检测方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN105631325B (zh) 2019-04-30

Similar Documents

Publication Publication Date Title
CN105631325A (zh) 一种恶意应用程序检测方法和装置
CN106796635B (zh) 确定装置、确定方法
Barmpatsalou et al. A critical review of 7 years of Mobile Device Forensics
CN109753800A (zh) 融合频繁项集与随机森林算法的Android恶意应用检测方法及***
JP5087661B2 (ja) 正常プロセスに偽装挿入された悪性コード検出装置、システム及びその方法
US20150256552A1 (en) Imalicious code detection apparatus and method
CN103294951B (zh) 一种基于文档型漏洞的恶意代码样本提取方法及***
CN103607413B (zh) 一种网站后门程序检测的方法及装置
CN104700033A (zh) 病毒检测的方法及装置
KR20170068814A (ko) 악성 모바일 앱 감지 장치 및 방법
CN110096433B (zh) 一种iOS平台上获取加密数据的方法
CN110245273B (zh) 一种获取app业务特征库的方法及相应的装置
CN110071924B (zh) 基于终端的大数据分析方法及***
Nguyen et al. Detecting repackaged android applications using perceptual hashing
CN103886258A (zh) 一种病毒检测方法及装置
CN114860573A (zh) 软件成分的分析方法、装置、电子设备及存储介质
CN106911635B (zh) 一种检测网站是否存在后门程序的方法及装置
CN106650451A (zh) 一种检测方法和装置
KR20130096618A (ko) 안드로이드 모바일 어플리케이션의 판단 방법 및 이를 이용한 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법
CN107229865B (zh) 一种解析Webshell入侵原因的方法及装置
CN106778276B (zh) 一种检测无实体文件恶意代码的方法及***
KR101895876B1 (ko) 애플리케이션 악성 판단 시스템 및 방법, 이를 수행하기 위한 기록 매체
CN114021131A (zh) 一种获取数据分析图谱的方法、装置及电子设备
Leder et al. Finding and extracting crypto routines from malware
WO2016180211A1 (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
GR01 Patent grant
GR01 Patent grant