CN110399721B - 一种软件识别方法和服务器以及客户端 - Google Patents
一种软件识别方法和服务器以及客户端 Download PDFInfo
- Publication number
- CN110399721B CN110399721B CN201811623706.8A CN201811623706A CN110399721B CN 110399721 B CN110399721 B CN 110399721B CN 201811623706 A CN201811623706 A CN 201811623706A CN 110399721 B CN110399721 B CN 110399721B
- Authority
- CN
- China
- Prior art keywords
- software
- information
- feature
- server
- identification
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种软件识别方法和服务器以及客户端,用于提高软件识别效率。本发明实施例提供一种软件识别方法,包括:服务器获取客户端发送的动态特征信息,所述动态特征信息用于记录第一软件在所述客户端上运行时产生的软件安装行为;所述服务器获取所述第一软件对应的静态特征信息,所述静态特征信息用于携带生成所述第一软件时配置的软件信息;所述服务器生成待识别的软件特征集合,所述软件特征集合包括:所述动态特征信息和所述静态特征信息;所述服务器使用预置的特征识别库对所述软件特征集合进行软件识别,然后所述服务器输出所述第一软件对应的软件识别结果。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件识别方法和服务器以及客户端。
背景技术
目前,网络安全至关重要,网络安全厂商对病毒的打击力度越来越大,通过传播病毒窃取用户账号隐私来牟利的方式,变得越来越难。另一种影响网络安全的就是流氓软件,通过传播流氓软件以弹出广告等方式牟利。甚至有部分正规厂商的软件也通过流氓软件推广,更是助长了流氓软件的盛行。
传统安全厂商可以通过拉黑病毒样本的方式来删除病毒软件。但对于流氓软件并发病毒、木马的入侵方式,简单的拉黑删除的处理方式不适宜用于对流氓软件的处理。因此需要对软件的安装包做精准识别,对不合规的软件(例如流氓软件、或者通过流氓软件渠道安装的正规厂商软件)安装时,执行拦截处理。
现有技术中对软件安装包的识别主要通过可执行(Portable Executable,PE)软件样本的识别,由于现有技术中依赖客户端上传软件样本到后台服务器,利用后台服务器的运算能力解析判定样本的属性,后台服务器对上传的软件样本做黑、白或者灰的识别之后,将判定结果通知给客户端。
现有技术中,大部分软件的安装包大小都比较大,如一般都大于3兆,有些甚至达到几百兆,而客户端向后台服务器上传文本样本的过程可能比较慢,部分大样本可能一直都无法成功上传到后台服务器,这样后台服务器就无法判定软件样本的属性,导致软件识别失败。
发明内容
本发明实施例提供了一种软件识别方法和服务器以及客户端,用于提高软件识别效率。
本发明实施例提供以下技术方案:
一方面,本发明实施例提供一种软件识别方法,包括:
服务器获取客户端发送的动态特征信息,所述动态特征信息用于记录第一软件在所述客户端上运行时产生的软件安装行为;
所述服务器获取所述第一软件对应的静态特征信息,所述静态特征信息用于携带生成所述第一软件时配置的软件信息;
所述服务器生成待识别的软件特征集合,所述软件特征集合包括:所述动态特征信息和所述静态特征信息;
所述服务器使用预置的特征识别库对所述软件特征集合进行软件识别,然后所述服务器输出所述第一软件对应的软件识别结果。
另一方面,本发明实施例还提供一种软件识别方法,包括:
客户端获取待安装的第一软件;
所述客户端获取所述第一软件的静态特征信息,并向服务器发送所述静态特征信息,所述静态特征信息用于携带生成所述第一软件时配置的软件信息;
所述客户端运行所述第一软件,以及所述客户端获取所述第一软件的动态特征信息,所述动态特征信息用于记录所述第一软件在运行时产生的软件安装行为;
所述客户端向所述服务器发送所述动态特征信息。
另一方面,本发明实施例还提供一种服务器,包括:
动态特征获取模块,用于获取客户端发送的动态特征信息,所述动态特征信息用于记录第一软件在所述客户端上运行时产生的软件安装行为;
静态特征获取模块,用于获取所述第一软件对应的静态特征信息,所述静态特征信息用于携带生成所述第一软件时配置的软件信息;
特征集合生成模块,用于生成待识别的软件特征集合,所述软件特征集合包括:所述动态特征信息和所述静态特征信息;
软件识别模块,用于使用预置的特征识别库对所述软件特征集合进行软件识别,然后输出所述第一软件对应的软件识别结果。
在前述方面中,服务器的组成模块还可以执行前述一方面以及各种可能的实现方式中所描述的步骤,详见前述对前述一方面以及各种可能的实现方式中的说明。
另一方面,本发明实施例还提供一种客户端,包括:
软件获取模块,用于获取待安装的第一软件;
静态特征发送模块,用于获取所述第一软件的静态特征信息,并向服务器发送所述静态特征信息,所述静态特征信息用于携带生成所述第一软件时配置的软件信息;
动态特征获取模块,用于运行所述第一软件,以及获取所述第一软件的动态特征信息,所述动态特征信息用于记录所述第一软件在运行时产生的软件安装行为;
动态特征发送模块,用于向所述服务器发送所述动态特征信息。
在前述方面中,客户端的组成模块还可以执行前述另一方面以及各种可能的实现方式中所描述的步骤,详见前述对前述另一方面以及各种可能的实现方式中的说明。
另一方面,本发明实施例提供一种服务器,该服务器包括:处理器、存储器;存储器用于存储指令;处理器用于执行存储器中的指令,使得服务器执行如前述一方面中任一项的方法。
另一方面,本发明实施例提供一种客户端,该客户端包括:处理器、存储器;存储器用于存储指令;处理器用于执行存储器中的指令,使得客户端执行如前述另一方面中任一项的方法。
另一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
在本发明实施例中,客户端获取待安装的第一软件,客户端获取第一软件的静态特征信息,并向服务器发送静态特征信息,静态特征信息用于携带生成第一软件时配置的软件信息,客户端运行第一软件,以及获取第一软件的动态特征信息,动态特征信息用于记录第一软件在运行时产生的软件安装行为,客户端向服务器发送动态特征信息。服务器获取客户端发送的动态特征信息,服务器获取第一软件对应的静态特征信息,服务器生成待识别的软件特征集合,软件特征集合包括:动态特征信息和静态特征信息,服务器使用预置的特征识别库对软件特征集合进行软件识别,然后服务器输出第一软件对应的软件识别结果。由于本发明实施例客户端可以获取到第一软件的静态特征信息,还可以在运行第一软件时获取到第一软件的动态特征信息,因此客户端只需要上报静态特征信息和动态特征信息给服务器,客户端无需上报第一软件,服务器根据静态特征信息和动态特征信息可以生成软件特征集合,并且服务器可以通过特征识别库对软件特征集合进行软件识别,服务器不需要使用第一软件作为软件样本进行识别,因此省去了服务器获取软件样本的过程,本发明实施例具有软件识别的时效性高的特点,另外本发明实施例服务器使用静态特征和动态特征共同用于软件识别,提高了软件识别的精确度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1-a为本发明实施例提供的一种软件识别方法的流程方框示意图;
图1-b为本发明实施例提供的另一种软件识别方法的流程方框示意图;
图2为本发明实施例提供的客户端上报静态特征信息的流程示意图;
图3为本发明实施例提供的客户端上报动态特征信息的流程示意图;
图4为本发明实施例提供的服务器生成解决方案标识信息的流程示意图;
图5为本发明实施例提供的服务器对软件安装包进行识别的流程示意图;
图6为本发明实施例提供的服务器和客户端之间进行软件安装包识别的交互流程示意图;
图7-a为本发明实施例提供的一种服务器的组成结构示意图;
图7-b为本发明实施例提供的一种软件识别模块的组成结构示意图;
图7-c为本发明实施例提供的另一种软件识别模块的组成结构示意图;
图8-a为本发明实施例提供的一种客户端的组成结构示意图;
图8-b为本发明实施例提供的另一种客户端的组成结构示意图;
图8-c为本发明实施例提供的一种动态特征获取模块的组成结构示意图;
图8-d为本发明实施例提供的另一种客户端的组成结构示意图;
图9为本发明实施例提供的软件识别方法应用于服务器的组成结构示意图;
图10为本发明实施例提供的软件识别方法应用于终端的组成结构示意图。
具体实施方式
本发明实施例提供了一种软件识别方法和服务器以及客户端,用于提高软件识别效率。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
本发明软件识别方法的一个实施例,具体可以应用于对客户端中的软件进行精确识别的场景中。本发明实施例提供的软件识别方法适用于客户端和服务器,该客户端和服务器之间建立有通信连接,例如客户端可以运行于终端上,终端和服务器之间建立有无线或者有线的连接。本发明实施例提供的客户端可以是电脑管家软件客户端,服务器具体可以是具有软件鉴定功能的云查服务器和后台服务器。
请参阅图1-a和图1-b所示,分别为本发明实施例提供的一个软件识别方法,可以包括如下步骤:
101、客户端获取待安装的第一软件。
其中,第一软件是指在客户端中待安装的软件,例如用户需要在客户端中安装第一软件时,该第一软件会进入到客户端中,客户端获取该第一软件。例如第一软件可以是软件安装包,或者是子文件,或者是主程序等。其中,子文件是软件安装包释放出来的文件,主程序也可以称为主函数,主程序是程序开始运行时先执行的程序。
本发明实施例中,软件安装包(Install pack)是指可执行(PortableExecutable,PE)软件,简称为安装包,安装包是软件所有文件的集合。运行安装包(即安装软件)时,可以将软件的文件内容释放到硬盘上,软件安装包的运行通常还会修改注册表、创建快捷方式等。
102、客户端获取第一软件的静态特征信息,并向服务器发送静态特征信息,静态特征信息用于携带生成第一软件时配置的软件信息。
在本发明实施例中,客户端获取到待安装的第一软件之后,从该第一软件中提取出静态特征信息,其中,静态特征信息是指包括有第一软件的静态特征的信息,本发明实施例中静态特征信息用于携带生成第一软件时配置的软件信息。例如软件生成端在生成第一软件时可以配置静态特征信息,即静态特征信息是由第一软件的生成端来配置,在第一软件输出给客户端使用之前该静态特征信息就会固定下来。
在本发明的一些实施例中,静态特征信息包括如下信息的至少一种:软件版本信息、软件签名信息、软件大小信息和软件完整性信息。其中,软件版本信息可以包括:软件描述信息(FileDescription)、文件名(OriginalFilename)等信息,软件签名信息可以是PE软件的数字签名,软件大小信息是指软件占用的存储空间的大小,例如软件大小可以通过字节、兆等单位来衡量,软件完整信息是指用于软件完整性校验的信息,例如通过校验PE软件中的校验和(Checksum)软件的完整性。静态特征信息可以包括上述任意一种信息,或者任意两种信息,或者任意三种信息,或者上述的4种全部信息,具体居于实现场景,例如可以由服务器进行软件识别时所需要的静态特征采集方式来确定。
需要说明的是,本发明实施例中客户端向服务器发送静态特征信息具有多种实现方式。例如客户端中需要安装第一软件时,客户端可以采集第一软件的静态特征信息并发送给服务器。又如客户端可以预先采集各种软件的静态特征信息,然后批量发送给服务器,服务器建立静态特征缓存池,服务器将客户端发送的多个静态特征信息存储到该静态特征缓存池。
在本发明的一些实施例中,步骤101客户端获取待安装的第一软件之后,本发明实施例提供的软件识别方法除了执行前述步骤之外,还可以包括如下步骤:
A1、客户端根据第一软件生成第一软件的唯一标识信息;
A2、客户端向服务器发送第一软件的唯一标识信息。
其中,客户端在获取到第一软件之后,还可以根据该第一软件生成一个唯一标识信息,该唯一标识信息是第一软件的标识值,客户端除了发送静态特征信息给服务器,还可以将第一软件的唯一标识信息发送给服务器。其中,客户端生成唯一标识信息的方式有多种,此处不做限定。例如唯一标识信息可以是根据第一软件生成的消息摘要算法第五版(Message-Digest Algorithm,MD5)。该唯一标识信息和第一软件的静态特征信息具有一一对应关系,例如服务器从客户端接收到静态特征信息时,存储该静态特征信息对应的唯一标识信息。
103、客户端运行第一软件,以及客户端获取第一软件的动态特征信息,动态特征信息用于记录第一软件在运行时产生的软件安装行为。
在本发明实施例中,客户端获取待安装的第一软件之后,客户端可以运行第一软件,即客户端上可以安装第一软件,在第一软件的执行过程中客户端可以记录第一软件所产生的软件安装行为,从而生成第一软件的动态特征信息。该动态特征信息用于记录第一软件在运行时产生的软件安装行为,例如动态特征信息可以是描述第一软件运行时所创建的进程行为信息。
在本发明的一些实施例中,动态特征信息包括如下信息的至少一种:进程启动路径、进程文件名、写注册表的内容、创建文件的内容。其中,进程启动路径是指第一软件所创建的进程的路径,进程文件名是指第一软件创建的进程的文件名称,写注册表的内容是指第一软件在运行时对注册表的操作内容,写注册表可以包括:写自启动注册表,写卸载项注册表等。创建文件的内容是第一软件在运行时进程所创建的文件内容。例如,动态特征信息是PE软件运行时产生的行为,如:修改注册表、创建快捷方式等。
在本发明的一些实施例中,步骤103客户端获取第一软件的动态特征信息,包括:
B1、客户端根据进程列表中的进程启动关系,确定第一软件运行时产生的第一进程和第二进程,第二进程和第一进程为父子进程;
B2、客户端获取第一进程和第二进程分别产生的进程行为信息;
B3、客户端根据第一进程和第二进程分别产生的进程行为信息生成动态特征信息。
其中,在第一软件的执行过程中客户端监控进程列表,当第一软件创建了新进程时获取进程启动关系,客户端确定第一软件运行时产生的第一进程和第二进程,第二进程和第一进程为父子进程,例如第一进程可以是父进程,第二进程可以是子进程。
需要说明的是,前述的步骤102和步骤103之间可以没有时序上的先后逻辑顺序,可以先执行步骤102后执行步骤103,也可以先执行步骤103再执行步骤102,还可以同时执行步骤102和步骤103。
104、客户端向服务器发送动态特征信息。
本发明实施例中,客户端向服务器发送动态特征信息具有多种实现方式。例如客户端中需要安装第一软件时,客户端可以采集第一软件的动态特征信息并发送给服务器。又如,在本发明实施例中,当客户端需要确定第一软件的软件类别时,客户端可以向服务器发送软件识别请求,该软件识别请求携带第一软件的动态特征信息。
在本发明的一些实施例中,动态特征信息包括:第一软件的唯一标识信息。其中,客户端在获取到第一软件之后,还可以根据该第一软件生成一个唯一标识信息,该唯一标识信息是第一软件的标识值,客户端除了发送静态特征信息、动态特征信息给服务器,还可以将第一软件的唯一标识信息发送给服务器。其中,客户端生成唯一标识信息的方式有多种,此处不做限定。该唯一标识信息和第一软件的动态特征信息具有一一对应关系,例如服务器从客户端接收到动态特征信息时,还可以从该动态特征信息中获取到对应的唯一标识信息。
在本发明的一些实施例中,步骤104客户端向服务器发送动态特征信息之后,本发明实施例提供的方法还包括:
C1、客户端接收服务器发送的解决方案标识信息;
C2、客户端根据解决方案标识信息确定第一软件为软件安装包,以及软件安装包对应的解决方案;
C3、客户端根据解决方案对第一软件进行相应的处理。
其中,当服务器识别出第一软件为软件安装包时,服务器可以生成软件安装包对应的解决方案,服务器向客户端发送解决方案标识信息,解决方案标识信息用于指示软件安装包对应的解决方案,其中解决方案指的是服务器对客户端如何处理第一软件作出的指示。最后服务器向客户端发送解决方案标识信息,从而使得客户端通过解决方案标识信息可以确定软件安装包对应的解决方案。其中,解决方案标识(SolutionID)信息可以是对PE软件打上身份标识的标识(ID),使得客户端获取到服务器提供的解决方案。举例说明如下,解决方案可以是第一软件进行拦截,或者删除,或者放行等。
105、服务器获取客户端发送的动态特征信息,动态特征信息用于记录第一软件在客户端上运行时产生的软件安装行为。
在本发明实施例中,服务器首先获取客户端发送的动态特征信息,例如,当客户端需要确定第一软件的软件类别时,客户端可以向服务器发送软件识别请求,服务器通过解析该软件识别请求获取到第一软件的动态特征信息。
在本发明的一些实施例中,动态特征信息包括如下信息的至少一种:进程启动路径、进程文件名、写注册表的内容、创建文件的内容。其中,进程启动路径是指第一软件所创建的进程的路径,进程文件名是指第一软件创建的进程的文件名称,写注册表的内容是指第一软件在运行时对注册表的操作内容,写注册表可以包括:写自启动注册表,写卸载项注册表等。创建文件的内容是第一软件在运行时进程所创建的文件内容。例如,动态特征信息是PE软件运行时产生的行为,如:修改注册表、创建快捷方式等。
106、服务器获取第一软件对应的静态特征信息,静态特征信息用于携带生成第一软件时配置的软件信息。
在本发明实施例中,服务器除了需要获取第一软件的动态特征信息,还需要获取客户端发送的静态特征信息。
在本发明的一些实施例中,静态特征信息包括如下信息的至少一种:软件版本信息、软件签名信息、软件大小信息和软件完整性信息。其中,软件版本信息可以包括:软件描述信息、文件名等信息,软件签名信息可以是PE软件的数字签名,软件大小信息是指软件占用的存储空间的大小,例如软件大小可以通过字节、兆等单位来衡量,软件完整信息是指用于软件完整性校验的信息,例如通过PE文件中的校验和(Checksum)校验软件的完整性。静态特征信息可以包括上述任意一种信息,或者任意两种信息,或者任意三种信息,或者上述的4种全部信息,具体居于实现场景,例如可以由服务器进行软件识别时所需要的静态特征采集方式来确定。
在本发明的一些实施例中,动态特征信息包括:第一软件的唯一标识信息。其中,客户端在获取到第一软件之后,还可以根据该第一软件生成一个唯一标识信息,该唯一标识信息是第一软件的标识值,客户端除了发送静态特征信息、动态特征信息给服务器,还可以将第一软件的唯一标识信息发送给服务器。其中,客户端生成唯一标识信息的方式有多种,此处不做限定。该唯一标识信息和第一软件的动态特征信息具有一一对应关系,例如服务器从客户端接收到动态特征信息时,还可以从该动态特征信息中获取到对应的唯一标识信息。
在本发明的一些实施例中,动态特征信息包括:第一软件的唯一标识信息。
步骤106服务器获取第一软件对应的静态特征信息,包括:
D1、服务器根据第一软件的唯一标识信息查询预置的静态特征缓存池,从静态特征缓存池中输出第一软件对应的静态特征信息。
其中,客户端可以预先采集各种软件的静态特征信息,然后批量发送给服务器,服务器建立静态特征缓存池,服务器将客户端发送的多个静态特征信息存储到该静态特征缓存池。当服务器获取到第一软件的唯一标识信息之后,根据第一软件的唯一标识信息查询静态特征缓存池,从静态特征缓存池中输出第一软件对应的静态特征信息,例如服务器采用索引查询的方式确定第一软件对应的静态特征信息。
107、服务器生成待识别的软件特征集合,软件特征集合包括:动态特征信息和静态特征信息。
在本发明实施例中,服务器获取第一软件的静态特征信息和动态特征信息之后,将该静态特征信息和动态特征信息组合在一起得到待识别的软件特征集合,例如软件特征集合可以是一个完整的待鉴定信息字符串,在该信息字符串中包括有第一软件的动态特征和静态特征。
在本发明的一些实施例中,软件特征集合中还可以包括第一软件的唯一标识信息,唯一标识信息和第一软件的动态特征信息、静态特征信息分别具有一一对应关系。
108、服务器使用预置的特征识别库对软件特征集合进行软件识别,然后服务器输出第一软件对应的软件识别结果。
在本发明实施例中,服务器生成待识别的软件特征集合之后,服务器使用特征识别库对软件特征集合进行软件识别,该特征识别库中包括有服务器预先配置的特征识别算法,通过特征识别库可以实现对软件特征集合进行软件识别,由于软件特征集合中包括有第一软件的动态特征信息、静态特征信息,因此通过特征识别库可以实现对第一软件的动态特征信息、静态特征信息的综合识别,在软件识别完成之后软件识别结果,服务器输出该第一软件对应的软件识别结果,例如软件识别结果可以包括对第一软件的软件类型的识别结果,还可以包括对第一软件如何进行处理的解决方案。
在本发明的一些实施例中,步骤108服务器输出第一软件对应的软件识别结果,包括:
E1、服务器根据软件识别结果确定第一软件为软件安装包;
E2、服务器生成软件安装包对应的解决方案;
E3、服务器向客户端发送解决方案标识信息,解决方案标识信息用于指示软件安装包对应的解决方案。
其中,当服务器识别出第一软件为软件安装包时,服务器可以生成软件安装包对应的解决方案,服务器向客户端发送解决方案标识信息,解决方案标识信息用于指示软件安装包对应的解决方案,其中解决方案指的是服务器对客户端如何处理第一软件作出的指示。最后服务器向客户端发送解决方案标识信息,从而使得客户端通过解决方案标识信息可以确定软件安装包对应的解决方案。其中,解决方案标识(SolutionID)信息可以是对PE软件打上身份标识的标识(ID),使得客户端获取到服务器提供的解决方案。举例说明如下,解决方案可以是第一软件进行拦截,或者删除,或者放行等。
在本发明的一些实施例中,解决方案标识信息包括:服务器为第一软件分配的软件标识、第一软件对应的软件类型为软件安装包。
其中,解决方案标识信息中可以包括第一软件的软件标识,软件标识是服务器为该第一软件配置的标识,通过软件标识可以标识出不同的软件安装包。该解决方案标识信息中还包括有第一软件对应的软件类型。不限定的是,软件类型可以有多种,例如软件类型可以是安装包、子文件、主程序等类型。
需要说明的是,在解决方案标识信息中还可以根据实际需要扩展其它需要的属性。例如其它属性包括:标记软件是不是流氓软件、安装包推装的渠道等。
在本发明的一些实施例中,步骤108服务器使用预置的特征识别库对软件特征集合进行软件识别,包括:
F1、服务器根据软件特征集合中的特征类型从特征识别库中获取与特征类型对应的特征识别表达式;
F2、服务器使用特征识别表达式和软件特征集合中的每条软件特征进行匹配识别。
其中,服务器可以建立安装包的特征识别库,通过安装包的特征识别库可以识别软件的类型,其中,特征识别库是所有用于鉴定的特征识别表达式集合,特征识别表达式可以由静态特征表达式和动态特征表达式组合而成,其中静态特征表达式和动态特征表达式可以分别有多种,通过静态特征表达式和动态特征表达式的多种细分特征可任意组合,例如可以有3个或者更多的静态特征表达式和动态特征表达式组成特征识别库,服务器使用特征识别表达式和软件特征集合中的每条软件特征进行匹配识别。对于特征识别时采用的算法需要结合具体采集的软件特征来确定,后续实施例将针对具体类型的软件所采用的特征识别算法进行举例说明。
通过以上实施例对本发明实施例的描述可知,客户端获取待安装的第一软件,客户端获取第一软件的静态特征信息,并向服务器发送静态特征信息,静态特征信息用于携带生成第一软件时配置的软件信息,客户端运行第一软件,以及获取第一软件的动态特征信息,动态特征信息用于记录第一软件在运行时产生的软件安装行为,客户端向服务器发送动态特征信息。服务器获取客户端发送的动态特征信息,服务器获取第一软件对应的静态特征信息,服务器生成待识别的软件特征集合,软件特征集合包括:动态特征信息和静态特征信息,服务器使用预置的特征识别库对软件特征集合进行软件识别,然后服务器输出第一软件对应的软件识别结果。由于本发明实施例客户端可以获取到第一软件的静态特征信息,还可以在运行第一软件时获取到第一软件的动态特征信息,因此客户端只需要上报静态特征信息和动态特征信息给服务器,客户端无需上报第一软件,服务器根据静态特征信息和动态特征信息可以生成软件特征集合,并且服务器可以通过特征识别库对软件特征集合进行软件识别,服务器不需要使用第一软件作为软件样本进行识别,因此省去了服务器获取软件样本的过程,本发明实施例具有软件识别的时效性高的特点,另外本发明实施例服务器使用静态特征和动态特征共同用于软件识别,提高了软件识别的精确度。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本发明提供一个基于软件安装包的动态特征和静态特征相结合的方案,不依赖客户端向服务器的文件样本上传,可以实现对软件安装包的精确识别。
本发明实施例提供的客户端具体可以是个人电脑中的电脑管家,本发明实施例提供的服务器具体可以是云查服务器(简称云查)和后台服务器(简称后台)。当软件进程启动时,电脑管家会扫描进程文件,并且云查服务器获取软件的解决方案,即SolutionID。当软件安装包被标记了SolutionID后,客户端可准确识别出运行的进程是安装包,并且SolutionID附带的解决方案可告知客户端,这是一个流氓软件。因为Solutionid已经标记样本是不是安装包,没有Solutionid的样本,客户端只能确定样本的信息为黑,或者白,或者灰,而无法确定软件是不是安装包。
客户端通过SolutionID判断,如果启动的进程文件是安装包并且是流氓软件后,则提示拦截。
如图2所示,为本发明实施例提供的客户端上报静态特征信息的流程示意图,主要包括如下流程:
S01、客户端执行软件监控。
例如客户端中设置有软件监控引擎,通过该软件监控引擎实现对新软件的监控。
S02、客户端检测到新软件。
当客户端检测到新软件时执行步骤S03。
S03、客户端提取静态特征信息。
其中,客户端可以通过安装包特征聚类分析,可总结出安装包的通用静态特征。例如静态特征可以包括软件版本信息和文件名,其中,软件版本信息的改动频率较低,可用于安装包特征识别。常规软件安装包的文件名命名比较相对规范,可用于安装包识别辅助特征。
举例说明获取PE软件的静态特征信息。需要获取的静态特征信息主要是读取软件版本信息,该软件版本信息可以如下表1所示:
客户端中可以设置软件监控引擎和静态特征信息获取引擎。在客户端通过软件监控引擎,检测到有新软件进入电脑客户端时,通过静态特征信息获取引擎主要获取如下信息:md5、软件版本信息、签名、软件完整性校验信息。其中,软件完整性校验是指通过校验PE软件中的Checksum校验软件的完整性。获取到静态特征信息后,客户端把软件的静态信息上报到后台。
S04、客户端上报静态特征信息。
如图3所示,为本发明实施例提供的客户端上报动态特征信息的流程示意图。主要包括如下流程:
S11、客户端监控进程列表。
其中,客户端中设置实时防护引擎,通过该实时防护引擎监控进程列表。
S12、客户端监控到新进程启动。
例如,进程启动关系包括有父进程、子进程。
S13、客户端监控进程行为。
其中,进程行为指的是父进程子进程产生的进程行为信息,例如可以包括如下行为:写自启动注册表、写卸载项注册表、创建文件。
举例说明如下,通过分析软件安装的过程,可提取出通用的软件安装行为特征,软件安装过程中,安装包有以下行为特征:写自启动注册表、写卸载项注册表、写快捷方式。
S14、客户端上报动态特征信息.
其中,客户端具体上报如下内容:父进程子进程路径、文件名信息,父进程子进程产生的进程行为信息。
需要获取的动态特征信息有:软件进程启动路径、进程文件名、软件行为(写自启动注册表、写卸载项注册表、写文件等)。其中,任何创建一个文件的行为都可以是写文件,包括写快捷方式。软件进程启动路径是指新进程启动的路径。进程文件名是指新进程的文件名。
接下来对软件安装行为进行举例说明,其中,软件安装行为可以是软件写注册表内容,例如关键的注册表位置的写入,如下表2所示的注册表内容:
另外,软件安装行为可以是写文件,写文件主要包括写桌面快捷方式、写开始菜单快捷方式等。
本发明实施例中可以结合安装包的静态特征和安装时的动态特征,达到精确识别软件安装包的目的。
接下来对服务器执行的软件识别过程进行举例说明。其中,服务器中可以设置后台安装包识别引擎。
该后台安装包识别引擎首先生成后台软件静态特征缓存池。
后台对上报的软件静态特征信息建立缓存池,新出现的软件样本的静态特征信息都缓存起来,并且提供快速查询接口,例如用软件md5通过接口可以快速查询到软件的静态信息特征如下所示的代码行:
如图4所示,为本发明实施例提供的服务器生成解决方案标识信息的流程示意图,主要包括如下流程:
S21、服务器生成FileInfoStr字符串。
后台对动态特征与静态特征关联。客户端监控到新样本存在关键行为(写注册表、写快捷方式、卸载项注册表)时,计算软件样本的md5并且上报样本的动态特征信息,例如客户端软件监控引擎、进程创建监控服务都可以监控到软件的动态行为。后台在收到样本的动态样本信息时,根据样本的md5,通过静态特征缓存池,查询得到样本对应的静态特征信息。组合成一条完整的待鉴定信息字符串,例如该字符串为(FileInfoStr),FileInfoStr={{md5}、{动态信息特征}、{静态信息特征}}。
S22、服务器获取特征识别库。
S23、服务器获取特征识别表达式。
S24、服务器使用表达式进行匹配。
其中,若匹配完成,执行步骤S25,若匹配没有完成,重新执行步骤S22,获取下一个特征识别表达式。
接下来对安装包的鉴定识别过程进行举例说明,后台建立安装包的特征识别库,待鉴定的FileInfoStr字符串通过安装包特征识别库进行识别。
其中,特征识别库是所有用于鉴定的特征表达式集合。特征表达式由静态特征表达式和动态特征表达式组合而成,其中细分特征可任意组合,个数只要>=3即可组成一条特征表达式。如下表3所示,为一种示例的特征识别表达式:
在获取到各种特征表达式之后,将待鉴定的FileInfoStr字符串通过匹配各种特征表达式识别。
S25、服务器输出SolutionID。
服务器可以对安装包配置SolutionID。对识别出的安装包对应的MD5打上解决方案(SolutionID),SolutionID信息包含:软件ID,类型,其它属性。
其中,软件ID是内部对不同软件分配的ID。具体可以自定义的一个软件ID对应一款软件。软件类型可以包括软件安装包、子文件、主程序等类型。其中,软件安装包释放出来的文件属于子文件,主程序也属于子文件,可以将主程序做单独标记,软件安装包释放出来的其它文件统称子文件。其它属性是指根据实际应用场景可扩展其它需要的属性。例如,SolutionID是对样本增加标记,其它属性包括:可标记软件是不是流氓软件、安装包样本推装的渠道等。
如图5为本发明实施例提供的服务器对软件安装包进行识别的流程示意图,主要包括如下流程:
S31、客户端上报软件特征信息。
S32、服务器确定上报类型。
若上报的类型是静态特征信息,执行步骤S33,若上报的类型是动态特征信息,执行步骤S34。
S33、服务器将静态特征信息存储到静态特征缓存池。
S34、服务器获取静态特征信息。
S35、服务器生成FileInfoStr字符串。
其中,待鉴定的特征字符串:动态特征信息和静态特征信息。
S36、服务器进行安装包特征识别。
S37、服务器记录SolutionID。
如图6所示,为本发明实施例提供的服务器和客户端之间进行软件安装包识别的交互流程示意图。安装包鉴定整体流程包括:
S41、客户端扫描第一软件的软件样本。
S42、客户端计算md5。
S43、客户端向服务器查询。
S44、客户端获取SolutionID。
客户端扫描软件样本,向后台问询样本md5的SolutionID。
若获取到SolutionID,执行步骤S45,若无法获取到SolutionID,执行步骤S46。
S45、客户端根据SolutionID执行相关解决方案。
如果有SolutionID,则客户端根据SolutionID走相应处理逻辑。客户端根据Solutionid,可以对安装包安装时,进行拦截等操作。
S46、客户端上传动态特征信息、静态特征信息。
如果向后台没问询到SolutionID,则上报样本静态特征信息和动态特征信息。例如客户端会上报静态特征信息,后台缓存静态特征信息。
S47、服务器进行软件识别。
例如服务器中设置有安装包识别引擎,可根据上报的静态特征信息和动态特征信息来鉴定软件,判断软件是不是安装包。
S48、服务器记录软件安装包的SolutionID。
最后服务器记录识别结果,对被识别的安装包增加SolutionID标记。
通过前述的举例说明可知,本发明实施例针对现有技术样本鉴定等方案需要上传样本到后台才能鉴定,本发明实施例不依赖样本上传,时效性比较高。针对现有技术样本鉴定等方案需要上传样本到后台才能鉴定,大部分安装包因为大小问题,无法成功上传到后台,本发明实施例解决了无样本鉴定的问题。针对紧依赖静态特征鉴定安装包,存在鉴定精度不够的问题,本发明实施例中将静态特征信息结合动态特征信息,可以更精确识别鉴定出是什么软件的安装包。
针对现有技术对样本属性标识只有黑、白、灰、未知属性问题,其中,灰是介于白和黑的中间属性,通常灰属性的软件不是一般是后台暂无法判断出黑或白时,会先记录灰属性。而未知则是后台没有记录到这个样本任何信息。本发明实施例还可以扩展SolutionID方案,可以对已识别的安装包精确标识软件属性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图7-a所示,本发明实施例提供的一种服务器700,可以包括:动态特征获取模块701、静态特征获取模块702、特征集合生成模块703、软件识别模块704,其中,
动态特征获取模块701,用于获取客户端发送的动态特征信息,所述动态特征信息用于记录第一软件在所述客户端上运行时产生的软件安装行为;
静态特征获取模块702,用于获取所述第一软件对应的静态特征信息,所述静态特征信息用于携带生成所述第一软件时配置的软件信息;
特征集合生成模块703,用于生成待识别的软件特征集合,所述软件特征集合包括:所述动态特征信息和所述静态特征信息;
软件识别模块704,用于使用预置的特征识别库对所述软件特征集合进行软件识别,然后输出所述第一软件对应的软件识别结果。
在本申请的一些实施例中,所述动态特征信息包括:所述第一软件的唯一标识信息;
所述静态特征获取模块702,还用于根据所述第一软件的唯一标识信息查询预置的静态特征缓存池,从所述静态特征缓存池中输出所述第一软件对应的静态特征信息。
在本申请的一些实施例中,如图7-b所示,所述软件识别模块704,包括:
软件类型确定单元7041,用于根据所述软件识别结果确定所述第一软件为软件安装包;
解决方案生成单元7042,用于生成所述软件安装包对应的解决方案;
发送单元7043,用于向所述客户端发送解决方案标识信息,所述解决方案标识信息用于指示所述软件安装包对应的解决方案。
在本申请的一些实施例中,所述解决方案标识信息包括:所述服务器为所述第一软件分配的软件标识、所述第一软件对应的软件类型为所述软件安装包。
在本申请的一些实施例中,如图7-c所示,所述软件识别模块704,包括:
识别表达式获取单元7044,用于根据所述软件特征集合中的特征类型从所述特征识别库中获取与所述特征类型对应的特征识别表达式;
匹配识别单元7045,用于使用所述特征识别表达式和所述软件特征集合中的每条软件特征进行匹配识别。
在本申请的一些实施例中,所述静态特征信息包括如下信息的至少一种:软件版本信息、软件签名信息、软件大小信息和软件完整性信息;
所述动态特征信息包括如下信息的至少一种:进程启动路径、进程文件名、写注册表的内容、创建文件的内容。
请参阅图8-a所示,本发明实施例提供的一种客户端800,可以包括:软件获取模块801、静态特征发送模块802、动态特征获取模块803和动态特征发送模块804,其中,
软件获取模块801,用于获取待安装的第一软件;
静态特征发送模块802,用于获取所述第一软件的静态特征信息,并向服务器发送所述静态特征信息,所述静态特征信息用于携带生成所述第一软件时配置的软件信息;
动态特征获取模块803,用于运行所述第一软件,以及获取所述第一软件的动态特征信息,所述动态特征信息用于记录所述第一软件在运行时产生的软件安装行为;
动态特征发送模块804,用于向所述服务器发送所述动态特征信息。
在本申请的一些实施例中,如图8-b所示,所述客户端800还包括:标识信息发送模块805,其中,
所述标识信息发送模块805,用于所述软件获取模块801获取待安装的第一软件之后,根据所述第一软件生成所述第一软件的唯一标识信息;向所述服务器发送所述第一软件的唯一标识信息。
在本申请的一些实施例中,如图8-c所示,所述动态特征获取模块803,包括:
进程确定单元8031,用于根据进程列表中的进程启动关系,确定所述第一软件运行时产生的第一进程和第二进程,所述第二进程和所述第一进程为父子进程;
进程行为获取单元8032,用于获取所述第一进程和所述第二进程分别产生的进程行为信息;
动态特征生成单元8033,用于根据所述第一进程和所述第二进程分别产生的进程行为信息生成所述动态特征信息。
在本申请的一些实施例中,如图8-d所示,相对于图8-a所示,所述客户端800还包括:解决方案确定模块806和软件处理模块807,其中,
所述解决方案确定模块806,用于所述动态特征发送模块804向所述服务器发送所述动态特征信息之后,接收所述服务器发送的解决方案标识信息;根据所述解决方案标识信息确定所述第一软件为软件安装包,以及所述软件安装包对应的解决方案;
所述软件处理模块807,用于根据所述解决方案对所述第一软件进行相应的处理。
在本申请的一些实施例中,所述静态特征信息包括如下信息的至少一种:软件版本信息、软件签名信息、软件大小信息和软件完整性信息;
所述动态特征信息包括如下信息的至少一种:进程启动路径、进程文件名、写注册表的内容、创建文件的内容。
通过以上对本发明实施例的描述可知,客户端获取待安装的第一软件,客户端获取第一软件的静态特征信息,并向服务器发送静态特征信息,静态特征信息用于携带生成第一软件时配置的软件信息,客户端运行第一软件,以及获取第一软件的动态特征信息,动态特征信息用于记录第一软件在运行时产生的软件安装行为,客户端向服务器发送动态特征信息。服务器获取客户端发送的动态特征信息,服务器获取第一软件对应的静态特征信息,服务器生成待识别的软件特征集合,软件特征集合包括:动态特征信息和静态特征信息,服务器使用预置的特征识别库对软件特征集合进行软件识别,然后服务器输出第一软件对应的软件识别结果。由于本发明实施例客户端可以获取到第一软件的静态特征信息,还可以在运行第一软件时获取到第一软件的动态特征信息,因此客户端只需要上报静态特征信息和动态特征信息给服务器,客户端无需上报第一软件,服务器根据静态特征信息和动态特征信息可以生成软件特征集合,并且服务器可以通过特征识别库对软件特征集合进行软件识别,服务器不需要使用第一软件作为软件样本进行识别,因此省去了服务器获取软件样本的过程,本发明实施例具有软件识别的时效性高的特点,另外本发明实施例服务器使用静态特征和动态特征共同用于软件识别,提高了软件识别的精确度。
图9是本发明实施例提供的一种服务器结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的软件识别方法步骤可以基于该图9所示的服务器结构。
本发明实施例还提供了一种终端,如图10所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(PersonalDigital Assistant,个人数字助理)、POS(Point ofSales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图10示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图10,手机包括:射频(Radio Frequency,RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(wireless fidelity,WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图10对手机的各个构成部件进行具体的介绍:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图10中,触控面板1031与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器1080还具有控制执行以上由终端执行的软件识别方法流程。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种软件识别方法,其特征在于,应用于软件安装包的识别场景,所述软件识别方法适用于客户端和服务器,所述客户端和所述服务器之间建立有通信连接,所述软件识别方法包括:
所述客户端获取待安装的第一软件;
所述客户端根据所述第一软件的唯一标识信息查询预置的静态特征缓存池,从所述静态特征缓存池中输出所述第一软件对应的静态特征信息,并向服务器发送所述静态特征信息,所述静态特征信息用于携带生成所述第一软件时配置的软件信息,所述静态特征信息包括软件完整性信息、软件版本信息、软件签名信息和软件大小信息,所述软件完整性信息是指用于软件完整性校验的信息;
所述客户端运行所述第一软件,以及所述客户端获取所述第一软件的动态特征信息,并向服务器发送所述动态特征信息,所述动态特征信息用于记录所述第一软件在运行时产生的软件安装行为,所述动态特征信息包括写注册表的内容和创建文件的内容中的任意一种或组合,所述动态特征信息包括:所述第一软件的唯一标识信息;
服务器获取客户端发送的动态特征信息;
所述服务器获取所述第一软件对应的包括软件完整性信息的静态特征信息;
所述服务器生成待识别的软件特征集合,所述软件特征集合包括:所述动态特征信息和所述静态特征信息;
所述服务器根据所述软件特征集合中的特征类型从预置的特征识别库中获取与所述特征类型对应的特征识别表达式;
所述服务器使用所述特征识别表达式和所述软件特征集合中的每条软件特征进行匹配识别,然后所述服务器输出所述第一软件对应的软件识别结果,所述特征识别库为所有用于鉴定的特征识别表达式集合,所述特征识别表达式由静态特征表达式和动态特征表达式组合而成,其中,所述服务器输出所述第一软件对应的软件识别结果,包括:所述服务器根据所述软件识别结果确定所述第一软件为软件安装包;所述服务器生成所述软件安装包对应的解决方案;所述服务器向所述客户端发送解决方案标识信息,所述解决方案标识信息用于指示所述软件安装包对应的解决方案;
所述客户端根据获取所述服务器发送的所述解决方案标识信息执行对应的解决方案。
2.根据权利要求1所述的方法,其特征在于,所述解决方案标识信息包括:所述服务器为所述第一软件分配的软件标识、所述第一软件对应的软件类型为所述软件安装包。
3.根据权利要求1或2所述的方法,其特征在于,所述动态特征信息还包括如下信息的至少一种:进程启动路径、进程文件名。
4.根据权利要求1所述的方法,其特征在于,所述客户端获取待安装的第一软件之后,所述方法还包括:
所述客户端根据所述第一软件生成所述第一软件的唯一标识信息;
所述客户端向所述服务器发送所述第一软件的唯一标识信息。
5.根据权利要求1所述的方法,其特征在于,所述客户端获取所述第一软件的动态特征信息,包括:
所述客户端根据进程列表中的进程启动关系,确定所述第一软件运行时产生的第一进程和第二进程,所述第二进程和所述第一进程为父子进程;
所述客户端获取所述第一进程和所述第二进程分别产生的进程行为信息;
所述客户端根据所述第一进程和所述第二进程分别产生的进程行为信息生成所述动态特征信息。
6.根据权利要求1所述的方法,其特征在于,所述服务器向所述客户端发送解决方案标识信息之后,所述方法还包括:
所述客户端接收所述服务器发送的解决方案标识信息;
所述客户端根据所述解决方案标识信息确定所述第一软件为软件安装包,以及所述软件安装包对应的解决方案;
所述客户端根据所述解决方案对所述第一软件进行相应的处理。
7.一种软件识别系统,其特征在于,应用于软件安装包的识别场景,所述软件识别系统包括服务器和客户端,
所述客户端包括:
软件获取模块,用于获取待安装的第一软件;
静态特征发送模块,用于根据所述第一软件的唯一标识信息查询预置的静态特征缓存池,从所述静态特征缓存池中输出所述第一软件对应的静态特征信息,并向服务器发送所述静态特征信息,所述静态特征信息用于携带生成所述第一软件时配置的软件信息,所述静态特征信息包括软件完整性信息、软件版本信息、软件签名信息和软件大小信息,所述软件完整性信息是指用于软件完整性校验的信息;
动态特征获取模块,用于运行所述第一软件,以及获取所述第一软件的动态特征信息,所述动态特征信息用于记录所述第一软件在运行时产生的软件安装行为,所述动态特征信息包括写注册表的内容和创建文件的内容中的任意一种或组合,所述动态特征信息包括:所述第一软件的唯一标识信息;
动态特征发送模块,用于向所述服务器发送所述动态特征信息;
所述服务器包括:
动态特征获取模块,用于获取客户端发送的动态特征信息;
静态特征获取模块,用于获取所述第一软件对应的包括软件完整性信息的静态特征信息;
特征集合生成模块,用于生成待识别的软件特征集合,所述软件特征集合包括:所述动态特征信息和所述静态特征信息;
软件识别模块,用于根据所述软件特征集合中的特征类型从预置的特征识别库中获取与所述特征类型对应的特征识别表达式;使用所述特征识别表达式和所述软件特征集合中的每条软件特征进行匹配识别,然后输出所述第一软件对应的软件识别结果,所述特征识别库为所有用于鉴定的特征识别表达式集合,所述特征识别表达式由静态特征表达式和动态特征表达式组合而成,其中,所述输出所述第一软件对应的软件识别结果,包括:所述服务器根据所述软件识别结果确定所述第一软件为软件安装包;所述服务器生成所述软件安装包对应的解决方案;所述服务器向所述客户端发送解决方案标识信息,所述解决方案标识信息用于指示所述软件安装包对应的解决方案;
所述客户端还包括软件处理模块,所述软件处理模块用于根据获取所述服务器发送的所述解决方案标识信息执行对应的解决方案。
8.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;
所述存储器,用于存储指令;
所述处理器,用于执行所述存储器中的所述指令,执行如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811623706.8A CN110399721B (zh) | 2018-12-28 | 2018-12-28 | 一种软件识别方法和服务器以及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811623706.8A CN110399721B (zh) | 2018-12-28 | 2018-12-28 | 一种软件识别方法和服务器以及客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399721A CN110399721A (zh) | 2019-11-01 |
CN110399721B true CN110399721B (zh) | 2023-04-07 |
Family
ID=68322540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811623706.8A Active CN110399721B (zh) | 2018-12-28 | 2018-12-28 | 一种软件识别方法和服务器以及客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399721B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990296B (zh) * | 2019-12-20 | 2023-10-13 | 抖音视界有限公司 | 类组件的识别方法及服务器、终端、存储介质 |
CN112307371B (zh) * | 2020-10-27 | 2024-03-22 | 支付宝(杭州)信息技术有限公司 | 小程序子服务识别方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123490A (zh) * | 2014-07-02 | 2014-10-29 | 珠海市君天电子科技有限公司 | 恶意捆绑软件的处理方法、装置和移动终端 |
CN104135479A (zh) * | 2014-07-29 | 2014-11-05 | 腾讯科技(深圳)有限公司 | 云端实时防御方法及系统 |
CN106709337A (zh) * | 2015-11-18 | 2017-05-24 | 中兴通讯股份有限公司 | 一种恶意捆绑软件的处理方法和装置 |
CN105550573B (zh) * | 2015-12-23 | 2019-01-15 | 北京奇虎科技有限公司 | 拦截捆绑软件的方法和装置 |
-
2018
- 2018-12-28 CN CN201811623706.8A patent/CN110399721B/zh active Active
Non-Patent Citations (1)
Title |
---|
彭国军,傅建明,梁玉编著.10.1.2校验和检测技术.《软件安全》.武汉大学出版社,2015,第250页. * |
Also Published As
Publication number | Publication date |
---|---|
CN110399721A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9800609B2 (en) | Method, device and system for detecting malware in a mobile terminal | |
US11323542B2 (en) | Objection blocking method, terminal, server, and storage medium | |
CN107329985B (zh) | 一种页面的收藏方法、装置和移动终端 | |
CN107729815B (zh) | 图像处理方法、装置、移动终端及计算机可读存储介质 | |
CN105471931B (zh) | 一种查询业务数据的方法、装置和系统 | |
CN107204964B (zh) | 一种权限管理的方法、装置和系统 | |
CN108089977B (zh) | 一种应用程序的异常处理方法、装置及移动终端 | |
CN104424431B (zh) | 一种重置虚拟机用户登陆密码的方法及装置 | |
US10956653B2 (en) | Method and apparatus for displaying page and a computer storage medium | |
CN109948090B (zh) | 网页加载方法及装置 | |
WO2015014259A1 (en) | Method and device for accelerating anti-virus scanning cross-reference to related applications | |
CN106951492B (zh) | 文件搜索方法、装置和电子设备 | |
CN109002547B (zh) | 日志文件存储方法、移动终端及计算机可读存储介质 | |
US10298590B2 (en) | Application-based service providing method, apparatus, and system | |
EP2869604B1 (en) | Method, apparatus and device for processing a mobile terminal resource | |
US20150089662A1 (en) | Method and system for identifying file security and storage medium | |
CN110399721B (zh) | 一种软件识别方法和服务器以及客户端 | |
CN116956080A (zh) | 一种数据处理方法、装置以及存储介质 | |
CN107844318B (zh) | 一种操作系统的升级方法及移动终端和服务器 | |
CN109450853B (zh) | 恶意网站判定方法、装置、终端及服务器 | |
CN110196662B (zh) | 一种展示同步状态的方法、装置、终端及存储介质 | |
CN115061939B (zh) | 数据集安全测试方法、装置及存储介质 | |
CN112445967A (zh) | 信息推送的方法、装置、可读存储介质及信息推送系统 | |
CN106933626B (zh) | 应用关联方法及装置 | |
CN109325003B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |