CN110569646B - 文件识别方法及介质 - Google Patents
文件识别方法及介质 Download PDFInfo
- Publication number
- CN110569646B CN110569646B CN201910843816.3A CN201910843816A CN110569646B CN 110569646 B CN110569646 B CN 110569646B CN 201910843816 A CN201910843816 A CN 201910843816A CN 110569646 B CN110569646 B CN 110569646B
- Authority
- CN
- China
- Prior art keywords
- file
- target file
- shell
- target
- section
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了文件识别方法及介质,所述方法包括:获取目标文件,所述目标文件为异常文件;计算所述目标文件所包含的可执行区段的熵值总和;当所述熵值总和大于预设阈值,且所述目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将所述目标文件识别为加壳文件。采用本发明实施例,可有效提高加壳文件识别的准确率。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及文件识别方法及介质。
背景技术
可移植的执行体(Portable Executable,PE)文件是微软Windows操作系统上的程序文件,PE文件的格式为PE格式,PE格式是目前Windows操作系统的主流可执行文件格式,例如PE格式为EXE、DLL、OCX、SYS或COM的文件都是PE文件。服务器会对客户端上运行的PE文件进行分析,以识别该PE文件是否为异常文件。非法用户通过加壳技术阻碍服务器的文件分析,从而影响服务器对异常文件的识别。其中,壳是专用加密软件技术的一种称呼。壳附加在原始程序上,通过Windows加载器加入内存后,先于原始程序执行,以得到控制权,在执行过程中对原始程序进行解密、还原,还原后把控制权还给原始程序,执行原始程序。
基于此,识别PE文件是否加壳尤为重要,传统的识别方法为:获取PE文件的文件熵值,当文件熵值小于6.5时,确定该PE文件为无壳文件;当文件熵值大于6.5且小于6.75时,确定该PE文件可能为加壳文件;当文件熵值大于6.75时,确定该PE文件为加壳文件。通过该方法对3205个无壳文件进行测试,将其中的754个PE文件识别为加壳文件,即误判率为23.52%,由此可见,通过该方法识别得到加壳文件的准确率较低。
发明内容
本发明实施例提供了一种文件识别方法及介质,在目标文件所包含的可执行区段的熵值总和大于预设阈值,且目标文件中存在异常区段标识所标识的区段时,将目标文件识别为加壳文件,可有效提高加壳文件识别的准确率。
为了解决上述技术问题,第一方面,本发明实施例提供了一种文件识别方法,所述方法包括:
获取目标文件,所述目标文件为异常文件;
计算所述目标文件所包含的可执行区段的熵值总和;
当所述熵值总和大于预设阈值,且所述目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将所述目标文件识别为加壳文件。
第二方面,本发明实施例提供了另一种文件识别方法,所述方法包括:
获取在客户端中运行的文件;
对所述文件进行识别,得到识别为异常文件的文件,并将得到的文件作为目标文件;
将所述目标文件发送给服务器,以使所述服务器计算所述目标文件所包含的可执行区段的熵值总和,当所述熵值总和大于预设阈值,且所述目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,所述服务器将所述目标文件识别为加壳文件。
第二方面,本发明实施例提供了一种服务器,所述服务器包括用于执行第一方面所述的方法的单元。
第三方面,本发明实施例提供了一种客户端,所述客户端包括用于执行第二方面所述的方法的单元。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被服务器执行时使所述服务器执行如第一方面所述的方法。
第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被客户端执行时使所述客户端执行如第二方面所述的方法。
第六方面,本发明实施例提供了一种服务器,该服务器包括:处理器、存储器和通信接口,存储器中存储有程序指令,处理器调用存储器中存储的程序指令以用于执行如第一方面所述的方法。
第七方面,本发明实施例提供了一种客户端,该客户端包括:处理器、存储器和通信接口,存储器中存储有程序指令,处理器调用存储器中存储的程序指令以用于执行如第二方面所述的方法。
实施本发明实施例,服务器获取到为异常文件的目标文件之后,计算目标文件所包含的可执行区段的熵值总和,当熵值总和大于预设阈值,且目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将目标文件识别为加壳文件,可有效提高加壳文件识别的准确率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种通信系统的架构示意图;
图2为本发明实施例提供的一种文件分析的时序示意图;
图3为本发明实施例提供的一种文件识别方法的流程示意图;
图4为本发明实施例提供的一种区段的结构体的示意图;
图5为本发明实施例提供的另一种文件识别方法的流程示意图;
图6为本发明实施例提供的一种服务器的结构示意图;
图7为本发明实施例提供的另一种服务器的结构示意图;
图8为本发明实施例提供的一种客户端的结构示意图;
图9为本发明实施例提供的另一种客户端的结构示意图。
具体实施方式
以图1所示的通信系统的架构示意图为例,该通信系统可以包括客户端101以及服务器102。
客户端101与服务器102之间通过预先建立的通信连接进行数据传输,例如,客户端101向服务器102发送文件,服务器102将识别为异常文件的文件作为目标文件,计算目标文件所包含的可执行区段的熵值总和,当熵值总和大于预设阈值,且目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将目标文件识别为加壳文件。服务器102还可以向客户端101发送提示信息,提示信息用于指示该目标文件为加壳文件。可选的,提示信息还可以包括目标文件所加壳的壳类型。
其中客户端101可以运行在手机、计算机、掌上电脑或者可穿戴设备等终端中,服务器102可以对应一个或多个客户端101。例如,服务器102可以为腾讯保护(TencentProtect,TP)服务器或者QQ安全中心服务器等。客户端101可以为安装在终端中的TP客户端或者QQ安全中心客户端等。客户端101在终端中运行时,可以和服务器102建立通信连接,以进行数据传输。
其中,壳类型可以包括VMProtect、UPX、Upack、ASProtect、VMP、AsPack或PELock等。
其中,识别文件是否为异常文件这一操作可以是客户端执行,也可以是服务器执行的。例如,客户端对客户端中运行的文件进行识别,将识别为异常文件的文件发送给服务器。又如,客户端将客户端中运行的文件发送给服务器,服务器对客户端中运行的文件进行识别,将识别为异常文件的文件作为目标文件。举例来说,可以将外挂、对游戏进行注入的非法模块、客户端的非法加速功能、模拟按键文件、调试文件或木马文件等识别为异常文件。
以将外挂识别为异常文件为例,可选的,可以通过检测文件是否具有外挂相关功能的方式,判断文件是否为异常文件。例如,当检测到文件具有外挂相关功能时,可以确定该文件为异常文件,当检测到文件不具有外挂相关功能时,可以确定该文件不是异常文件。
可选的,可以通过特征扫描的方式判断文件是否为异常文件。以将外挂识别为异常文件为例,例如,从已知外挂提取出可执行文件的二进制特征,将文件的相关特征和该二进制特征进行比较,当文件的相关特征和该二进制特征匹配时,可以确定该文件为异常文件。当文件的相关特征和该二进制特征不匹配时,可以确定该文件不是异常文件。
以图2所示的文件分析的时序示意图为例,客户端可以通过安全组件收集文件,将该文件发送给服务器。服务器可以将识别为异常文件的文件作为目标文件,将该目标文件存储在异常文件数据库中。然后,服务器可以通过静态文件分析的方式对目标文件进行预处理,例如识别目标文件为加壳文件或者无壳文件。若服务器识别目标文件为加壳文件,服务器可以生成第一提示信息,第一提示信息用于提示目标文件为加壳文件,服务器将第一提示信息发送给客户端,客户端可以在显示屏幕中显示该第一提示信息。另外,服务器识别目标文件为加壳文件之后,还可以对目标文件进行分类处理,例如对目标文件进行特征提取,识别带有特定壳的目标文件,然后对带有特定壳的目标文件进行脱壳还原,以得到原始文件。若服务器识别目标文件为无壳文件,服务器可以生成第二提示信息,第二提示信息用于提示目标文件为无壳文件,服务器将第二提示信息发送给客户端,客户端可以在显示屏幕中显示该第二提示信息。
可选的,第一提示信息还可以包括目标文件所加壳的壳类型。例如,若目标文件所加壳的壳类型为已知壳类型,服务器可以获取目标文件所加壳的壳类型,进而生成包括目标文件所加壳的壳类型的第一提示信息。若目标文件所加壳的壳类型为未知壳类型,服务器可以在第一提示信息中添加预设关键字,例如“unknown”,该预设关键字可以用于指示目标文件所加壳的壳类型为未知壳类型。
示例性的,图2所示的方案可以应用在TP系统的样本平台项目中。对于TP客户端组件收集上来的样本,服务器可以通过静态文件分析的方式对样本进行预处理,其中包括判定是否加壳,加壳类型等。然后服务器可以对判定结果进一步分类处理(如,针对带有特定壳的样本进行脱壳还原)。加壳判定是整个样本分析中较为核心的判定环节。该环节的判定结果,会在样本平台的web端进行展示。在样本查询过程中,样本不带壳,就会显示无壳;样本带壳,并且能够检测到具体壳类型,就会显示相应壳的种类,如果是未知壳,就会显示“unknown”。
在一种实现方式中,客户端101以及服务器102可以组成区块链网络,该区块链网络至少可以包括客户端101以及服务器102。服务器102获取到目标文件之后,可以对目标文件进行上链,可避免目标文件被非法用户篡改,进而避免服务器102将篡改后的目标文件的识别结果误认为是目标文件的识别结果,可提高加壳文件识别的准确率。
服务器102对目标文件进行上链的过程可以为:服务器102根据目标文件生成区块,区块包括目标文件,然后服务器102将该区块发布至服务器102所属的区块链网络。
其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Block chain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备(例如服务器102)健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
基于上述描述,本发明实施例提出一种如图3所示的文件识别方法,该文件识别方法可以包括以下步骤S301-S303:
S301,获取目标文件,目标文件为异常文件。
服务器获取目标文件的方式可以包括如下两种:
一、服务器接收客户端发送的目标文件,服务器对目标文件进行检测,当检测到所述目标文件为异常文件时,触发执行所述计算所述目标文件所包含的可执行区段的熵值总和的步骤。
例如,客户端可以将客户端中运行的目标文件发送给服务器,服务器可以对目标文件进行可疑识别,当识别到目标文件为可疑文件(即异常文件)时,执行步骤S302。
二、服务器接收客户端发送的目标文件,所述目标文件是所述客户端检测到所述目标文件为异常文件时发送的。
例如,客户端可以对客户端中运行的目标文件进行可疑识别,当识别到目标文件为可疑文件(即异常文件)时,将该目标文件发送给服务器。
S302,计算目标文件所包含的可执行区段的熵值总和。
具体实现中,服务器可以确定目标文件所包含的所有可执行区段,然后计算目标文件所包含的可执行区段的熵值总和。
在一种实现方式中,服务器可以将所述目标文件所包含的目标区段的关键字段与预设字段进行比较,所述目标区段为所述目标文件所包含的任一区段,当所述目标区段的关键字段与预设字段相同时,确定所述目标字段为可执行区段。
其中,预设字段其实是一个枚举字段,用于表征该字段所属区段为可执行区段。
表1
如表1所示,在区段中,属性是预先被设置好的。0x20000000其实为IMAGE_SCN_MEM_EXECUTE,即表征该区段可执行。
以图4所示的区段的结构体的示意图为例,假设关键字段为Characteristics字段,预设字段为“0x20000000”。服务器可以获取目标文件所包含的任一区段的IMAGE_SECTION_HEADER结构体中的Characteristics字段,将Characteristics字段所包含的内容和“0x20000000”进行逻辑运算,例如逻辑运算为逻辑与运算,当Characteristics字段所包含的内容“与”0x20000000的结果为1时,服务器可以确定该区段为可执行区段;当Characteristics字段所包含的内容“与”0x20000000的结果为0时,服务器可以确定该区段不是可执行区段。
在一种实现方式中,服务器可以遍历所述目标文件所包含的各个区段的结构体,确定所述目标文件所包含的可执行区段,计算各个所述可执行区段的熵值,将各个所述可执行区段的熵值相加,得到所述目标文件所包含的可执行区段的熵值总和。
在一种实现方式中,服务器计算目标文件所包含的可执行区段的熵值总和之前,可以将目标文件的文件特征和预设壳特征进行匹配,当目标文件的文件特征和预设壳特征匹配时,将目标文件识别为加壳文件;当目标文件的文件特征和预设壳特征不匹配时,触发执行计算所述目标文件所包含的可执行区段的熵值总和的步骤。
其中,预设壳特征可以为已知壳的壳特征。已知壳指的是壳类型为VMProtect、UPX、Upack、ASProtect、VMP、AsPack或PELock等的壳。未知壳指的是无法确定壳类型的壳。例如,当目标文件的文件特征和壳类型为VMProtect的壳特征匹配时,服务器可以将目标文件识别为加壳文件,并确定目标文件所加壳的壳类型为VMProtect。
具体实现中,当目标文件的文件特征和预设壳特征不匹配时,服务器可以确定目标文件为无壳文件,或者目标文件为加壳文件,但是目标文件所加壳为未知壳。基于此,当目标文件的文件特征和预设壳特征不匹配时,服务器可以执行步骤S302,以进一步识别目标文件是否为加壳文件。
S303,当熵值总和大于预设阈值,且目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将目标文件识别为加壳文件。
在一种实现方式中,当熵值总和大于所述预设阈值,且所述目标文件中不存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将所述目标文件识别为无壳文件。
在一种实现方式中,当所述熵值总和小于或等于所述预设阈值时,将所述目标文件识别为无壳文件。
具体实现中,服务器可以将熵值总和和预设阈值进行比较,当熵值总和大于预设阈值时,服务器可以判断目标文件中是否存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段,当目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,服务器可以将目标文件识别为加壳文件。当目标文件中不存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,服务器可以将目标文件识别为无壳文件。当熵值总和小于或等于预设阈值时,服务器可以将所述目标文件识别为无壳文件。
举例来说,假设预设阈值为6.75,当熵值总和大于6.75时,服务器可以判断目标文件中是否存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段。当目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,服务器可以确定目标文件中存在异常区段,进而将目标文件识别为加壳文件。当目标文件中不存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,服务器可以确定目标文件所包含的所有区段均为正常区段,进而将目标文件识别为无壳文件。当熵值总和小于或等于6.75时,服务器可以将目标文件识别为无壳文件。
示例性的,预设数据库所包含的所有区段标识是通过在2W个样本中进行区段名称统计得到的。预设数据库所包含的区段标识可以如下所示:.text、.data、.rsrc、.rdata、.rmnet、.reloc、.www0、.tls、.idata、.tvm0、.tvm1、.sedata、.pdata、.bxpck、.main、.bss、.CRT、.hd0、.las0、.nx、.code、.textbss、CODE、.edata、.idata、.debug_a、.debug_l、.debug_p、.stab、.stabstr、.bba0、.pediy、BSS、DATA、.ecode、.debug_f、.debug_i、.debug_r、.debug_s、.dtors等。若存在区段标识不在预设数据库中,则服务器可以确定目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段。
在可选实施例中,服务器可以生成提示信息,将所述提示信息发送给客户端,以使所述客户端输出所述提示信息,所述提示信息用于提示所述目标文件为加壳文件。可选的,提示信息还可以包括目标文件所加壳的壳类型。
示例性的,通过本发明实施例公开的文件识别方法对样本进行测试,例如样本为1280个加壳文件,可以通过本方案识别上述样本是否为加壳文件,以获取漏判率。
表2
如表2所示,针对在熵值总和大于预设阈值的条件下,将目标文件确定为加壳文件这一方案中,服务器将1280个加壳文件中的1250个文件识别为加壳文件,则漏判率为1-1250/1280=2.34%。针对在熵值总和大于预设阈值且目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段的条件下,将目标文件确定为加壳文件这一方案中,服务器将1280个加壳文件中的1228个文件识别为加壳文件,则漏判率为1-1228/1280=4.07%,其中漏判率指的是将加壳文件识别为无壳文件的比例。由此可见,本申请相对传统的文件识别方法可降低漏判率,提高文件识别的准确率。
又如样本为1060个无壳文件,可以通过本方案识别上述样本是否为加壳文件,以获取误判率。
表3
如表3所示,针对在熵值总和大于预设阈值且目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段的条件下,将目标文件确定为加壳文件这一方案中,服务器将1060个无壳文件中的11个文件识别为加壳文件,则误判率为11/1060=1%,其中误判率指的是将无壳文件识别为加壳文件的比例。由此可见,本申请相对传统的文件识别方法可降低误判率,提高文件识别的准确率。
在图3所示的实施例中,通过获取目标文件,计算目标文件所包含的可执行区段的熵值总和,当熵值总和大于预设阈值,且目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将目标文件识别为加壳文件,可降低误判率,以提高文件识别的准确率。
以图5所示的文件识别方法的流程示意图为例,服务器获取到PE文件之后,可以对PE文件进行解析,得到PE文件的文件特征,然后通过壳特征扫描的方式将PE文件的文件特征和预设壳特征进行匹配,当PE文件的文件特征和预设壳特征匹配时,将目标文件识别为加壳文件。当PE文件的文件特征和预设壳特征不匹配时,对PE文件所包含的区段进行属性检测,以确定可执行区段,计算PE文件所包含的可执行区段的熵值总和,当熵值总和大于6.75时,服务器可以进行非“常见”区段的判定,即判断PE文件中是否存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段,当PE文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,服务器可以确定该区段为异常区段,即特殊区段,然后服务器可以将目标文件识别为加壳文件。当PE文件中不存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,服务器可以确定PE文件不存在特殊区段,然后服务器可以将目标文件识别为无壳文件。
请参见图6,图6是本发明实施例中提供的一种服务器的结构示意图,如图所示本发明实施例中的服务器至少可以包括获取单元601、计算单元602和识别单元603,其中:
获取单元601获取目标文件,所述目标文件为异常文件;
计算单元602计算所述目标文件所包含的可执行区段的熵值总和;
当所述熵值总和大于预设阈值,且所述目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,识别单元603将所述目标文件识别为加壳文件。
在一种实现方式中,识别单元603还用于在计算单元602计算所述目标文件所包含的可执行区段的熵值总和之后,当所述熵值总和大于所述预设阈值,且所述目标文件中不存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将所述目标文件识别为无壳文件。
在一种实现方式中,识别单元603还用于在计算单元602计算所述目标文件所包含的可执行区段的熵值总和之后,当所述熵值总和小于或等于所述预设阈值时,将所述目标文件识别为无壳文件。
在一种实现方式中,计算单元602计算所述目标文件所包含的可执行区段的熵值总和,包括:
遍历所述目标文件所包含的各个区段的结构体,确定所述目标文件所包含的可执行区段;
计算各个所述可执行区段的熵值;
将各个所述可执行区段的熵值相加,得到所述目标文件所包含的可执行区段的熵值总和。
在一种实现方式中,计算单元602遍历所述目标文件所包含的各个区段的结构体,确定所述目标文件所包含的可执行区段,包括:
将所述目标文件所包含的目标区段的关键字段与预设字段进行比较,所述目标区段为所述目标文件所包含的任一区段;
当所述目标区段的关键字段与预设字段相同时,确定所述目标字段为可执行区段。
在一种实现方式中,识别单元603还用于在计算单元602计算所述目标文件所包含的可执行区段的熵值总和之前,将所述目标文件的文件特征和预设壳特征进行匹配,当所述目标文件的文件特征和所述预设壳特征匹配时,将所述目标文件识别为加壳文件;
计算单元602,还用于当所述目标文件的文件特征和所述预设壳特征不匹配时,执行所述计算所述目标文件所包含的可执行区段的熵值总和。
在一种实现方式中,服务器还可以包括发送单元604;
发送单元604,用于识别单元603将所述目标文件识别为加壳文件之后,生成提示信息,将所述提示信息发送给客户端,以使所述客户端输出所述提示信息,所述提示信息用于提示所述目标文件为加壳文件。
在一种实现方式中,获取单元601获取目标文件,包括:
接收客户端发送的目标文件;
当检测到所述目标文件为异常文件时,触发执行所述计算所述目标文件所包含的可执行区段的熵值总和的步骤。
在一种实现方式中,获取单元601获取目标文件,包括:
接收客户端发送的目标文件,所述目标文件是所述客户端检测到所述目标文件为异常文件时发送的。
本发明实施例中,获取单元601获取目标文件,所述目标文件为异常文件,计算单元602计算所述目标文件所包含的可执行区段的熵值总和,当所述熵值总和大于预设阈值,且所述目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,识别单元603将所述目标文件识别为加壳文件,可有效提高加壳文件识别的准确率。
请参见图7,图7为本发明实施例提供的另一种服务器的结构示意图,本发明实施例提供的服务器可以用于实施上述图3或图5所示的本发明实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图3或图5所示的本发明实施例。
如图7所示,该服务器包括:至少一个处理器701,例如CPU,至少一个输入装置703,至少一个输出装置704,存储器705,至少一个通信总线702。其中,通信总线702用于实现这些组件之间的连接通信。其中,输入装置703和输出装置704具体可以为网络接口,用于与客户端进行交互。其中,存储器705可能包含高速RAM存储器,也可能还包括非不稳定的存储器,例如至少一个磁盘存储器,具体用于存储第一管理文件。存储器705可选的可以包含至少一个位于远离前述处理器701的存储装置。存储器705中存储一组程序代码,且处理器701、输入装置703以及输出装置704调用存储器705中存储的程序代码,用于执行以下操作:
处理器701获取目标文件,所述目标文件为异常文件;
处理器701计算所述目标文件所包含的可执行区段的熵值总和;
当所述熵值总和大于预设阈值,且所述目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,处理器701将所述目标文件识别为加壳文件。
在一种实现方式中,处理器701在计算所述目标文件所包含的可执行区段的熵值总和之后,当所述熵值总和大于所述预设阈值,且所述目标文件中不存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将所述目标文件识别为无壳文件。
在一种实现方式中,处理器701在计算所述目标文件所包含的可执行区段的熵值总和之后,当所述熵值总和小于或等于所述预设阈值时,将所述目标文件识别为无壳文件。
在一种实现方式中,处理器701计算所述目标文件所包含的可执行区段的熵值总和,包括:
遍历所述目标文件所包含的各个区段的结构体,确定所述目标文件所包含的可执行区段;
计算各个所述可执行区段的熵值;
将各个所述可执行区段的熵值相加,得到所述目标文件所包含的可执行区段的熵值总和。
在一种实现方式中,处理器701遍历所述目标文件所包含的各个区段的结构体,确定所述目标文件所包含的可执行区段,包括:
将所述目标文件所包含的目标区段的关键字段与预设字段进行比较,所述目标区段为所述目标文件所包含的任一区段;
当所述目标区段的关键字段与预设字段相同时,确定所述目标字段为可执行区段。
在一种实现方式中,处理器701在计算所述目标文件所包含的可执行区段的熵值总和之前,将所述目标文件的文件特征和预设壳特征进行匹配,当所述目标文件的文件特征和所述预设壳特征匹配时,将所述目标文件识别为加壳文件;
处理器701,还用于当所述目标文件的文件特征和所述预设壳特征不匹配时,执行所述计算所述目标文件所包含的可执行区段的熵值总和。
在一种实现方式中,处理器701将所述目标文件识别为加壳文件之后,可以生成提示信息;
输出装置704将所述提示信息发送给客户端,以使所述客户端输出所述提示信息,所述提示信息用于提示所述目标文件为加壳文件。
在一种实现方式中,处理器701获取目标文件,包括:
输入装置703接收客户端发送的目标文件;
当检测到所述目标文件为异常文件时,触发处理器701执行所述计算所述目标文件所包含的可执行区段的熵值总和的步骤。
在一种实现方式中,处理器701获取目标文件,包括:
输入装置703接收客户端发送的目标文件,所述目标文件是所述客户端检测到所述目标文件为异常文件时发送的。
具体的,本发明实施例中介绍的服务器可以用以实施本发明结合图3或图5介绍的方法实施例中的部分或全部流程。
请参见图8,图8是本发明实施例中提供的一种客户端的结构示意图,如图所示本发明实施例中的客户端至少可以包括获取单元801、识别单元802和发送单元803,其中:
获取单元801获取在客户端中运行的文件;
识别单元802对所述文件进行识别,得到识别为异常文件的文件,并将得到的文件作为目标文件;
发送单元803将所述目标文件发送给服务器,以使所述服务器计算所述目标文件所包含的可执行区段的熵值总和,当所述熵值总和大于预设阈值,且所述目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,所述服务器将所述目标文件识别为加壳文件。
在一种实现方式中,客户端还可以包括接收单元804和输出单元805;
接收单元804,用于接收服务器发送的提示信息,所述提示信息用于提示所述目标文件为加壳文件;
输出单元805,用于输出所述提示信息。
本发明实施例中,获取单元801获取在客户端中运行的文件,识别单元802对所述文件进行识别,得到识别为异常文件的文件,并将得到的文件作为目标文件,发送单元803将所述目标文件发送给服务器,以使服务器计算目标文件所包含的可执行区段的熵值总和,当熵值总和大于预设阈值,且目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,服务器将目标文件识别为加壳文件,可有效提高加壳文件识别的准确率。
请参见图9,图9为本发明实施例提供的另一种客户端的结构示意图,本发明实施例提供的客户端可以用于实施上述图3所示的本发明实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图3所示的本发明实施例。
如图9所示,该客户端包括:至少一个处理器901,例如CPU,至少一个输入装置903,至少一个输出装置904,存储器905,至少一个通信总线902。其中,通信总线902用于实现这些组件之间的连接通信。其中,输入装置903和输出装置904具体可以为网络接口,用于与服务器进行交互。其中,输入装输入装置903,至少一个输出装置904,存储器905,至少一个通信总线902。其中,通信总线902用于实现这些组件之间的连接通信。其中,输入装置903、输出装置904具体可以为网络接口,用于与客户端进行交互。其中,存储器905可能包含高速RAM存储器,也可能还包括非不稳定的存储器,例如至少一个磁盘存储器。存储器905可选的可以包含至少一个位于远离前述处理器901的存储装置。存储器905中存储一组程序代码,且处理器901、输入装置903以及输出装置904调用存储器905中存储的程序代码,用于执行以下操作:
处理器901获取在客户端中运行的文件;
处理器901对所述文件进行识别,得到识别为异常文件的文件,并将得到的文件作为目标文件;
输出装置904将所述目标文件发送给服务器,以使所述服务器计算所述目标文件所包含的可执行区段的熵值总和,当所述熵值总和大于预设阈值,且所述目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,所述服务器将所述目标文件识别为加壳文件。
在一种实现方式中,输入装置903可以接收服务器发送的提示信息,所述提示信息用于提示所述目标文件为加壳文件;
输出装置904输出所述提示信息。
具体的,本发明实施例中介绍的客户端可以用以实施本发明结合图3介绍的方法实施例中的部分或全部流程。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种文件识别方法,其特征在于,所述方法包括:
获取目标文件,所述目标文件为异常文件;
计算所述目标文件所包含的可执行区段的熵值总和;
当所述熵值总和小于或等于预设阈值时,将所述目标文件识别为无壳文件;
当所述熵值总和大于所述预设阈值时,判断所述目标文件中是否存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段,所述预设数据库包含的所有区段标识是通过在预设数量个样本中进行区段标识统计得到的,所述预设数量个样本均为无壳文件;
当所述目标文件中不存在与所述预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将所述目标文件识别为无壳文件;
当所述目标文件中存在与预设数据库所包含的所有区段标识均不相同的区段标识所标识的区段时,将所述目标文件识别为加壳文件;
对所述目标文件进行分类处理,以识别所述目标文件所加壳的壳类型;
根据所述壳类型,对所述目标文件进行脱壳还原,以得到原始文件。
2.如权利要求1所述的方法,其特征在于,所述计算所述目标文件所包含的可执行区段的熵值总和,包括:
遍历所述目标文件所包含的各个区段的结构体,确定所述目标文件所包含的可执行区段;
计算各个所述可执行区段的熵值;
将各个所述可执行区段的熵值相加,得到所述目标文件所包含的可执行区段的熵值总和。
3.如权利要求2所述的方法,其特征在于,所述遍历所述目标文件所包含的各个区段的结构体,确定所述目标文件所包含的可执行区段,包括:
将所述目标文件所包含的目标区段的关键字段与预设字段进行比较,所述目标区段为所述目标文件所包含的任一区段;
当所述目标区段的关键字段与预设字段相同时,确定所述目标字段为可执行区段。
4.如权利要求1所述的方法,其特征在于,所述计算所述目标文件所包含的可执行区段的熵值总和之前,还包括:
将所述目标文件的文件特征和预设壳特征进行匹配;
当所述目标文件的文件特征和所述预设壳特征匹配时,将所述目标文件识别为加壳文件;
当所述目标文件的文件特征和所述预设壳特征不匹配时,触发执行所述计算所述目标文件所包含的可执行区段的熵值总和的步骤。
5.如权利要求1所述的方法,其特征在于,所述将所述目标文件识别为加壳文件之后,还包括:
生成提示信息,将所述提示信息发送给客户端,以使所述客户端输出所述提示信息,所述提示信息用于提示所述目标文件为加壳文件。
6.如权利要求1所述的方法,其特征在于,所述获取目标文件,包括:
接收客户端发送的目标文件,所述目标文件是所述客户端检测到所述目标文件为异常文件时发送的。
7.如权利要求1所述的方法,其特征在于,所述获取目标文件之后,还包括:
根据所述目标文件生成区块,所述区块包括所述目标文件;
将所述区块发布至区块链网络。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
9.一种文件识别装置,其特征在于,所述文件识别装置包括用于执行如权利要求1-7任一项所述的文件识别方法的单元。
10.一种服务器,其特征在于,所述服务器包括:
存储器,用于存储程序代码;
处理器,用于调用所述存储器中存储的所述程序代码,执行如权利要求1-7任一项所述的文件识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910843816.3A CN110569646B (zh) | 2019-09-06 | 2019-09-06 | 文件识别方法及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910843816.3A CN110569646B (zh) | 2019-09-06 | 2019-09-06 | 文件识别方法及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110569646A CN110569646A (zh) | 2019-12-13 |
CN110569646B true CN110569646B (zh) | 2022-07-26 |
Family
ID=68778294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910843816.3A Active CN110569646B (zh) | 2019-09-06 | 2019-09-06 | 文件识别方法及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110569646B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855440A (zh) * | 2012-09-13 | 2013-01-02 | 北京奇虎科技有限公司 | 一种检测加壳可执行文件的方法、装置和系统 |
CN109992969A (zh) * | 2019-03-25 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 一种恶意文件检测方法、装置及检测平台 |
-
2019
- 2019-09-06 CN CN201910843816.3A patent/CN110569646B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855440A (zh) * | 2012-09-13 | 2013-01-02 | 北京奇虎科技有限公司 | 一种检测加壳可执行文件的方法、装置和系统 |
CN109992969A (zh) * | 2019-03-25 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 一种恶意文件检测方法、装置及检测平台 |
Also Published As
Publication number | Publication date |
---|---|
CN110569646A (zh) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110113167B (zh) | 一种智能终端的信息保护方法、系统以及可读存储介质 | |
US10135818B2 (en) | User biological feature authentication method and system | |
CN110855676B (zh) | 网络攻击的处理方法、装置及存储介质 | |
CN113542253B (zh) | 一种网络流量检测方法、装置、设备及介质 | |
CN112217835A (zh) | 报文数据的处理方法、装置、服务器和终端设备 | |
CN110138731B (zh) | 一种基于大数据的网络防攻击方法 | |
CN113704328B (zh) | 基于人工智能的用户行为大数据挖掘方法及系统 | |
CN113704772B (zh) | 基于用户行为大数据挖掘的安全防护处理方法及系统 | |
CN110086796B (zh) | 一种基于公私钥加密技术收集监控数据的传输方法 | |
CN114979109B (zh) | 行为轨迹检测方法、装置、计算机设备和存储介质 | |
CN110569646B (zh) | 文件识别方法及介质 | |
CN109218009B (zh) | 一种提高设备id安全性的方法、客户端和服务器 | |
CN112765588B (zh) | 一种身份识别方法、装置、电子设备及存储介质 | |
CN114760083B (zh) | 一种攻击检测文件的发布方法、装置及存储介质 | |
US9998495B2 (en) | Apparatus and method for verifying detection rule | |
CN114218561A (zh) | 一种弱口令检测方法、终端设备及存储介质 | |
CN117499163B (zh) | 一种基于WebRTC的服务器远程维护方法、系统及设备 | |
CN108880785A (zh) | 一种检测C++虚表被hook的方法、装置、终端及可读介质 | |
CN114154160B (zh) | 容器集群监测方法、装置、电子设备及存储介质 | |
KR101619059B1 (ko) | 악성 스크립트 탐지를 위한 경량 시그니처 생성 및 배포 장치, 시스템 및 방법 | |
CN115688071B (zh) | 一种防止智能手表信息篡改的处理方法及系统 | |
CN114785567B (zh) | 一种流量识别方法、装置、设备及介质 | |
KR102541888B1 (ko) | 이미지 기반 악성코드 탐지 방법 및 장치와 이를 이용하는 인공지능 기반 엔드포인트 위협탐지 및 대응 시스템 | |
CN115632879B (zh) | 日志管理方法、系统、电子设备及存储介质 | |
EP3913486A1 (en) | Closed loop monitoring based privileged access control |
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 |