CN113807051A - 文件类型识别方法、装置、计算机设备和存储介质 - Google Patents
文件类型识别方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113807051A CN113807051A CN202111022835.3A CN202111022835A CN113807051A CN 113807051 A CN113807051 A CN 113807051A CN 202111022835 A CN202111022835 A CN 202111022835A CN 113807051 A CN113807051 A CN 113807051A
- Authority
- CN
- China
- Prior art keywords
- file
- feature
- memory
- file type
- identified
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/29—Graphical models, e.g. Bayesian networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种文件类型识别方法、装置、计算机设备和存储介质。方法包括:获取待识别文件,提取待识别文件的文件特征。将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值。若所有概率值中的最大值大于预设阈值,则将最大值对应的已知文件类型作为待识别文件的文件类型。由于可以综合考虑文件结构特征、文件特征串及文件统计特征,并结合贝叶斯网络进行文件类型识别,从而相较于相关技术中基于一种特征进行文件类型识别,可以提高识别成功率及准确率。另外,由于且实际实施过程中拓展方式仅需要对贝叶斯网络模型进行更新即可,从而可以保证方便适用于识别新的文件类型,识别方式覆盖范围广且具备实效性。
Description
技术领域
本申请涉及文件类型识别技术领域,特别是涉及一种文件类型识别方法、装置、计算机设备和存储介质。
背景技术
目前,很多应用程序均需要对文件进行处理,而识别文件类型是文件处理必要步骤之一。在相关技术中,主要是通过文件特征标识来进行识别的。具体地,文件特征标识是Windows和Linux系统环境下一种区分文件类型的机制,其通常是存放于文件头位置的一串数据,不同类型文件的文件特征标识在文件中存放的偏移量和值一般不同,通过该方式可以区分大部分文件。
基于文件头部特征标识的类型识别与匹配技术可以实现大部分文件类型识别,但某一集成程序下的不同组件程序,均是对应相同的文件特征标识。例如,微软的Office2003与Office 2007分别作为不同版本的集成程序,虽然两者对应的文件特征标识不同,如分别为OxD0CF11E0及Ox504B0304,但同一版本下的不同组件程序其对应的文件特征标识是相同的,如微软的Office 2003下的不同组件程序Word、Excel及PowerPoint等,均为相同的文件特征标识,即均为OxD0CF11E0。因此,对于同一集成程序下的不同组件程序,无法正确识别文件类型。
发明内容
基于此,有必要针对上述技术问题,提供一种提升文件识别准确率的文件类型识别方法、装置、计算机设备和存储介质。
一种文件类型识别方法,该方法包括:
获取待识别文件,提取待识别文件的文件特征,文件特征与待识别文件的文件类型相关联;
将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值,贝叶斯网络模型是基于已知文件类型及已知文件类型的文件特征所构建的;
若所有概率值中的最大值大于预设阈值,则将最大值对应的已知文件类型作为待识别文件的文件类型;
其中,已知文件类型的文件特征包括以下三项特征中的至少一项,以下三项特征分别为:文件结构特征、文件特征串及文件统计特征;文件结构特征指的是文件加载至内存时,位于内存中不同位置的特征;文件特征串指的是非直接关联文件类型的特征;文件统计特征指的是基于文件内容统计得到的特征。
在其中一个实施例中,文件结构特征包括固定特征和/或浮动特征;固定特征指的是文件加载至内存时在内存中位置固定的特征;浮动特征指的是文件加载至内存时在内存中位置不固定的特征。
在其中一个实施例中,固定特征包括文件特征标识,浮动特征包括文件目录结构特征;文件特征标识包括文件加载至内存时位于内存中头部结构位置的特征字符串;文件目录结构特征包括存在目录结构的文件加载至内存时目录结构在内存中的目录入口名称字符串。
在其中一个实施例中,固定特征还包括文件创建时间和/或文件版本号,浮动特征还包括目录层次结构特征和/或尾部结构特征。
在其中一个实施例中,文件特征串还包括文件在被应用程序读取后所遗留的与应用程序类型相关联的特征字符串。
在其中一个实施例中,文件统计特征包括文件内容中字节的统计频次和/或文件内容中加密标识的统计频次。
在其中一个实施例中,贝叶斯网络模型的训练过程,包括:
构建初始模型;其中,初始模型将每一已知文件类型作为父节点,将每一已知文件类型的文件特征作为子节点;每一子节点对应一组特征项,特征项中包括子特征值及子特征值对应的权重,子特征值用于表示在父节点为前提下子节点所出现的概率值;
对初始模型进行训练,得到贝叶斯网络模型。
在其中一个实施例中,对初始模型进行训练,得到贝叶斯网络模型,包括:
根据初始模型中每一子节点对应的子特征值及每一子节点对应的权重,构建初始模型的训练目标函数;
基于预设方式,对初始模型中的权重进行调整,重复上述调整过程,直至训练目标函数的计算结果满足预设条件,则完成训练,并将完成训练后的初始模型作为贝叶斯网络模型。
在其中一个实施例中,基于预设方式,对初始模型中的权重进行调整,包括:
确定调整权重的梯度方向及步长,根据梯度方向及步长,对初始模型中的权重进行调整。
一种文件类型识别装置,该装置包括:
提取模块,用于获取待识别文件,提取待识别文件的文件特征,文件特征与待识别文件的文件类型相关联;
输入输出模块,用于将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值,贝叶斯网络模型是基于已知文件类型及已知文件类型的文件特征所构建的;
确定模块,用于当所有概率值中的最大值大于预设阈值时,则将最大值对应的已知文件类型作为待识别文件的文件类型;
其中,已知文件类型的文件特征包括以下三项特征中的至少一项,以下三项特征分别为:文件结构特征、文件特征串及文件统计特征;文件结构特征指的是文件加载至内存时,位于内存中不同位置的特征;文件特征串指的是非直接关联文件类型的特征;文件统计特征指的是基于文件内容统计得到的特征。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取待识别文件,提取待识别文件的文件特征,文件特征与待识别文件的文件类型相关联;
将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值,贝叶斯网络模型是基于已知文件类型及已知文件类型的文件特征所构建的;
若所有概率值中的最大值大于预设阈值,则将最大值对应的已知文件类型作为待识别文件的文件类型;
其中,已知文件类型的文件特征包括以下三项特征中的至少一项,以下三项特征分别为:文件结构特征、文件特征串及文件统计特征;文件结构特征指的是文件加载至内存时,位于内存中不同位置的特征;文件特征串指的是非直接关联文件类型的特征;文件统计特征指的是基于文件内容统计得到的特征。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待识别文件,提取待识别文件的文件特征,文件特征与待识别文件的文件类型相关联;
将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值,贝叶斯网络模型是基于已知文件类型及已知文件类型的文件特征所构建的;
若所有概率值中的最大值大于预设阈值,则将最大值对应的已知文件类型作为待识别文件的文件类型;
其中,已知文件类型的文件特征包括以下三项特征中的至少一项,以下三项特征分别为:文件结构特征、文件特征串及文件统计特征;文件结构特征指的是文件加载至内存时,位于内存中不同位置的特征;文件特征串指的是非直接关联文件类型的特征;文件统计特征指的是基于文件内容统计得到的特征。
上述文件类型识别方法、装置、计算机设备和存储介质,通过获取待识别文件,提取待识别文件的文件特征。将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值。若所有概率值中的最大值大于预设阈值,则将最大值对应的已知文件类型作为待识别文件的文件类型。由于可以综合考虑文件结构特征、文件特征串及文件统计特征,并结合贝叶斯网络进行文件类型识别,从而相较于相关技术中基于一种特征进行文件类型识别,可以提高识别成功率及准确率。
另外,由于文件特征与文件类型之间的关联关系,其作为识别规则是可以动态拓展的,且实际实施过程中拓展方式仅需要对贝叶斯网络模型进行更新即可,从而可以保证方便适用于识别新的文件类型,识别方式覆盖范围广且具备实效性。最后,由于综合了多种文件特征进行识别,而其中有些特征是不会受到文件内容损坏影响的,如主要与文件格式关联而与文件内容关联较低的文件结构特征,从而可以同时支持完好文件与损坏文件的文件类型识别,提高了适用范围。
附图说明
图1为一个实施例中文件类型识别方法的流程示意图;
图2为一个实施例中doc、xls及ppt文件在内存中文件头的数据示意图;
图3为一个实施例中doc文件的目录入口名称在内存中的内容示意图;
图4为一个实施例中ppt文件的目录入口名称在内存中的内容示意图;
图5为一个实施例中xls文件的目录入口名称在内存中的内容示意图;
图6为一个实施例中docx文件通过zip文件格式打开后目录层次结构的示意图;
图7为一个实施例中“_rels”目录的目录结构层次示意图;
图8为一个实施例中xlsx文件通过zip文件格式打开后目录层次结构的示意图;
图9为一个实施例中“xl”目录的目录结构层次示意图;
图10为一个实施例中pptx文件通过zip文件格式打开后目录层次结构的示意图;
图11为一个实施例中“ppt”目录的目录结构层次示意图;
图12为一个实施例中“slides”目录的目录结构层次示意图;
图13为一个实施例中识别规则树的结构示意图;
图14为一个实施例中初始模型训练过程的流程示意图;
图15为另一个实施例中文件类型识别方法的流程示意图;
图16为一个实施例中文件类型识别装置的结构框图;
图17为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种专业名词,但除非特别说明,这些专业名词不受这些术语限制。这些术语仅用于将一个专业名词与另一个专业名词区分。举例来说,在不脱离本申请的范围的情况下,第三预设阈值与第四预设阈值可以相同可以不同。
目前,很多应用程序均需要对文件进行处理,而识别文件类型是文件处理必要步骤之一。在相关技术中,主要是通过文件特征标识来进行识别的。具体地,文件特征标识是Windows和Linux系统环境下一种区分文件类型的机制,其通常是存放于文件头位置的一串数据,不同类型文件的文件特征标识在文件中存放的偏移量和值一般不同,通过该方式可以区分大部分文件。
基于文件头部特征标识的类型识别与匹配技术可以实现大部分文件类型识别,但某一集成程序下的不同组件程序,均是对应相同的文件特征标识。例如,微软的Office2003与Office 2007分别作为不同版本的集成程序,虽然两者对应的文件特征标识不同,如分别为OxD0CF11E0及Ox504B0304,但同一版本下的不同组件程序其对应的文件特征标识是相同的,如微软的Office 2003下的不同组件程序Word、Excel及PowerPoint等,均为相同的文件特征标识,即均为OxD0CF11E0。因此,对于同一集成程序下的不同组件程序,无法正确识别文件类型。
针对上述相关技术中存在的问题,本发明实施例提供了一种文件类型识别方法,该方法可以应用于终端中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等。需要说明的是,本申请各实施例中提及的“多个”等的数量均指代“至少两个”的数量,比如,“多个”指“至少两个”。以该方法应用于终端,且执行主体为终端为例进行说明,参见图1,该方法包括如下步骤:
101、获取待识别文件,提取待识别文件的文件特征,文件特征与待识别文件的文件类型相关联;
102、将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值,贝叶斯网络模型是基于已知文件类型及已知文件类型的文件特征所构建的;
103、若所有概率值中的最大值大于预设阈值,则将最大值对应的已知文件类型作为待识别文件的文件类型。
在上述步骤102中,已知文件类型的文件特征包括以下三项特征中的至少一项,以下三项特征分别为:文件结构特征、文件特征串及文件统计特征;文件结构特征指的是文件加载至内存时,位于内存中不同位置的特征;文件特征串指的是非直接关联文件类型的特征;文件统计特征指的是基于文件内容统计得到的特征。由于文件类型是可以被穷举的,而对于已知文件类型的样本文件,该样本文件的文件特征也是可以被提取出来的,从而在步骤102中才可以上述两点作为基础,构建得到贝叶斯网络模型。
为了便于理解,现对贝叶斯网络进行解释说明,贝叶斯网络又称为信度网,由一个有向无环图和条件概率表组成。在贝叶斯网络中,两个变量X和Y(对应在有向无环图中即为两个节点)如果直接相连,则表示它们之间有直接依赖关系,对X的了解会影响关于Y的信度;反之亦然。在这种意义下,可以理解为信息能够在两个直接相连的节点之间传递。另一方面,如果两个变量X和Y不直接相连,则信息需要通过其它变量才能在两者之间传递。如果X和Y之间的所有信息通道都被阻塞,那么信息就无法在它们之间传递。这时,对其中一个变量的了解不会影响对另一个变量的信度。
在上述步骤101中,具体提取方式可以根据上述三项特征的定义,查找待识别文件是否存在上述三项特征中的某一项特征或者某几项特征。由于贝叶斯网络模型给出了文件特征与文件类型之间的关联关系,而本发明实施例所需要求解的,即为在已知待识别文件的文件特征,在这个条件下,待识别文件属于每种已知文件类型的条件概率为多少。
将待识别文件的文件特征记为x={a1,a2,...,am},a1至am中每一项即代表待识别文件的一项文件特征。将已知文件类型记为C={y1,y2,...,yn},y1至yn中每一项即代表一种已知文件类型。本发明实施例需要求解的即为p(y1|x)、p(y2|x)、…、p(yn|x),也即在文件特征这个“因”的前提下,求解文件类型这个“果”的概率。而基于样本文件,是可以基于文件类型这个“因”的前提下,统计得到文件特征这个“果”出现的条件概率。也即可以统计得到:
p(a1|y1)、p(a2|y1)、...、p(am|y1);
p(a1|y2)、p(a2|y2)、...、p(am|y2);
……
p(a1|y2)、p(a2|y2)、...、p(am|y2)。
上述条件概率即为贝叶斯网络模型的主体内容,根据贝叶斯定理有如下推导:
在上述推导公式中,p(yi)与p(x)也是可以统计得到的,由此便可以计算得到p(y1|x)、p(y2|x)、…、p(yn|x)。基于该原理,通过上述步骤102,即可得到待识别文件被识别为每种已知文件类型的概率值。
在上述步骤103中,可以将所有概率值中的最大值对应的已知文件类型作为待识别文件的文件类型。但由于计算得到的概率值需要具有一定的置信度,从而可以判断所有概率值中的最大值是否大于预设阈值。若大于,则将最大值对应的已知文件类型作为待识别文件的文件类型。若不大于,则确定识别失败。
本发明实施例提供的方法,通过获取待识别文件,提取待识别文件的文件特征。将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值。若所有概率值中的最大值大于预设阈值,则将最大值对应的已知文件类型作为待识别文件的文件类型。由于可以综合考虑文件结构特征、文件特征串及文件统计特征,并结合贝叶斯网络进行文件类型识别,从而相较于相关技术中基于一种特征进行文件类型识别,可以提高识别成功率及准确率。
另外,由于文件特征与文件类型之间的关联关系,其作为识别规则是可以动态拓展的,且实际实施过程中拓展方式仅需要对贝叶斯网络模型进行更新即可,从而可以保证方便适用于识别新的文件类型,识别方式覆盖范围广且具备实效性。最后,由于综合了多种文件特征进行识别,而其中有些特征是不会受到文件内容损坏影响的,如主要与文件格式关联而与文件内容关联较低的文件结构特征,从而可以同时支持完好文件与损坏文件的文件类型识别,提高了适用范围。
结合上述实施例的内容,在一个实施例中,文件结构特征包括固定特征和/或浮动特征;固定特征指的是文件加载至内存时在内存中位置固定的特征;浮动特征指的是文件加载至内存时在内存中位置不固定的特征。
其中,上述“位置固定”可以用在内存中的偏移量进行指示。需要说明的是,这里之所以要引入偏移量,是由于待识别文件是以二进制形式存在于内存中的,只有在上述偏移量所指示的“固定位置”上出现某一固定特征,才能表明待识别文件可能是该固定特征对应的文件类型。如果不是上述“固定位置”,而是任意位置出现了该固定特征,则很可能会存在不是该类型的文件,但该文件在该任意位置上依然出现该固定特征的情形,这明显会严重影响文件的识别准确率。由此,在本发明实施例中才需要通过偏移量来确定上述“固定位置”,也即本发明实施例提及的固定特征均存在固定的偏移量作为指示依据。至于固定特征的内容形式,不同文件会有所不同,本发明实施例对此不作具体限定。
而浮动特征则需要指定特征可能出现的起始偏移和结束偏移,而不是像固定特征那样通过固定偏移量即可在内存中查找到。需要说明的是,由于浮动特征的位置与内容可能都不固定,从而在检测浮动特征时还可以指定需要检测的内容类型,比如是二进制数据还是字符串。
本发明实施例提供的方法,由于文件结构特征可以包括固定特征和/或浮动特征,从而可以基于多种类型的特征,对文件类型进行综合识别,进而相较于相关技术中基于一种特征进行文件类型识别,可以提高识别成功率及准确率。
结合上述实施例的内容,在一个实施例中,固定特征包括文件特征标识,浮动特征包括文件目录结构特征;文件特征标识包括文件加载至内存时位于内存中头部结构位置的特征字符串;文件目录结构特征包括存在目录结构的文件加载至内存时目录结构在内存中的目录入口名称字符串。
其中,文件特征标识是Windows和Linux系统环境下一种区分文件类型的机制,其表现形式通常是存放于文件头位置的一串数据,可被称之为“魔数”文件特征标识的。文件特征标识将文件特征信息存储于文件数据内部,不容易被修改或损坏,且在定义时具有唯一性,可作为文件类型识别与匹配的可靠依据。为了便于理解,部分文件类型的文件特征标识可参考如下表1:
表1
由上述内容可知,在相关技术中,仅使用文件特征标识进行文件类型识别可能会遇到如图2中所示的情形。图2为doc、xls及ppt在内存中的文件头,从图2中可以得知,doc、xls及ppt文件的文件头中“魔数”均为“D0 CF 11 E0 A1 B1 A1”,无法通过文件“魔数”进行区分。而在对不同类型的文件进行研究时可以发现,复合文档与内容单一文档在目录结构略有区别。其中,复合文档指的是不仅包含文本,还包括图形、电子表格数据、声音、视频图象以及其它信息的文档,常见的复合文档对应的文件类型包括doc、xls及ppt等类型文件。
具体地,doc文件包含0Table、1Table及WordDocument,而ppt包含PowerPointDocument,xls文件包含workbook等目录入口,上述区别可以在复合文档加载至内存中时由文件尾部结构特征及文件目录结构特征进行体现。由此,在本发明实施例中,还可以使用与目录入口相关联的目录入口名称字符串进行文件类型识别。
如图3至图5所示,图3为doc文件的目录入口名称在内存中的内容展示,图4为ppt文件的目录入口名称在内存中的内容展示,图5为xls文件的目录入口名称在内存中的内容展示。由图3至图5可知,由于不同类型复合文档的目录入口名称不同,且目录作为文件结构中的一部分,目录入口名称是不在文档内容中显示的,而是仅以二进制字节形式存储于文件中,从而实际实施过程中,可以采取以二进制模式读取文件,检测是否有对应的目录名称,也即读取检测内存中的目录入口名称字符串。
本发明实施例提供的方法,由于固定特征包括文件特征标识,浮动特征包括文件目录结构特征,从而可以基于多种类型的特征,对文件类型进行综合识别,进而相较于相关技术中基于一种特征进行文件类型识别,可以提高识别成功率及准确率。
结合上述实施例的内容,在一个实施例中,固定特征还包括文件创建时间和/或文件版本号,浮动特征还包括目录层次结构特征和/或尾部结构特征。
其中,固定特征除了可以包括文件创建时间及文件版本号之外,还可以包括创建文件的设备信息,本发明实施例对此不作具体限定。另外,尾部结构特征主要是用于识别zip格式的文件。具体地,若文件加载至内存时,位于内存中尾部结构位置的字符串为“0x504B0506”,则可以确定该文件的文件类型为zip。需要说明的是,由于zip的文件格式规范被选择为Office Open XML格式的包格式,这就导致docx、xlsx及pptx文件该三种类型的文件,与zip文件具有相同的文件头部结构,也即该四种类型的文件其文件特征标识均是相同的,无法直接通过文件特征标识来区分上述四种文件。
由此,除了结合上述实施例提及的目录入口名称字符串进行区分之外,还可以利用目录结构层次,也即利用浮动特征中的目录层次结构特征进行文件类型识别。其中,docx文件通过zip文件格式打开后,目录层次结构可参考图6。在图6中存在一个名为“_rels”的目录,该目录进一步打开后,其目录层次结构可参考图7。
其中,_rels目录包含一个.rels文件,它定义了包中的根关系,Word目录包含document.xml、settings.xml等文档组件文件。其中,document.xml包含了文档当中的数据,以及样式和字体设置。footer.xml包含了有关文档页脚的信息,例如它们位于什么页面上以及相关的样式信息。header.xml包含了与footer.xml文件当中相类似的信息,但是它是有关页眉的信息。styles.xml包含了有关文档中样式的信息,例如字体大小,表格样式,和列表样式等。
xlsx文件通过zip文件格式打开后,目录层次结构可参考图8。在图8中也存在一个名为“xl”的目录,该目录进一步打开后,其目录层次结构可参考图9。其中,xl目录包含worksheets等目录以及workbook.xml以及sharedStrings.xml等文件。其中,sharedString.xml文件对应xlsx文件sheet中的内容。而xl目录下的_rels目录包含一个.rels文件,它定义了包中的根关系。由此可见,即使xlsx与docx包含相同名称的目录,但该相同名称的目录所处的层次不同,包含的内容也不同。
pptx文件通过zip文件格式打开后,目录层次结构可参考图10。在图10中存在一个名为“ppt”的目录,该目录进一步打开后,其目录层次结构可参考图11。在图11中存在一个名为“slides”的目录,该目录进一步打开后,其目录层次结构可参考图12。其中,图11中的_rels目录包含一个.rels文件,它定义了包中的根关系。ppt目录包含slides、media等目录。slides目录下包含slide*.xml,对应pptx文件中相关页的文字内容。
综合上述内容可知,Office 2007格式文件虽然符合zip文件格式规范,但存在一定的目录结构,除了使用目录入口名称字符串之外,还可以进一步使用目录层次结构特征,进而可以根据zip文件格式,对待识别文件进行结构解析,若解析得到的目录层次结构特征符合Office 2007下某一文件类型的目录规范,即可确定该待识别文件的文件类型为Office 2007下的该文件类型。否则,则可以确定待识别文件的文件类型为zip。
本发明实施例提供的方法,由于固定特征还包括文件创建时间和/或文件版本号,浮动特征还包括目录层次结构特征和/或尾部结构特征,从而可以基于多种类型的特征,对文件类型进行综合识别,进而相较于相关技术中基于一种特征进行文件类型识别,可以提高识别成功率及准确率。
有些时候,文件的结构破坏比较严重,仅采用上述实施例提及的检测文件结构的方式进行识别比较困难,准确率难以保证。由于很多文件受文件编辑器和文件内容的影响,可能会隐含保存可以反映自身文件类型的信息,比如采用Adobe Photoshop CS编辑过JGP图片可能包含“Adobe Photoshop CS”特征串,这些特征串跟文件结构无关,同时又可以侧面反映文件的类型,从而可以采用检测文件特征串的方式进行辅助识别。基于上述说明,结合上述实施例的内容,在一个实施例中,文件特征串还包括文件在被应用程序读取后所遗留的与应用程序类型相关联的特征字符串。
其中,常见的文件特征串可参考如下表2:
表2
本发明实施例提供的方法,由于可以结合文件特征串,从而可以基于多种类型的特征,对文件类型进行综合识别,进而相较于相关技术中基于一种特征进行文件类型识别,可以提高识别成功率及准确率。另外,由于文件特征串不会受到文件内容损坏影响的,从而可以同时支持完好文件与损坏文件的文件类型识别,提高了适用范围。
一般情况下,不同类型文件的文件内容中字节出现的频率不一样。由此,可以统计文件内容的某些特定字节(特征值),以特征值的频率分布生成文件类型的“指纹”,然后根据“指纹”的差异性来识别区分文件类型。基于上述原理,结合上述实施例的内容,在一个实施例中,文件统计特征包括文件内容中字节的统计频次和/或文件内容中加密标识的统计频次。
具体地,在统计字节的统计频次时,字节的载体不限于一种,如可以为定长元组或者变长元组。其中,由于变长元组的长度不固定,从而更加灵活且效果更佳。另外,字节类型也可以不作限定,如可以为英文字符字节、汉字字节或符号字节等。在进行字节频次统计时,可以先获知字节长度,从而依据字节长度确定字节类型,从而统计不同字节类型的字节所出现的频次。实际实施过程中,字节类型是与编码方式先关联的。在常用的GB2312、GBK、GB18030编码中,英文字符占1个字节,汉字占2个字节。在ISO-8859-1编码中,英文字符占1个字节。在UTF-8编码中,英文字符占1个字节,汉字占3个字节。
除了统计字节出现的频次之外,在加密文件中,加密标识通常是以0、1的形式出现的。为了避免被破解,会对外按照一定比例呈现0、1均衡的统计特性。由此,还可以统计文件内容中加密标识所出现的频次。结合上述说明,实际实施过程中,为了得到文件统计特征,可以开展单字节、双字节及三字节频次统计,以及0、1均衡特性统计。由于双字节、三字节频次统计计算量较大,为缩减计算量,可以仅关注最常用的2000余个汉字,并进行编码转换,统计转换后的编码所出现的频次,而不用将所有汉字进行编码转换,并统计其出现的频次。
本发明实施例提供的方法,由于可以结合文件统计特征,从而可以基于多种类型的特征,对文件类型进行综合识别,进而相较于相关技术中基于一种特征进行文件类型识别,可以提高识别成功率及准确率。
结合上述实施例的内容,在一个实施例中,本发明实施例不对贝叶斯网络模型的训练方式作具体限定,包括但不限于:构建初始模型;其中,初始模型将每一已知文件类型作为父节点,将每一已知文件类型的文件特征作为子节点;每一子节点对应一组特征项,特征项中包括子特征值及子特征值对应的权重,子特征值用于表示在父节点为前提下子节点所出现的概率值;对初始模型进行训练,得到贝叶斯网络模型。
其中,在构建初始模型之前,可以先构建识别规则树。具体地,基于上述实施例,在完成各项文件特征抽取后,可针对每种文件类型的文件,综合考虑各项文件特征并采用XML文件的形式设计得到上述识别规则树。识别规则树主要是表述文件特征与文件类型之间的关联,也即给出哪些内容的文件特征可以用于推定出哪种文件类型这样的因果关系。以文件特征包括文件结构特征、文件特征串及文件统计特征为例,上述识别规则树可以简化为如图13所示的结构,图13中的直线表示上一层次与下一次层次属性之间的因果关系。其中,图13中仅给出了一种文件类型对应的识别规则树,实际实施过程中每种文件类型均可以对应一个识别规则树。
由于某一待识别文件可能会存在多种文件特征,每种文件特征对于文件类型识别的贡献程度,从而在利用多种文件特征识别该待识别文件的文件类型时,可以为每种文件特征设置权重。基于此,可以结合上述识别规则树,构建初始模型。如图13所示,对于直线相连的2个节点,位于上方的即为父节点,而位于下方的即为子节点,每一子节点可以对应一组特征项。例如,若某一文件特征串作为文件特征(同时作为子节点)与zip文件类型(作为父节点)连接,则该文件特征串对应的一组特征项可以包括两项内容,一是zip文件类型检测出该文件特征串的概率值,二是该概率值对应的权重。
需要说明的是,位于同一父节点下的同一层的子节点,每一子节点的子特征值之和为1,即表示出现的总概率值为100%。如图13所示,文件特征串F下的3个子特征的权重值应该满足w1+w2+w3=1。根据已知文件类型的样本文件所对应的统计结果,由上述实施例中关于贝叶斯原理的相关说明可知,文件特征与文件类型作为父子节点是可以基于样本文件所确定的,而每一组特征项中的子特征值是可以基于样本文件所统计得到的。由此,初始模型需要求解的主要是特征项中的权重。而在本发明实施例中,可以先设置与权重关联,且与贝叶斯网络模型预测效果好坏相关联的训练目标函数。通过不断调整权重值,直至该训练目标函数求得最优解。此时,求得最优解时所对应的权重即为初始模型最终调整的权重,该初始模型即为最终训练得到的贝叶斯网络模型。
本发明实施例提供的方法,通过构建初始模型,基于已知文件类型的样本文件,对初始模型进行训练,得到贝叶斯网络模型。由于训练过程不受人为因素的影像,减少了训练过程中不确定性因素的影响,从而提高了优化过程的可靠性和准确性。
结合上述实施例的内容,在一个实施例中,关于对初始模型进行训练,得到贝叶斯网络模型的方式,本发明实施例对此不作具体限定,包括但不限于:根据初始模型中每一子节点对应的子特征值及每一子节点对应的权重,构建初始模型的训练目标函数;基于预设方式,对初始模型中的权重进行调整,重复上述调整过程,直至训练目标函数的计算结果满足预设条件,则完成训练,并将完成训练后的初始模型作为贝叶斯网络模型。
其中,权重的调整方式可以为增大或减少,本发明实施例对此不作具体限定。预设条件可以根据需求进行设置,比如,若存在训练目标函数的计算结果能够直接用于衡量贝叶斯网络模型预测效果的好坏,则预设条件可以设置训练目标函数的计算结果收敛,具体可以体现为连续n次中每相邻两次训练目标函数的计算结果之间的差值均小于预设阈值。
本发明实施例提供的方法,通过根据初始模型中每一子节点对应的子特征值及每一子节点对应的权重,构建初始模型的训练目标函数。基于预设方式,对初始模型中的权重进行调整,重复上述调整过程,直至训练目标函数的计算结果满足预设条件,则完成训练,并将完成训练后的初始模型作为贝叶斯网络模型。由于训练过程不受人为因素的影像,减少了训练过程中不确定性因素的影响,从而提高了优化过程的可靠性和准确性。
结合上述实施例的内容,在一个实施例中,关于对初始模型中的权重进行调整的方式,本发明实施例对此不作具体限定,包括但不限于:确定调整权重的梯度方向及步长,根据梯度方向及步长,对初始模型中的权重进行调整。
具体地,权重调整的方式可以为梯度下降策略,并具体可以采用贪心爬山法,本发明实施例对此不作具体限定。也即,在每次迭代中修改这些权重,并最终收敛到一个局部最优解。为了便于理解,现结合上述实施例的内容,对初始模型的训练过程进行解释说明。具体可参考图14,训练过程包括:
(1)可先确定训练目标,为了能够使得训练目标函数能够衡量贝叶斯网络模型预测效果的好坏;训练目标可以设置为其中,S表示样本文件的个数,d表示第d个样本文件。样本文件的文件类型输出是已知的,将样本文件的实际文件类型作为期望输出,将样本文件的文件特征输入至初始模型,可以观察初始模型输出的:该样本文件的文件类型为该期望输出的概率,也即pw(Xd),w表示初始模型当前所使用的权重。很明显,该pw(Xd)的值越大,则表明初始模型的预测效果越好。由此,训练目标主要是希望每一样本文件对应的pw(X)相乘所得到的乘积最大。
(2)为了计算方便,可以先赋予初始权重,以此为基础进行调整。为调整权重,可以先确定权重调整的梯度方向,也即究竟是增加权重还是减小权重。上述关于Pw(S)的计算过程,实则为朴素贝叶斯的计算过程,主要是对特定分类中各个特征出现的概率进行连乘。由于概率均是小数,小数相乘,越乘越小,则可能会造成下溢出。在应用程序中,若在相应小数位置进行四舍五入,计算结果可能就变成0了。为避免出现该情形,且为了便于结算,可对步骤(1)中的训练目标取自然对数,通过求对数可以避免下溢出或者浮点数舍入导致的错误,也即训练目标改为InPw(S)。基于确定梯度方向的需求,给出如下计算梯度方向的公式:
其中,p(e|Xd)表示子节点为e在样本Xd对应的已知文件类型前提下的先验概率。其它参数的解释说明,可参考上述实施例的内容,此处不在赘述。
(3)沿梯度方向指定步长,也即权重的减少量或者增加量,可以通过如下公式进行表示:
(4)由于调整权重值后,对于位于同一父节点下的同层所有子节点,可能会导致这些子节点的权重和不为1,这不符合权重设置的定义,从而需要对权重进行重新归一化,以使得这些子节点的权重和为1。
本发明实施例提供的方法,通过确定调整权重的梯度方向及步长,根据梯度方向及步长,对初始模型中的权重进行调整。由于训练过程不受人为因素的影像,减少了训练过程中不确定性因素的影响,从而提高了优化过程的可靠性和准确性。
结合上述图14的训练过程,本发明实施例所提供的方法对应的使用过程可参考图15。实际实施过程中,为验证本发明实施例提供的方法对应的识别效果,本发明实施例可以采用查准率和查全率两个指标来进行评价。具体地,可以用二值列联表来计算查准率和查全率的值,如表3所示:
表3
实际属于此类 | 实际不属于此类 | |
系统判断属于此类 | A | B |
系统判断不属于此类 | C | D |
查准率和查全率反映了分类质量两个不同方面,两者可以综合考虑。由此,可利用评估指标F测试值进行评估,F值越大,分类性能越好,其数学公式表示如下:
(1)查准率:p=A/(A+B)
(2)查全率:p=A/(A+C)
(3)评估指标:F=2PR/(P+R)
基于上述各项指标的计算公式,本发明实施例对如下表4中所示的几类文件进行识别。每种类型训练样本完好和损坏文件各500个,测试样本完好和损坏文件各50个。文件大小从10K到50M不等,训练样本共8.6G,测试样本共751M,所有样本文件均从不同的计算机上随机选取,最终测试结果如下:
表4
需要说明的是,由于识别算法综合考虑了文件结构特征、文件特征串及文件统计特征等特征,对完好文件以及结构已知的文件的识别率普遍较高。但对文件结构未知、特征信息掌握较少以及损坏文件,由于损坏部位随机,损坏程度不一,识别准确率有所下降。综上,识别率存在明显提升。
为了便于理解,现结合具体文件,对本发明实施例提供的文件类型识别过程进行解释说明。具体地,利用本发明中的贝叶斯网络模型分别对完好的.doc文件、损坏的.doc文件、仅获知“魔数”及二进制统计特征的某加密文件.cx文件进行识别,具体情况如下:
(1)完好.doc文件
由于.doc文件属于复合文档,文件“魔数”、文件结构均已知,包含的文件特征串也已知,从而可以比较精准地构建识别规则,建立准确的贝叶斯网络模型。因此,试验中根据特征提取模型,可以准确获取文件“魔数”信息0xD0 0xCF 0x11 0xE0、0Table及1Table等文件结构特征,还可以获取文件特征串“wordDocument、Microsoft Office Word97-2003”以及统计特征信息。综上,识别准确率较高,接近100%,评估指标良好。
(2)损坏.doc文件
由于损坏.doc具体损坏部位随机,可能结构被破坏,也可能“魔数”被破坏,文件特征串可能存在干扰,二进制统计特征也不准确。试验中文件“魔数”信息0xD0 0xCF 0x110xE0部分文件不一致,0Table、1Table等文件结构特征缺失。文件特征串“wordDocument、Microsoft Office Word97-2003”等被破坏,识别准确率明显降低,准确率约为90%,评估指标有所下降。
(3)损坏的加密.cx文件
为验证对加密文件的识别效果,利用某加密类型文件.cx进行测试。由于加密的.cx文件仅知道文件“魔数”和二进制统计两个特征,很多文件会产生干扰,尤其是部分损坏文件也存在类似特征,降低了识别率,且测试样本中的损坏文件越多,识别干扰越大。另外,对于损坏的加密.cx文件,二进制统计特征以及文件“魔数”特征均可能被破坏,进一步降低了识别准确率。试验中文件“魔数”0x49 0x56 0x1C多个损坏的其他文件也具备,部分损坏的.cx文件0、1不完全均衡,由于不掌握文件结构,也不存在文件特征串,识别模型较为简单,导致识别准确率不到70%,评估指标明显下降。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,上述阐述的技术方案在实际实施过程中可以作为独立实施例来实施,也可以彼此之间进行组合并作为组合实施例实施。另外,在对上述本发明实施例内容进行阐述时,仅基于方便阐述的思路,按照相应顺序对不同实施例进行阐述,如按照数据流流向的顺序,而并非是对不同实施例之间的执行顺序进行限定。相应地,在实际实施过程中,若需要实施本发明提供的多个实施例,则不一定需要按照本发明阐述实施例时所提供的执行顺序,而是可以根据需求安排不同实施例之间的执行顺序。
结合上述实施例的内容,在一个实施例中,如图16所示,提供了一种文件类型识别装置,包括:提取模块1601、输入输出模块1602及确定模块1603;
提取模块1601,用于获取待识别文件,提取待识别文件的文件特征,文件特征与待识别文件的文件类型相关联;
输入输出模块1602,用于将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值,贝叶斯网络模型是基于已知文件类型及已知文件类型的文件特征所构建的;
确定模块1603,用于当所有概率值中的最大值大于预设阈值时,则将最大值对应的已知文件类型作为待识别文件的文件类型;
其中,已知文件类型的文件特征包括以下三项特征中的至少一项,以下三项特征分别为:文件结构特征、文件特征串及文件统计特征;文件结构特征指的是文件加载至内存时,位于内存中不同位置的特征;文件特征串指的是非直接关联文件类型的特征;文件统计特征指的是基于文件内容统计得到的特征。
在一个实施例中,文件结构特征包括固定特征和/或浮动特征;固定特征指的是文件加载至内存时在内存中位置固定的特征;浮动特征指的是文件加载至内存时在内存中位置不固定的特征。
在一个实施例中,固定特征包括文件特征标识,浮动特征包括文件目录结构特征;文件特征标识包括文件加载至内存时位于内存中头部结构位置的特征字符串;文件目录结构特征包括存在目录结构的文件加载至内存时目录结构在内存中的目录入口名称字符串。
在一个实施例中,固定特征还包括文件创建时间和/或文件版本号,浮动特征还包括目录层次结构特征和/或尾部结构特征。
在一个实施例中,文件特征串还包括文件在被应用程序读取后所遗留的与应用程序类型相关联的特征字符串。
在一个实施例中,文件统计特征包括文件内容中字节的统计频次和/或文件内容中加密标识的统计频次。
在一个实施例中,该装置还包括构建模块及训练模块;
构建模块,用于构建初始模型;其中,初始模型将每一已知文件类型作为父节点,将每一已知文件类型的文件特征作为子节点;每一子节点对应一组特征项,特征项中包括子特征值及子特征值对应的权重,子特征值用于表示在父节点为前提下子节点所出现的概率值;
训练模块,用于对初始模型进行训练,得到贝叶斯网络模型。
在一个实施例中,训练模块,包括:
构建单元,用于根据初始模型中每一子节点对应的子特征值及每一子节点对应的权重,构建初始模型的训练目标函数;
调整训练单元,用于基于预设方式,对初始模型中的权重进行调整,重复上述调整过程,直至训练目标函数的计算结果满足预设条件,则完成训练,并将完成训练后的初始模型作为贝叶斯网络模型。
在一个实施例中,调整训练单元,用于确定调整权重的梯度方向及步长,根据梯度方向及步长,对初始模型中的权重进行调整。
关于文件类型识别装置的具体限定可以参见上文中对于文件类型识别方法的限定,在此不再赘述。上述文件类型识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预设阈值。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件类型识别方法。
本领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
提取模块,用于获取待识别文件,提取待识别文件的文件特征,文件特征与待识别文件的文件类型相关联;
输入输出模块,用于将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值,贝叶斯网络模型是基于已知文件类型及已知文件类型的文件特征所构建的;
确定模块,用于当所有概率值中的最大值大于预设阈值时,则将最大值对应的已知文件类型作为待识别文件的文件类型;
其中,已知文件类型的文件特征包括以下三项特征中的至少一项,以下三项特征分别为:文件结构特征、文件特征串及文件统计特征;文件结构特征指的是文件加载至内存时,位于内存中不同位置的特征;文件特征串指的是非直接关联文件类型的特征;文件统计特征指的是基于文件内容统计得到的特征。
在一个实施例中,处理器在执行计算机程序时,文件结构特征包括固定特征和/或浮动特征;固定特征指的是文件加载至内存时在内存中位置固定的特征;浮动特征指的是文件加载至内存时在内存中位置不固定的特征。
在一个实施例中,处理器在执行计算机程序时,固定特征包括文件特征标识,浮动特征包括文件目录结构特征;文件特征标识包括文件加载至内存时位于内存中头部结构位置的特征字符串;文件目录结构特征包括存在目录结构的文件加载至内存时目录结构在内存中的目录入口名称字符串。
在一个实施例中,处理器在执行计算机程序时,固定特征还包括文件创建时间和/或文件版本号,浮动特征还包括目录层次结构特征和/或尾部结构特征。
在一个实施例中,处理器在执行计算机程序时,文件特征串还包括文件在被应用程序读取后所遗留的与应用程序类型相关联的特征字符串。
在一个实施例中,处理器在执行计算机程序时,文件统计特征包括文件内容中字节的统计频次和/或文件内容中加密标识的统计频次。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
构建初始模型;其中,初始模型将每一已知文件类型作为父节点,将每一已知文件类型的文件特征作为子节点;每一子节点对应一组特征项,特征项中包括子特征值及子特征值对应的权重,子特征值用于表示在父节点为前提下子节点所出现的概率值;
对初始模型进行训练,得到贝叶斯网络模型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据初始模型中每一子节点对应的子特征值及每一子节点对应的权重,构建初始模型的训练目标函数;
基于预设方式,对初始模型中的权重进行调整,重复上述调整过程,直至训练目标函数的计算结果满足预设条件,则完成训练,并将完成训练后的初始模型作为贝叶斯网络模型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
确定调整权重的梯度方向及步长,根据梯度方向及步长,对初始模型中的权重进行调整。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待识别文件,提取待识别文件的文件特征,文件特征与待识别文件的文件类型相关联;
将文件特征输入至贝叶斯网络模型,输出待识别文件被识别为每种已知文件类型的概率值,贝叶斯网络模型是基于已知文件类型及已知文件类型的文件特征所构建的;
若所有概率值中的最大值大于预设阈值,则将最大值对应的已知文件类型作为待识别文件的文件类型;
其中,已知文件类型的文件特征包括以下三项特征中的至少一项,以下三项特征分别为:文件结构特征、文件特征串及文件统计特征;文件结构特征指的是文件加载至内存时,位于内存中不同位置的特征;文件特征串指的是非直接关联文件类型的特征;文件统计特征指的是基于文件内容统计得到的特征。
在一个实施例中,计算机程序被处理器执行时,文件结构特征包括固定特征和/或浮动特征;固定特征指的是文件加载至内存时在内存中位置固定的特征;浮动特征指的是文件加载至内存时在内存中位置不固定的特征。
在一个实施例中,计算机程序被处理器执行时,固定特征包括文件特征标识,浮动特征包括文件目录结构特征;文件特征标识包括文件加载至内存时位于内存中头部结构位置的特征字符串;文件目录结构特征包括存在目录结构的文件加载至内存时目录结构在内存中的目录入口名称字符串。
在一个实施例中,计算机程序被处理器执行时,固定特征还包括文件创建时间和/或文件版本号,浮动特征还包括目录层次结构特征和/或尾部结构特征。
在一个实施例中,计算机程序被处理器执行时,文件特征串还包括文件在被应用程序读取后所遗留的与应用程序类型相关联的特征字符串。
在一个实施例中,计算机程序被处理器执行时,文件统计特征包括文件内容中字节的统计频次和/或文件内容中加密标识的统计频次。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
构建初始模型;其中,初始模型将每一已知文件类型作为父节点,将每一已知文件类型的文件特征作为子节点;每一子节点对应一组特征项,特征项中包括子特征值及子特征值对应的权重,子特征值用于表示在父节点为前提下子节点所出现的概率值;
对初始模型进行训练,得到贝叶斯网络模型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据初始模型中每一子节点对应的子特征值及每一子节点对应的权重,构建初始模型的训练目标函数;
基于预设方式,对初始模型中的权重进行调整,重复上述调整过程,直至训练目标函数的计算结果满足预设条件,则完成训练,并将完成训练后的初始模型作为贝叶斯网络模型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定调整权重的梯度方向及步长,根据梯度方向及步长,对初始模型中的权重进行调整。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种文件类型识别方法,其特征在于,所述方法包括:
获取待识别文件,提取所述待识别文件的文件特征,所述文件特征与所述待识别文件的文件类型相关联;
将所述文件特征输入至贝叶斯网络模型,输出所述待识别文件被识别为每种已知文件类型的概率值,所述贝叶斯网络模型是基于已知文件类型及所述已知文件类型的文件特征所构建的;
若所有概率值中的最大值大于预设阈值,则将所述最大值对应的已知文件类型作为所述待识别文件的文件类型;
其中,所述已知文件类型的文件特征包括以下三项特征中的至少一项,所述以下三项特征分别为:文件结构特征、文件特征串及文件统计特征;所述文件结构特征指的是文件加载至内存时,位于内存中不同位置的特征;所述文件特征串指的是非直接关联文件类型的特征;所述文件统计特征指的是基于文件内容统计得到的特征。
2.根据权利要求1所述的方法,其特征在于,所述文件结构特征包括固定特征和/或浮动特征;所述固定特征指的是文件加载至内存时在内存中位置固定的特征;所述浮动特征指的是文件加载至内存时在内存中位置不固定的特征。
3.根据权利要求2所述的方法,其特征在于,所述固定特征包括文件特征标识,所述浮动特征包括文件目录结构特征;所述文件特征标识包括文件加载至内存时位于内存中头部结构位置的特征字符串;所述文件目录结构特征包括存在目录结构的文件加载至内存时目录结构在内存中的目录入口名称字符串。
4.根据权利要求3所述的方法,其特征在于,所述固定特征还包括文件创建时间和/或文件版本号,所述浮动特征还包括目录层次结构特征和/或尾部结构特征。
5.根据权利要求1所述的方法,其特征在于,所述文件特征串还包括文件在被应用程序读取后所遗留的与所述应用程序类型相关联的特征字符串。
6.根据权利要求1所述的方法,其特征在于,所述文件统计特征包括文件内容中字节的统计频次和/或文件内容中加密标识的统计频次。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述贝叶斯网络模型的训练过程,包括:
构建初始模型;其中,所述初始模型将每一已知文件类型作为父节点,将每一已知文件类型的文件特征作为子节点;每一子节点对应一组特征项,特征项中包括子特征值及子特征值对应的权重,子特征值用于表示在父节点为前提下子节点所出现的概率值;
对所述初始模型进行训练,得到所述贝叶斯网络模型。
8.根据权利要求7所述的方法,其特征在于,所述对所述初始模型进行训练,得到所述贝叶斯网络模型,包括:
根据所述初始模型中每一子节点对应的子特征值及每一子节点对应的权重,构建所述初始模型的训练目标函数;
基于预设方式,对所述初始模型中的权重进行调整,重复上述调整过程,直至所述训练目标函数的计算结果满足预设条件,则完成训练,并将完成训练后的初始模型作为所述贝叶斯网络模型。
9.根据权利要求8所述的方法,其特征在于,所述基于预设方式,对所述初始模型中的权重进行调整,包括:
确定调整权重的梯度方向及步长,根据所述梯度方向及所述步长,对所述初始模型中的权重进行调整。
10.一种文件类型识别装置,其特征在于,所述装置包括:
提取模块,用于获取待识别文件,提取所述待识别文件的文件特征,所述文件特征与所述待识别文件的文件类型相关联;
输入输出模块,用于将所述文件特征输入至贝叶斯网络模型,输出所述待识别文件被识别为每种已知文件类型的概率值,所述贝叶斯网络模型是基于已知文件类型及所述已知文件类型的文件特征所构建的;
确定模块,用于当所有概率值中的最大值大于预设阈值时,则将所述最大值对应的已知文件类型作为所述待识别文件的文件类型;
其中,所述已知文件类型的文件特征包括以下三项特征中的至少一项,所述以下三项特征分别为:文件结构特征、文件特征串及文件统计特征;所述文件结构特征指的是文件加载至内存时,位于内存中不同位置的特征;所述文件特征串指的是非直接关联文件类型的特征;所述文件统计特征指的是基于文件内容统计得到的特征。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111022835.3A CN113807051B (zh) | 2021-09-01 | 2021-09-01 | 文件类型识别方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111022835.3A CN113807051B (zh) | 2021-09-01 | 2021-09-01 | 文件类型识别方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113807051A true CN113807051A (zh) | 2021-12-17 |
CN113807051B CN113807051B (zh) | 2022-10-25 |
Family
ID=78942203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111022835.3A Active CN113807051B (zh) | 2021-09-01 | 2021-09-01 | 文件类型识别方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113807051B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598597A (zh) * | 2022-02-24 | 2022-06-07 | 烽台科技(北京)有限公司 | 多源日志解析方法、装置、计算机设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315955A (zh) * | 2016-04-27 | 2017-11-03 | 百度在线网络技术(北京)有限公司 | 文件安全性识别方法和装置 |
WO2019145912A1 (en) * | 2018-01-26 | 2019-08-01 | Sophos Limited | Methods and apparatus for detection of malicious documents using machine learning |
US20190332769A1 (en) * | 2018-04-30 | 2019-10-31 | Mcafee, Llc | Model development and application to identify and halt malware |
CN112669876A (zh) * | 2020-12-18 | 2021-04-16 | 平安科技(深圳)有限公司 | 情绪识别方法、装置、计算机设备及存储介质 |
-
2021
- 2021-09-01 CN CN202111022835.3A patent/CN113807051B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315955A (zh) * | 2016-04-27 | 2017-11-03 | 百度在线网络技术(北京)有限公司 | 文件安全性识别方法和装置 |
WO2019145912A1 (en) * | 2018-01-26 | 2019-08-01 | Sophos Limited | Methods and apparatus for detection of malicious documents using machine learning |
US20190332769A1 (en) * | 2018-04-30 | 2019-10-31 | Mcafee, Llc | Model development and application to identify and halt malware |
CN112669876A (zh) * | 2020-12-18 | 2021-04-16 | 平安科技(深圳)有限公司 | 情绪识别方法、装置、计算机设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598597A (zh) * | 2022-02-24 | 2022-06-07 | 烽台科技(北京)有限公司 | 多源日志解析方法、装置、计算机设备及介质 |
CN114598597B (zh) * | 2022-02-24 | 2023-12-01 | 烽台科技(北京)有限公司 | 多源日志解析方法、装置、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113807051B (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11682226B2 (en) | Method and system for assessing similarity of documents | |
US8266179B2 (en) | Method and system for processing text | |
US11972201B2 (en) | Facilitating auto-completion of electronic forms with hierarchical entity data models | |
US8190613B2 (en) | System, method and program for creating index for database | |
US11734364B2 (en) | Method and system for document similarity analysis | |
US11416531B2 (en) | Systems and methods for parsing log files using classification and a plurality of neural networks | |
US8909514B2 (en) | Unsupervised learning using global features, including for log-linear model word segmentation | |
WO2021169186A1 (zh) | 文本查重方法、电子设备及计算机可读存储介质 | |
US10248626B1 (en) | Method and system for document similarity analysis based on common denominator similarity | |
US20190384809A1 (en) | Methods and systems for providing universal portability in machine learning | |
CN113807051B (zh) | 文件类型识别方法、装置、计算机设备和存储介质 | |
US10169324B2 (en) | Universal lexical analyzers | |
CN115858785A (zh) | 一种基于大数据的敏感数据识别方法及系统 | |
CN113961768A (zh) | 敏感词检测方法、装置、计算机设备和存储介质 | |
CN113010550B (zh) | 结构化数据的批处理对象生成、批处理方法和装置 | |
Monjalet et al. | Predicting file lifetimes with machine learning | |
US20220215170A1 (en) | Framework for chinese text error identification and correction | |
CN111222320B (zh) | 一种字符预测模型训练方法及装置 | |
US20220229810A1 (en) | Hash code-based search apparatus and search method | |
US11868726B2 (en) | Named-entity extraction apparatus, method, and non-transitory computer readable storage medium | |
US8176407B2 (en) | Comparing values of a bounded domain | |
JP2000259625A (ja) | 文書校正装置 | |
CN117407291A (zh) | 需求校验方法、装置、计算机设备及其存储介质 | |
CN115167913A (zh) | 一种操作系统的分层方法、计算设备及存储介质 | |
WO2020202324A1 (ja) | 文書解析装置、文書解析方法、及びコンピュータ読み取り可能な記録媒体 |
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 |