CN107622200A - 应用程序的安全性检测方法及装置 - Google Patents
应用程序的安全性检测方法及装置 Download PDFInfo
- Publication number
- CN107622200A CN107622200A CN201610557438.9A CN201610557438A CN107622200A CN 107622200 A CN107622200 A CN 107622200A CN 201610557438 A CN201610557438 A CN 201610557438A CN 107622200 A CN107622200 A CN 107622200A
- Authority
- CN
- China
- Prior art keywords
- application program
- executable file
- api
- file
- security risk
- 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
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用程序的安全性检测方法及装置,属于信息安全领域。所述方法包括:获取应用程序中的可执行文件,所述应用程序包括至少一个可执行文件;检测是否存在所述可执行文件使用了预定的应用程序编程接口API,所述API是用于在所述应用程序的运行过程中动态加载可执行文件的API;当存在所述可执行文件使用了预定的API时,将所述应用程序确定为存在安全风险的应用程序。本发明解决了现有技术通过文件特征信息无法识别一些应用程序的安全风险的问题;达到了在应用程序是支持热补丁技术或者热修复技术的应用程序时,将应用程序确定为存在安全风险的应用程序,提醒用户选择性地进行安装的效果。
Description
技术领域
本发明实施例涉及信息安全领域,特别涉及一种应用程序的安全性检测方法及装置。
背景技术
在运行有操作系统的终端中,可以安装各种各样的应用程序(英文:Application)来实现不同的功能,比如采用安卓(英文:Android)操作系统的手机安装APK格式的应用程序来实现不同的功能。但随着技术发展,带有病毒的恶意应用程序也越来越多。
现有技术提供了一种应用程序的安全性检测方法,包括:电脑提取应用程序的文件特征信息,比如文件名或消息摘要算法第五版(英文:Message Digest Algorithm,简称:MD5);电脑检测该应用程序的文件特征信息是否符合病毒库中的病毒特征信息;如果该应用程序的特征信息符合病毒库中的病毒特征信息,则电脑将该应用程序识别为存在安全风险的应用程序。
在实现本发明实施例的过程中,发明人发现现有技术至少存在以下问题:
一些应用程序具有在安装并运行之后,自行下载带有病毒的可执行文件并执行的能力。由于带有病毒的可执行文件是应用程序在安装后才下载得到的,应用程序在安装前并不携带该可执行文件,所以上述的安全性检测方法无法根据文件特征信息识别出这些应用程序是存在安全风险的应用程序。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种应用程序的安全性检测方法及装置。所述技术方案如下:
第一方面,提供了一种应用程序的安全性检测方法,所述方法包括:
获取应用程序中的可执行文件,所述应用程序包括至少一个可执行文件;
检测是否存在所述可执行文件使用了预定的应用程序编程接口API,所述API是用于在所述应用程序的运行过程中动态加载可执行文件的API;
当存在所述可执行文件使用了预定的API时,将所述应用程序确定为存在安全风险的应用程序。
第二方面,提供了一种应用程序的安全性检测装置,所述装置包括:
获取模块,用于获取应用程序中的可执行文件,所述应用程序包括至少一个可执行文件;
检测模块,用于检测是否存在所述可执行文件使用了预定的应用程序编程接口API,所述API是用于在所述应用程序的运行过程中动态加载可执行文件的API;
确定模块,用于当存在所述可执行文件使用了预定的API时,将所述应用程序确定为存在安全风险的应用程序。
本发明实施例提供的技术方案带来的有益效果是:
通过检测应用程序的可执行文件中是否使用了预定的API,该预定的API是用于在应用程序的运行过程中动态加载可执行文件的API,当存在可执行文件使用了预定的API时,将应用程序确定为存在安全风险的应用程序;解决了现有技术通过文件特征信息无法识别一些应用程序的安全风险的问题;达到了在应用程序是支持热补丁技术或者热修复技术的应用程序时,将应用程序确定为存在安全风险的应用程序,提醒用户选择性地进行安装的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的应用程序的安全性检测方法的流程图;
图2是本发明另一个实施例提供的应用程序的安全性检测方法的流程图;
图3是本发明一个实施例提供的应用程序的安全性检测方法在实施时的界面示意图;
图4是本发明另一个实施例提供的应用程序的安全性检测方法的流程图;
图5是本发明另一个实施例提供的应用程序的安全性检测方法的流程图;
图6是本发明另一个实施例提供的应用程序的安全性检测方法的流程图;
图7是本发明另一个实施例提供的应用程序的安全性检测装置的框图;
图8是本发明另一个实施例提供的终端的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
首先,对本发明实施例所涉及的一些名词进行解释。
热补丁技术:也称插件化技术,应用程序包括宿主APP和补丁APP,宿主APP和补丁APP均属于可执行文件。在应用程序发布时,应用程序的安装包中可以仅包括宿主APP。在应用程序被安装后,宿主APP具有在未经用户同意的情况下,从服务器下载任意指定的补丁APP进行安装并运行的能力。应用程序的开发者可通过热补丁技术动态增加或修改应用程序的功能。
热修复技术:应用程序中包括若干个可执行文件,每个可执行文件用于实现一个或一个以上的功能。当某一可执行文件中出现bug或不能满足用户需求时,应用程序在用户不感知的情况下,从服务器下载特定的可执行文件,替换自身所包含的任一可执行文件并运行,从而实现对bug的修复、功能的替换或者功能的升级。
以操作系统为Android为例,通过安卓分包(英文:Android MultiDex)技术来实现热补丁技术或热修复技术。由Java类编译得到的dex文件是Android中的可执行文件。通常情况下,Android中的应用程序包含一个dex文件。MultiDex技术能够将一个dex文件拆分为两个或者两个以上的dex文件,比如一个应用程序中的dex文件被拆分为:classes.dex、classes1.dex、classes2.dex,…,classesx.dex。当这个应用程序启动时,指定的一个dex文件会调用预定的应用程序编程接口(Application Programming Interface,API)依次加载各个dex文件,比如,调用DexClassLoader来依次加载各个dex文件。
对于一个应用程序来讲,被加载的dex文件是安装包中所携带的dex文件,或者,被加载的dex文件是应用程序在运行过程中下载得到的dex,或者,被加载的dex文件是非自身所拥有的dex文件。
上述技术不仅在Android中存在应用,苹果移动操作系统(英文:IOS)中的可执行文件是机器项目文件格式(Mach Object file format,Mach-O)文件等其它操作系统也具有类似的机制。本文中为了简化描述,主要以Android来举例说明,但对操作系统的平台类型不做限定。
如果应用程序在安装后下载和运行恶意的dex文件,无法通过背景技术中所介绍的安全性检测方法进行识别和预提醒。
请参考图1,其示出了本发明一个实施例提供的应用程序的安全性检测方法的流程图。本实施例以该方法应用于终端中来举例说明。该终端运行有操作系统。该终端可以是台式电脑、手机、平板电脑、笔记本电脑等。该方法包括:
步骤102,获取应用程序中的可执行文件,应用程序包括至少一个可执行文件;
步骤104,检测是否存在可执行文件使用了预定的API,该预定的API是用于在应用程序的运行过程中动态加载可执行文件的API;
对于支持热补丁技术或者热修复技术的应用程序,都具有在应用程序的运行过程中动态加载其它可执行文件的功能,这种功能是通过预定的系统API来实现的。
步骤106,当存在可执行文件使用了预定的API时,将应用程序确定为存在安全风险的应用程序。
综上所述,本实施例提供的安全性检测方法,通过检测应用程序的可执行文件中是否使用了预定的API,该预定的API是用于在应用程序的运行过程中动态加载可执行文件的API,当存在可执行文件使用了预定的API时,将应用程序确定为存在安全风险的应用程序;解决了现有技术通过文件特征信息无法识别一些应用程序的安全风险的问题;达到了在应用程序是支持热补丁技术或者热修复技术的应用程序时,将应用程序确定为存在安全风险的应用程序,提醒用户选择性地进行安装的效果。
请参考图2,其示出了本发明另一个实施例提供的应用程序的安全性检测方法的流程图。本实施例以该方法应用于终端中来举例说明。该方法包括:
步骤202,读取应用程序的安装包;
终端中运行有用于对应用程序进行安全性检测的管理程序。
可选地,该管理程序是应用市场程序,应用市场程序是用于下载、安装、更新和卸载各种应用程序的应用管理程序;或者,该管理程序是防病毒程序,防病毒程序是用于查杀病毒文件的安全管理程序。
该管理程序读取应用程序的安装包。
比如,管理程序读取应用程序的APK文件。APK文件是Andorid中的应用程序的安装包。安装包本身是一种压缩文件,安装包是将应用程序的可执行文件以及运行时所需要的资源文件进行压缩打包后得到的文件,资源文件包括但不限于:类库、图片文件、音频文件、视频文件、用户交互界面(User Interface,UI)元素等文件中的至少一种。
管理程序将APK文件读取到终端的内存中。
步骤204,对读取到的安装包进行解压,得到应用程序的至少一个可执行文件;
管理程序将读取到的安装包进行解压,能够得到该应用程序运行所需要的各种文件。解压得到的多个文件中,包括至少一个可执行文件。
比如,应用程序的APK文件被解压后,得到三个可执行文件:class.dex、class1.dex和class2.dex。通常,每个dex文件用于实现一个或多个功能。
步骤206,将可执行文件加载到虚拟机中,得到可执行文件的二进制代码文件;
管理程序将dex文件加载到Java虚拟机(Java Virtual Machine,JVM)中,得到dex文件的字节码文件。其中,Java虚拟机是一种虚拟出来的计算机,能够模拟运行Java程序所实现的各种功能。字节码文件(Byte-code)是一种执行程序,由一系列二进制代码组成。
虽然字节码文件是二进制代码文件,但字节码文件仍然是具有可读性的文件。通过类分析器JavaP、汇编(assembly,ASM)框架、代码产生库(Code Generation Library,Cglib)框架、比特代码工程库(Byte Code Engineering Library,BCEL)框架、Java二进制增强工具(Java Binary Enhancement Tool,JBET)框架和Javassist中的任意一种分析工具,能够分析出字节码文件中所使用的API有哪些。
步骤208,检测二进制代码文件是否使用了预定的API。
预定的API是在应用程序的运行过程中动态加载其它可执行文件的API。可选地,应用程序中的1个可执行文件被运行后,该可执行文件通过调用预定的API在应用程序的运行过程中动态加载其它可执行文件。如果其它可执行文件是由应用程序在安装后从网络下载的恶意可执行文件,则该应用程序是一个恶意应用程序。因此,当字节码文件中使用了预定的API时,该应用程序存在一定的安全风险。
管理程序通过分析工具检测字节码文件使用的各个API中,是否使用了预定的API。预定的API包括但不限于:dalvik.system.LexClassLoader、dalvik.system.BaseDexClassLoader、java.lang.ClassLoader中的任意一种。
比如,管理程序检测出class.dex使用了java.lang.ClassLoader。
当字节码文件使用了预定的API,则进入步骤205;当字节码文件未使用了预定的API时,则进入步骤206。
步骤210,将应用程序确定为存在安全风险的应用程序。
可选地,管理程序在用户安装或使用该应用程序,弹出提示信息。该提示信息用于提示该应用程序的安全风险。
比如,管理程序显示一个弹出框,弹出框中的文字信息为“该应用程序有可能在安装后自行下载恶意病毒,请谨慎下载!”,如图3所示。
步骤212,将应用程序确定为不存在安全风险的应用程序,或者,对应用程序进行其他方面的安全性检测。
综上所述,本实施例提供的安全性检测方法,通过检测应用程序的可执行文件中是否使用了预定的API,该预定的API是用于在应用程序的运行过程中动态加载可执行文件的API,当存在可执行文件使用了预定的API时,将应用程序确定为存在安全风险的应用程序;解决了现有技术通过文件特征信息无法识别一些应用程序的安全风险的问题;达到了在应用程序是支持热补丁技术或者热修复技术的应用程序时,将应用程序确定为存在安全风险的应用程序,提醒用户选择性地进行安装的效果。
由于使用了预定的API的应用程序,也可能是具有热补丁技术或热修复技术的正常应用程序,为了增加检测结果的准确性,还提供了如下实施例:
在基于图2的可选实施例中,步骤210之前,还包括步骤209a,如图4所示:
步骤209a,检测应用程序的开发者信息是否属于可信任的开发者列表;
当二进制代码文件使用了预定的API时,管理程序继续检测应用程序的开发者信息是否属于可信任的开发者列表。
通常,应用程序的安装包的属性信息中包括该应用程序的开发人员的信息,或者,开发公司的信息。
管理程序预先存储有可信任的开发者列表。该可信任的开发者列表基于知名公司、知名开发者团队、知名开发者人员等信息构建。
当应用程序的开发者信息不属于可信任的开发者列表或不存在开发者信息时,进入步骤210;当应用程序的开发者信息属于可信任的开发者列表时,进入步骤212。
需要说明的是,步骤209a也可在步骤208之前执行或同时执行,只要在二进制代码文件使用了预定的API,且,应用程序的开发者信息不属于可信任的开发者列表或不存在开发者信息时,进入步骤210即可。
综上所述,本实施例提供的安全性检测方法,通过对应用程序所使用的API和开发者信息进行综合判断,当应用程序使用了预定的API且应用程序的开发者信息不可信时,将应用程序确定为存在安全风险的应用程序;能够更进一步地提升安全性检测的准确性。
在基于图2的可选实施例中,步骤210之前,还包括步骤209b,如图5所示:
步骤209b,检测应用程序的使用信息是否达到预定条件,使用信息包括:下载量、安装量、卸载量、发布时间和评价分数中的至少一种;
当应用程序的使用信息包括下载量时,预定条件包括:下载量超过第一阈值;当应用程序的使用信息包括安装量时,预定条件包括:安装量超过第二阈值;当应用程序的使用信息包括卸载量时,预定条件包括:卸载量低于第三阈值;当应用程序的使用信息包括发布时间时,预定条件包括:发布时间与当前时间的差值大于第四阈值;当应用程序的使用信息包括评价分数时,预定条件包括:评价分数高于第五阈值。
如果应用程序的使用信息中存在一项或几项使用信息未达到预定条件,则进入步骤210;如果应用程序的使用信息均达到预定条件,则进入步骤212。
需要说明的是,步骤209b也可在步骤208之前执行或同时执行,只要在二进制代码文件使用了预定的API,且,应用程序的使用信息中存在一项或几项使用信息未达到预定条件时,进入步骤210即可。
综上所述,本实施例提供的安全性检测方法,通过对应用程序所使用的API和使用信息进行综合判断,当应用程序使用了预定的API且应用程序的开发者信息不可信时,将应用程序确定为存在安全风险的应用程序;能够更进一步地提升安全性检测的准确性。
还需要说明的是,图4实施例和图5实施例可以组合实施成为新的实施例,如图6所示,具体细节不再赘述。
在一个具体的例子中,应用市场的后台服务器上运行有管理程序,当存在一个应用程序的安装包上架至应用市场时,后台服务器中的管理程序对该应用程序的安装包使用上述实施例中的安全性检测方法进行检测,并根据检测结果生成有关该应用程序的安全风险的提示信息,当用户通过终端中的应用市场下载该应用程序时,应用市场会显示该提示信息。
在另一个具体的例子中,用户的手机上安装有防病毒程序,当用户新下载到一个应用程序的安装包时,该防病毒程序会自动对该应用程序的安装包使用上述实施例中的安全性检测方法进行检测,当该应用程序存在安全风险时,生成有关该应用程序的安全风险的提示信息并进行显示。
以下为本发明实施例的装置实施例,对于装置实施例中未详细阐述的细节,可以参考对应的方法实施例。
参见图7,本发明实施例提供了一种应用程序的安全性检测装置的框图。该安全性检测装置可以通过专用硬件电路,或,软硬件的组合实现成为终端的全部或一部分。该装置装置包括:
获取模块720,用于获取应用程序中的可执行文件,所述应用程序包括至少一个可执行文件;
检测模块740,用于检测是否存在所述可执行文件使用了预定的应用程序编程接口API,所述API是用于在所述应用程序的运行过程中动态加载可执行文件的API;
确定模块760,用于当存在所述可执行文件使用了预定的API时,将所述应用程序确定为存在安全风险的应用程序。
在可选的实施例中,所述检测模块740,用于将所述可执行文件加载到虚拟机中,得到所述可执行文件的二进制代码文件;检测所述二进制代码文件是否使用了预定的所述API。
在可选的实施例中,所述获取模块720,用于读取所述应用程序的安装包;对读取到的所述安装包进行解压,得到所述应用程序的至少一个可执行文件。
在可选的实施例中,所述检测模块740,还用于检测所述应用程序的开发者信息是否属于可信任的开发者列表;
所述确定模块760,还用于当所述应用程序的开发者信息不属于所述可信任的开发者列表或不存在所述开发者信息时,则将所述应用程序确定为存在安全风险的应用程序。
在可选的实施例中,所述检测模块740,还用于检测所述应用程序的使用信息是否达到预定条件,所述使用信息包括:下载量、安装量、卸载量、发布时间和评价分数中的至少一种;
所述确定模块760,还用于当所述应用程序的使用信息未达到所述预定条件,则将所述应用程序确定为存在安全风险的应用程序。
在可选的实施例中,所述可执行文件是dex文件,所述虚拟机是Java虚拟机,所述二进制代码文件是字节码文件。
综上所述,本实施例提供的安全性检测装置,通过检测应用程序的可执行文件中是否使用了预定的API,该预定的API是用于在应用程序的运行过程中动态加载可执行文件的API,当存在可执行文件使用了预定的API时,将应用程序确定为存在安全风险的应用程序;解决了现有技术通过文件特征信息无法识别一些应用程序的安全风险的问题;达到了在应用程序是支持热补丁技术或者热修复技术的应用程序时,将应用程序确定为存在安全风险的应用程序,提醒用户选择性地进行安装的效果。
需要说明的是:上述实施例提供的应用程序的安全性检测装置在触发智能网业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序的安全性检测装置与应用程序的安全性检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8其示出了本发明一个实施例提供的终端800的框图,该终端可以包括射频(RF,Radio Frequency)电路801、包括有一个或一个以上计算机可读存储介质的存储器802、输入单元803、显示单元804、传感器805、音频电路806、无线保真(WiFi,Wireless Fidelity)模块807、包括有一个或者一个以上处理核心的处理器808、以及电源809等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路801可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器808处理;另外,将涉及上行的数据发送给基站。通常,RF电路801包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路801还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器802可用于存储软件程序以及模块,处理器808通过运行存储在存储器802的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器802还可以包括存储器控制器,以提供处理器808和输入单元803对存储器802的访问。
输入单元803可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元803可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器808,并能接收处理器808发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元803还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元804可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元804可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器808以确定触摸事件的类型,随后处理器808根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图8中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
终端还可包括至少一种传感器805,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路806、扬声器,传声器可提供用户与终端之间的音频接口。音频电路806可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路806接收后转换为音频数据,再将音频数据输出处理器808处理后,经RF电路801以发送给比如另一终端,或者将音频数据输出至存储器802以便进一步处理。音频电路806还可能包括耳塞插孔,以提供外设耳机与终端的通信。
WiFi属于短距离无线传输技术,终端通过WiFi模块807可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块807,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器808是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器808可包括一个或多个处理核心;优选的,处理器808可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器808中。
终端还包括给各个部件供电的电源809(比如电池),优选的,电源可以通过电源管理系统与处理器808逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源809还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器808会运行存储在存储器802中的一个或一个以上的程序指令,从而实现上述各个方法实施例中所提供的应用程序的安全性检测方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种应用程序的安全性检测方法,其特征在于,所述方法包括:
获取应用程序中的可执行文件,所述应用程序包括至少一个可执行文件;
检测是否存在所述可执行文件使用了预定的应用程序编程接口API,所述API是用于在所述应用程序的运行过程中动态加载可执行文件的API;
当存在所述可执行文件使用了预定的API时,将所述应用程序确定为存在安全风险的应用程序。
2.根据权利要求1所述的方法,其特征在于,所述检测是否存在所述可执行文件使用了预定的API,包括:
将所述可执行文件加载到虚拟机中,得到所述可执行文件的二进制代码文件;
检测所述二进制代码文件是否使用了预定的所述API。
3.根据权利要求1所述的方法,其特征在于,所述获取应用程序中的可执行文件,包括:
读取所述应用程序的安装包;
对读取到的所述安装包进行解压,得到所述应用程序的至少一个可执行文件。
4.根据权利要求1至3任一所述的方法,其特征在于,所述将所述应用程序确定为存在安全风险的应用程序之前,还包括:
检测所述应用程序的开发者信息是否属于可信任的开发者列表;
所述将所述应用程序确定为存在安全风险的应用程序,包括:
当所述应用程序的开发者信息不属于所述可信任的开发者列表或不存在所述开发者信息时,则将所述应用程序确定为存在安全风险的应用程序。
5.根据权利要求1至3任一所述的方法,其特征在于,所述将所述应用程序确定为存在安全风险的应用程序之前,还包括:
检测所述应用程序的使用信息是否达到预定条件,所述使用信息包括:下载量、安装量、卸载量、发布时间和评价分数中的至少一种;
所述将所述应用程序确定为存在安全风险的应用程序,包括:
当所述应用程序的使用信息未达到所述预定条件,则将所述应用程序确定为存在安全风险的应用程序。
6.根据权利要求1至3任一所述的方法,其特征在于,所述可执行文件是dex文件,所述虚拟机是Java虚拟机,所述二进制代码文件是字节码文件。
7.一种应用程序的安全性检测装置,其特征在于,所述装置包括:
获取模块,用于获取应用程序中的可执行文件,所述应用程序包括至少一个可执行文件;
检测模块,用于检测是否存在所述可执行文件使用了预定的应用程序编程接口API,所述API是用于在所述应用程序的运行过程中动态加载可执行文件的API;
确定模块,用于当存在所述可执行文件使用了预定的API时,将所述应用程序确定为存在安全风险的应用程序。
8.根据权利要求7所述的装置,其特征在于,所述检测模块,用于将所述可执行文件加载到虚拟机中,得到所述可执行文件的二进制代码文件;检测所述二进制代码文件是否使用了预定的所述API。
9.根据权利要求7所述的装置,其特征在于,所述获取模块,用于读取所述应用程序的安装包;对读取到的所述安装包进行解压,得到所述应用程序的至少一个可执行文件。
10.根据权利要求7至9任一所述的装置,其特征在于,所述检测模块,还用于检测所述应用程序的开发者信息是否属于可信任的开发者列表;
所述确定模块,还用于当所述应用程序的开发者信息不属于所述可信任的开发者列表或不存在所述开发者信息时,则将所述应用程序确定为存在安全风险的应用程序。
11.根据权利要求7至9任一所述的装置,其特征在于,所述检测模块,还用于检测所述应用程序的使用信息是否达到预定条件,所述使用信息包括:下载量、安装量、卸载量、发布时间和评价分数中的至少一种;
所述确定模块,还用于当所述应用程序的使用信息未达到所述预定条件,则将所述应用程序确定为存在安全风险的应用程序。
12.根据权利要求7至9任一所述的装置,其特征在于,所述可执行文件是dex文件,所述虚拟机是Java虚拟机,所述二进制代码文件是字节码文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610557438.9A CN107622200A (zh) | 2016-07-14 | 2016-07-14 | 应用程序的安全性检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610557438.9A CN107622200A (zh) | 2016-07-14 | 2016-07-14 | 应用程序的安全性检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107622200A true CN107622200A (zh) | 2018-01-23 |
Family
ID=61087431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610557438.9A Pending CN107622200A (zh) | 2016-07-14 | 2016-07-14 | 应用程序的安全性检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107622200A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829579A (zh) * | 2018-05-03 | 2018-11-16 | 广州金山安全管理系统技术有限公司 | 可执行文件的分析方法、装置、存储介质和处理器 |
CN109492391A (zh) * | 2018-11-05 | 2019-03-19 | 腾讯科技(深圳)有限公司 | 一种应用程序的防御方法、装置和可读介质 |
CN109656809A (zh) * | 2018-11-07 | 2019-04-19 | 北京奇艺世纪科技有限公司 | 一种应用程序接口检测方法、装置及计算机可读存储介质 |
CN110213234A (zh) * | 2019-04-30 | 2019-09-06 | 深圳市腾讯计算机系统有限公司 | 应用程序文件的开发者识别方法、装置、设备及存储介质 |
CN110362995A (zh) * | 2019-05-31 | 2019-10-22 | 电子科技大学成都学院 | 一种基于逆向与机器学习的恶意软件检测及分析系统 |
CN110633112A (zh) * | 2019-08-30 | 2019-12-31 | 北京小米移动软件有限公司 | 信息处理方法及装置、设备、存储介质 |
CN111078262A (zh) * | 2018-10-18 | 2020-04-28 | 百度在线网络技术(北京)有限公司 | 应用的热修复方法和装置 |
CN111221563A (zh) * | 2020-01-13 | 2020-06-02 | 上海博泰悦臻网络技术服务有限公司 | 应用管理方法及系统 |
CN111737692A (zh) * | 2020-08-17 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 应用程序的风险检测方法及装置、设备、存储介质 |
WO2020232685A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳市欢太科技有限公司 | 一种恶意快应用的检测方法及终端 |
CN112486815A (zh) * | 2020-11-26 | 2021-03-12 | 北京指掌易科技有限公司 | 一种应用程序的分析方法、装置、服务器及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715196A (zh) * | 2015-03-27 | 2015-06-17 | 北京奇虎科技有限公司 | 智能手机应用程序的静态分析方法及系统 |
CN105431859A (zh) * | 2013-07-31 | 2016-03-23 | 惠普发展公司,有限责任合伙企业 | 指示恶意软件的信号标记 |
CN105493470A (zh) * | 2013-08-28 | 2016-04-13 | 亚马逊科技公司 | 动态应用安全验证 |
-
2016
- 2016-07-14 CN CN201610557438.9A patent/CN107622200A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105431859A (zh) * | 2013-07-31 | 2016-03-23 | 惠普发展公司,有限责任合伙企业 | 指示恶意软件的信号标记 |
CN105493470A (zh) * | 2013-08-28 | 2016-04-13 | 亚马逊科技公司 | 动态应用安全验证 |
CN104715196A (zh) * | 2015-03-27 | 2015-06-17 | 北京奇虎科技有限公司 | 智能手机应用程序的静态分析方法及系统 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829579A (zh) * | 2018-05-03 | 2018-11-16 | 广州金山安全管理系统技术有限公司 | 可执行文件的分析方法、装置、存储介质和处理器 |
CN111078262B (zh) * | 2018-10-18 | 2023-04-11 | 百度在线网络技术(北京)有限公司 | 应用的热修复方法和装置 |
CN111078262A (zh) * | 2018-10-18 | 2020-04-28 | 百度在线网络技术(北京)有限公司 | 应用的热修复方法和装置 |
CN109492391A (zh) * | 2018-11-05 | 2019-03-19 | 腾讯科技(深圳)有限公司 | 一种应用程序的防御方法、装置和可读介质 |
CN109492391B (zh) * | 2018-11-05 | 2023-02-28 | 腾讯科技(深圳)有限公司 | 一种应用程序的防御方法、装置和可读介质 |
CN109656809A (zh) * | 2018-11-07 | 2019-04-19 | 北京奇艺世纪科技有限公司 | 一种应用程序接口检测方法、装置及计算机可读存储介质 |
CN110213234A (zh) * | 2019-04-30 | 2019-09-06 | 深圳市腾讯计算机系统有限公司 | 应用程序文件的开发者识别方法、装置、设备及存储介质 |
CN110213234B (zh) * | 2019-04-30 | 2022-06-28 | 深圳市腾讯计算机系统有限公司 | 应用程序文件的开发者识别方法、装置、设备及存储介质 |
WO2020232685A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳市欢太科技有限公司 | 一种恶意快应用的检测方法及终端 |
CN110362995A (zh) * | 2019-05-31 | 2019-10-22 | 电子科技大学成都学院 | 一种基于逆向与机器学习的恶意软件检测及分析系统 |
CN110633112A (zh) * | 2019-08-30 | 2019-12-31 | 北京小米移动软件有限公司 | 信息处理方法及装置、设备、存储介质 |
US11675895B2 (en) | 2019-08-30 | 2023-06-13 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and device for processing information, equipment, and storage medium |
CN111221563A (zh) * | 2020-01-13 | 2020-06-02 | 上海博泰悦臻网络技术服务有限公司 | 应用管理方法及系统 |
CN111737692B (zh) * | 2020-08-17 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 应用程序的风险检测方法及装置、设备、存储介质 |
CN111737692A (zh) * | 2020-08-17 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 应用程序的风险检测方法及装置、设备、存储介质 |
CN112486815A (zh) * | 2020-11-26 | 2021-03-12 | 北京指掌易科技有限公司 | 一种应用程序的分析方法、装置、服务器及存储介质 |
CN112486815B (zh) * | 2020-11-26 | 2024-03-22 | 北京指掌易科技有限公司 | 一种应用程序的分析方法、装置、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107622200A (zh) | 应用程序的安全性检测方法及装置 | |
CN105320598B (zh) | 软件测试方法及装置 | |
CN105404585B (zh) | 获取代码覆盖率的方法及装置 | |
US9800609B2 (en) | Method, device and system for detecting malware in a mobile terminal | |
CN106412093B (zh) | 一种数据的上传方法、装置及系统 | |
CN104636047B (zh) | 对列表中的对象进行操作的方法、装置及触屏终端 | |
CN109558734A (zh) | 一种堆栈安全性的检测方法及装置、移动设备 | |
CN104965722B (zh) | 一种显示信息的方法及装置 | |
CN106709347B (zh) | 应用运行的方法及装置 | |
CN110058850B (zh) | 一种应用的开发方法、装置以及存储介质 | |
CN108228230A (zh) | Ufs固件的升级方法、终端及计算机可读存储介质 | |
CN106529312B (zh) | 一种移动终端的权限控制方法、装置及移动终端 | |
CN103455348A (zh) | 分区调整方法、装置、终端、服务器及系统 | |
CN106529332B (zh) | 一种移动终端的权限控制方法、装置及移动终端 | |
CN106789866B (zh) | 一种检测恶意网址的方法及装置 | |
CN107590397A (zh) | 一种显示内嵌网页的方法和装置 | |
CN108549698A (zh) | 文件处理方法、装置、移动终端及计算机可读存储介质 | |
CN107276602A (zh) | 射频干扰处理方法、装置、存储介质及终端 | |
CN106708555B (zh) | 一种加载插件的方法和装置 | |
CN106657254B (zh) | 一种联系人信息的同步方法、装置及系统 | |
CN108549826A (zh) | 应用程序的校验方法、终端、服务器及可读存储介质 | |
CN109522719A (zh) | 应用安装包的加固检测方法、装置及移动终端 | |
CN108304697B (zh) | 检测app二次打包的方法、装置及移动终端 | |
CN106933636A (zh) | 启动插件服务的方法、装置和终端设备 | |
CN105278942B (zh) | 组件管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180123 |