CN112256635B - 一种识别文件类型的方法及装置 - Google Patents
一种识别文件类型的方法及装置 Download PDFInfo
- Publication number
- CN112256635B CN112256635B CN202011120206.XA CN202011120206A CN112256635B CN 112256635 B CN112256635 B CN 112256635B CN 202011120206 A CN202011120206 A CN 202011120206A CN 112256635 B CN112256635 B CN 112256635B
- Authority
- CN
- China
- Prior art keywords
- file
- header
- preset
- byte
- 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.)
- Active
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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- 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/17—Details of further file system functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种识别文件类型的方法及装置,该方法包括获取待识别文件的文件头,基于预设的匹配规则,确定文件特征参数库中是否存在与所述待识别文件的文件头匹配的文件特征参数,若是,则确定出所述待识别文件的文件类型。基于文件特征参数库中的文件特征参数与文件类型存在对应关系,将待识别文件的文件头与文件特征参数库中的每一文件特征参数进行匹配,可以准确有效地确定出待识别文件的文件类型,有助于提高待识别文件的文件类型的识别效率,从而使用这种通用的方法可以准确高效地识别出待识别文件的文件类型,进而可以解决现有技术中存在文件类型的识别不通用且准确性低的问题。
Description
技术领域
本申请实施例涉及计算机信息技术领域,尤其涉及一种识别文件类型的方法及装置。
背景技术
在计算机需要对不同的文件类型做区分处理时,就需要对不同的文件类型进行识别判断。目前识别文件类型的方法主要有两种:一种是根据文件后缀识别文件的类型。由于文件名一般由名称和后缀构成,因此直接获取文件名中的后缀便可以识别出文件的类型。然而由于文件名及其后缀在一般系统中都是可修改的,并且很多文件在保存时并没有文件后缀,因此以文件后缀识别文件类型的方法并不可靠。另一种是根据文件存储结构确定文件类型。由于不同的文件类型通常有不同的文件结构(即文件特征参数),因此通过检测特定的文件结构也可以识别出文件的类型。然而通过文件特征参数匹配的方法识别文件类型虽然是一种可靠的识别方法,但随着文件特征参数的积累,识别文件类型的效率下降,并且存在文件特征参数不连续的文件不能有效识别的问题。
综上,目前亟需一种识别文件类型的方法,用以解决现有技术中存在文件类型的识别不通用且准确性低的问题。
发明内容
本申请实施例提供了一种识别文件类型的方法及装置,用以解决现有技术中存在文件类型的识别不通用且准确性低的问题。
第一方面,本申请实施例提供了一种识别文件类型的方法,包括:
获取待识别文件的文件头;
基于预设的匹配规则,确定文件特征参数库中是否存在与所述待识别文件的文件头匹配的文件特征参数;
若是,则确定出所述待识别文件的文件类型。
上述技术方案中,由于文件特征参数库中的文件特征参数与文件类型存在对应关系,因此通过基于预设的匹配规则,将待识别文件的文件头与文件特征参数库中的每一文件特征参数进行匹配,确定文件特征参数库中是否存在与待识别文件的文件头匹配的文件特征参数,如此可以准确有效地确定出待识别文件的文件类型,有助于提高待识别文件的文件类型的识别效率,从而使用这种通用的方法可以准确高效地识别出待识别文件的文件类型,进而可以解决现有技术中存在文件类型的识别不通用且准确性低的问题。
在一种可能的实现方式中,所述获取待识别文件的文件头,包括:
对所述待识别文件进行切分处理,得到所述待识别文件的文件头。
上述技术方案中,由于通过待识别文件的特定文件头可以准确有效地确定出该待识别文件的文件类型,因此通过对待识别文件进行切分处理,得到待识别文件的文件头,如此可以便于后续对待识别文件的文件头进行匹配即可识别出该待识别文件的文件类型。
在一种可能的实现方式中,根据下述步骤确定所述文件特征参数库:
获取各文件类型的样本文件;
对所述各文件类型的样本文件进行切分处理,得到所述各文件类型的文件头;
基于预设的文件特征参数转换规则,将所述各文件类型的文件头转换为所述各文件类型的文件头对应的文件特征参数;
将所述文件特征参数、所述文件特征参数对应的文件类型存储在所述文件特征参数库中。
上述技术方案中,通过对各文件类型的样本文件进行切分处理,得到各文件类型的文件头,并基于预设的文件特征参数转换规则,将各文件类型的文件头转换为各文件类型的文件头对应的文件特征参数,将文件特征参数、文件特征参数对应的文件类型存储在文件特征参数库中,如此可以为准确有效地识别出待识别文件的文件类型提供支持。
在一种可能的实现方式中,所述文件头包括固定字节和非固定字节;
所述基于预设的文件特征参数转换规则,将所述各文件类型的文件头转换为所述各文件类型的文件头对应的文件特征参数,包括:
针对所述各文件类型的文件头中任一文件类型的文件头,确定位于所述文件类型的文件头的固定字节之前是否存在非固定字节;
若是,则将所述非固定字节转换为对应的检测特征码,并将所述检测特征码和所述文件类型的文件头的固定字节确定为所述文件类型的文件头对应的文件特征参数,否则将所述文件类型的文件头的固定字节确定为所述文件类型的文件头对应的文件特征参数。
上述技术方案中,通过将位于文件类型的文件头的固定字节之前的非固定字节替换为对应的检测特征码,并将检测特征码和该文件类型的文件头的固定字节确定为文件类型的文件头对应的文件特征参数,如此可以有助于后续基于文件特征参数中的检测特征码对待识别文件的文件头进行快速准确地匹配。
在一种可能的实现方式中,所述方法还包括:
针对所述各文件类型的文件头中任一文件类型的文件头,若确定所述文件类型的文件头的固定字节中存在所述检测特征码中第一预设字节,则将所述第一预设字节转换为第一预设特征码;所述第一预设特征码用于构造所述文件类型的文件头对应的文件特征参数;所述第一预设特征码包括第二预设字节;
若确定所述文件类型的文件头的固定字节中存在所述第一预设特征码中的第二预设字节,则将所述第二预设字节转换为第二预设特征码;所述第二预设特征码用于构造所述文件类型的文件头对应的文件特征参数。。
上述技术方案中,针对各文件类型的文件头中任一文件类型的文件头,若确定该文件类型的文件头的固定字节中存在检测特征码中第一预设字节,则将第一预设字节转换为第一预设特征码;若确定该文件类型的文件头的固定字节中存在第一预设特征码中的第二预设字节,则将第二预设字节转换为第二预设特征码,如此可以避免由于待识别文件的文件头的固定字节中存在第一预设字节或第二预设字节给文件特征参数与待识别文件的文件头之间的匹配造成干扰,并可以避免由于匹配干扰导致待识别文件的文件类型的识别不准确的问题,从而可以有助于后续基于文件特征参数中的检测特征码对待识别文件的文件头进行快速准确地匹配。
在一种可能的实现方式中,所述基于预设的匹配规则,确定文件特征参数库中是否存在与所述待识别文件的文件头匹配的文件特征参数,包括:
针对所述文件特征参数库中每一文件特征参数,将所述待识别文件的文件头与所述文件特征参数进行匹配,在确定所述文件特征参数中存在第一预设字节时,获取所述文件特征参数中位于所述第一预设字节之后的字节数m,并基于所述字节数m,使用所述待识别文件的文件头中位于所述m个字节之后的字节与所述文件特征参数中位于所述字节数m之后的字节进行匹配;所述m为大于等于1的整数;
在确定所述文件特征参数中存在第一预设特征码时,将所述第一预设特征码中的第二预设字节转换为所述第一预设字节,并使用所述第一预设字节与所述待识别文件的文件头对应的字节进行匹配;
在确定所述文件特征参数中存在第二预设特征码时,使用所述第二预设特征码中的第二预设字节与所述待识别文件的文件头对应的字节进行匹配。。
上述技术方案中,在确定文件特征参数中存在第一预设字节时,获取文件特征参数中位于第一预设字节之后的字节数m,并基于字节数m,使用待识别文件的文件头中位于m个字节之后的字节与文件特征参数中位于字节数m之后的字节进行匹配,或者在确定文件特征参数中存在第一预设特征码时,将第一预设特征码中的第二预设字节转换为第一预设字节,并使用第一预设字节与待识别文件的文件头对应的字节进行匹配;或者在确定文件特征参数中存在第二预设特征码时,使用第二预设特征码中的第二预设字节与待识别文件的文件头对应的字节进行匹配,如此可以有助于文件特征参数与待识别文件的文件头进行快速地匹配,从而可以有助于准确有效地识别出待识别文件的文件类型。
第二方面,本申请实施例还提供了一种识别文件类型的装置,包括:
获取单元,用于获取待识别文件的文件头;
处理单元,用于基于预设的匹配规则,确定文件特征参数库中是否存在与所述待识别文件的文件头匹配的文件特征参数;若是,则确定出所述待识别文件的文件类型。
在一种可能的实现方式中,所述处理单元具体用于:
对所述待识别文件进行切分处理,得到所述待识别文件的文件头。
在一种可能的实现方式中,所述处理单元具体用于:
获取各文件类型的样本文件;
对所述各文件类型的样本文件进行切分处理,得到所述各文件类型的文件头;
基于预设的文件特征参数转换规则,将所述各文件类型的文件头转换为所述各文件类型的文件头对应的文件特征参数;
将所述文件特征参数、所述文件特征参数对应的文件类型存储在所述文件特征参数库中。
在一种可能的实现方式中,所述文件头包括固定字节和非固定字节;
所述处理单元具体用于:
针对所述各文件类型的文件头中任一文件类型的文件头,确定位于所述文件类型的文件头的固定字节之前是否存在非固定字节;
若是,则将所述非固定字节转换为对应的检测特征码,并将所述检测特征码和所述文件类型的文件头的固定字节确定为所述文件类型的文件头对应的文件特征参数,否则将所述文件类型的文件头的固定字节确定为所述文件类型的文件头对应的文件特征参数。
在一种可能的实现方式中,所述处理单元还用于:
针对所述各文件类型的文件头中任一文件类型的文件头,若确定所述文件类型的文件头的固定字节中存在所述检测特征码中第一预设字节,则将所述第一预设字节转换为第一预设特征码;所述第一预设特征码用于构造所述文件类型的文件头对应的文件特征参数;所述第一预设特征码包括第二预设字节;
若确定所述文件类型的文件头的固定字节中存在所述第一预设特征码中的第二预设字节,则将所述第二预设字节转换为第二预设特征码;所述第二预设特征码用于构造所述文件类型的文件头对应的文件特征参数。
在一种可能的实现方式中,所述处理单元具体用于:
针对所述文件特征参数库中每一文件特征参数,将所述待识别文件的文件头与所述文件特征参数进行匹配,在确定所述文件特征参数中存在第一预设字节时,获取所述文件特征参数中位于所述第一预设字节之后的字节数m,并基于所述字节数m,使用所述待识别文件的文件头中位于所述m个字节之后的字节与所述文件特征参数中位于所述字节数m之后的字节进行匹配;所述m为大于等于1的整数;
在确定所述文件特征参数中存在第一预设特征码时,将所述第一预设特征码中的第二预设字节转换为所述第一预设字节,并使用所述第一预设字节与所述待识别文件的文件头对应的字节进行匹配;
在确定所述文件特征参数中存在第二预设特征码时,使用所述第二预设特征码中的第二预设字节与所述待识别文件的文件头对应的字节进行匹配。
第三方面,本申请实施例提供一种计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行识别文件类型的方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行识别文件类型的方法的步骤。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种识别文件类型的方法的流程示意图;
图2为本申请实施例提供的第一种文件类型的文件的文件头的示意图;
图3为本申请实施例提供的第二种文件类型的文件的文件头的示意图;
图4为本申请实施例提供的第三种文件类型的文件的文件头的示意图;
图5为本申请实施例提供的一种对第一种文件类型的文件的文件头进行转换的示意图;
图6为本申请实施例提供的一种对第二种文件类型的文件的文件头进行转换的示意图;
图7为本申请实施例提供的一种对第三种文件类型的文件的文件头进行转换的示意图;
图8为本申请实施例提供的一种识别文件类型的装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请的示意性实施例及其说明用于解释本申请,但并不作为对申请的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。
应当理解,本申请中所使用的“第一”、“第二”等,并非特别指先后次序或顺位的意思,也非用以限定本申请,在适当情况下可以互换,其仅为了区别以相同技术用语描述的元件或操作。
此外,本申请中所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。另外,本申请中所使用的“及/或”,包括所述事物的任一或全部组合。
图1示例性的示出了本申请实施例提供的一种识别文件类型的方法的流程,该流程可以由识别文件类型的装置执行。
如图1所示,该流程具体包括:
步骤101,获取待识别文件的文件头。
步骤102,基于预设的匹配规则,确定文件特征参数库中是否存在与所述待识别文件的文件头匹配的文件特征参数。
步骤103,若确定文件特征参数库中存在与所述待识别文件的文件头匹配的文件特征参数,则确定出所述待识别文件的文件类型。
在上述步骤101中,由于通过待识别文件的特定文件头可以准确有效地确定出该待识别文件的文件类型,因此通过对待识别文件进行切分处理,得到待识别文件的文件头,如此可以便于后续对待识别文件的文件头进行匹配即可识别出该待识别文件的文件类型。
在上述步骤102和步骤103中,针对文件特征参数库中每一文件特征参数,将待识别文件的文件头与文件特征参数进行匹配,在确定文件特征参数中存在第一预设字节时,获取文件特征参数中位于第一预设字节之后的字节数m,并基于字节数m,使用待识别文件的文件头中位于m个字节之后的字节与文件特征参数中位于字节数m之后的字节进行匹配,并在确定待识别文件的文件头与文件特征参数完全匹配时,确定该待识别文件的文件头符合文件特征参数对应的文件类型的结构,因此可以识别出该待识别文件的文件类型;m为大于等于1的整数。在确定文件特征参数中存在第一预设特征码时,将第一预设特征码中的第二预设字节转换为第一预设字节,并使用第一预设字节与待识别文件的文件头对应的字节进行匹配,并在确定待识别文件的文件头与文件特征参数完全匹配时,确定该待识别文件的文件头符合文件特征参数对应的文件类型的结构,因此可以识别出该待识别文件的文件类型。在确定文件特征参数中存在第二预设特征码时,并使用第二预设特征码中的第二预设字节与待识别文件的文件头对应的字节进行匹配,并在确定待识别文件的文件头与文件特征参数完全匹配时,确定该待识别文件的文件头符合文件特征参数对应的文件类型的结构,因此可以识别出该待识别文件的文件类型。如此可以避免由于待识别文件的文件头的固定字节中存在第一预设字节或第二预设字节给文件特征参数与待识别文件的文件头之间的匹配造成干扰,并可以避免由于匹配干扰导致待识别文件的文件类型的识别不准确的问题,从而可以有助于后续基于文件特征参数中的检测特征码对待识别文件的文件头进行快速准确地匹配。其中,第一预设字节和第二预设字节可以根据业务需求或者实际应用场景进行设置;第一预设字节或第二预设字节可以包括一个或多个字节,本申请实施例对此并不作限制。
鉴于此,下面对上述的文件特征参数库进行介绍。具体地,首先获取各文件类型的样本文件,即获取已知文件类型的文件的文件头,该文件头可以包括固定字节和非固定字节。再针对各文件类型的文件头中任一文件类型的文件头,确定位于文件类型的文件头的固定字节之前是否存在非固定字节,在确定位于文件类型的文件头的固定字节之前是否存在非固定字节时,将非固定字节转换为对应的检测特征码,并将检测特征码和文件类型的文件头的固定字节确定为文件类型的文件头对应的文件特征参数,否则将文件类型的文件头的固定字节确定为文件类型的文件头对应的文件特征参数。然后将文件特征参数、文件特征参数对应的文件类型存储在文件特征参数库中。其中,针对各文件类型的文件头中任一文件类型的文件头,若确定文件类型的文件头的固定字节中存在检测特征码中第一预设字节,则将第一预设字节转换为第一预设特征码;第一预设特征码用于构造文件类型的文件头对应的文件特征参数。若确定文件类型的文件头的固定字节中存在第一预设特征码中的第二预设字节,则将第二预设字节转换为第二预设特征码;第二预设特征码用于构造文件类型的文件头对应的文件特征参数。
在将待识别文件的文件头与文件特征参数进行匹配之前,需要基于预设的文件特征参数转换规则,将已知文件类型的文件的文件头转换为对应的文件特征参数。
首先,本领域的技术人员应当理解,已知文件类型的文件的文件头存在三种形式。第一种,示例性地,如图2所示,该文件类型的文件头中若干字节为固定值,不会随着文件内容变化而发生改变。第二种,示例性地,如图3所示,该文件类型的文件头开始的若干字节不固定,紧接着的若干字节为固定值。第三种,示例性地,如图4所示,该文件类型的文件头开始的若干字节为固定值,但并不足以表示该文件的文件类型,其后有若干字节不固定,再后则有固定值可表示文件类型的字节。
鉴于此,通过对上述已知文件类型的文件的文件头的存在形式进行分析,则为了能够匹配以上三种形式的文件特征参数,设计一种2个字节的检测特征码,第一个字节为第一预设字节(比如0xEE、AAEE、xxCC等),第二个字节为基于预设的匹配规则,将待识别文件的文件头与文件特征参数进行匹配时需要跳过待识别文件的文件头的字节数(比如使用AC自动机(Aho-Corasick automaton)匹配时,需要跳过的字节数)。然后按照检测特征码将已知文件类型的文件的文件头转换为对应的文件特征参数,该文件特征参数、该文件特征参数对应的文件类型可以存储在文件特征参数库中,用于匹配待识别文件的文件头,并识别出待识别文件的文件类型。此外,该文件特征参数也可以用于构建AC自动机字典树。
下面对将已知文件类型的文件的文件头转换为对应的文件特征参数的过程进行介绍。该过程具体为:
a、已知文件类型的文件的文件头中固定字节之前若存在非固定字节,则将非固定字节替换为EE+非固定字节的字节数,即替换为检测特征码。
b、已知文件类型的文件的文件头中固定字节存在0xEE字节时,需要将0xEE字节替换为0xEF01,若存在0xEF字节时,将0xEF替换为0xEF02。
示例性地,如图5所示,将第一种文件类型的文件头中的固定字节作为文件特征参数;如图6所示,将第二种文件类型的文件头中的非固定字节转换为检测特征码,再将该检测特征码和第二种文件类型的文件头中的固定字节作为文件特征参数;如图7所示,将第三种文件类型的文件头中的非固定字节转换为检测特征码,再将该检测特征码和第二种文件类型的文件头中的两个固定字节作为文件特征参数。比如AC自动机匹配文件特征参数时,若匹配到0xEE字节时,继续获取下一个字节的值a,并跳过a个字节之后,继续使用后续的文件特征参数匹配待识别文件的文件头。若匹配到0xEF字节时,继续获取下一个字节的值b,若b的值为0x01,则使用0xEE去匹配待识别文件的文件头,若b的值为0x02,则使用0xEF去匹配待识别文件的文件头。
示例性地,下面对待识别文件的文件头与文件特征参数进行匹配的过程进行介绍。该过程具体为:
Step1:根据已知的文件类型的结构获取其用于识别文件类型的文件头,并将该文件头转化为文件特征参数。
按照检测特征码对该已知文件类型的文件的文件头进行转换,得到对应的文件特征参数。
Step2:输入待识别文件,并获取待识别文件的文件头的若干字节。
Step3:使用内置的文件特征参数匹配待识别文件的文件头,匹配到文件特征参数为0xEE时,再继续获取文件特征参数的下一个字节a,并跳过待识别文件的文件头的a个字节,继续使用文件特征参数的后续字节匹配待识别文件的文件头的后续字节。
Step4:若匹配到文件特征参数0xEF字节时,再继续获取一个字节b,若b为0x01,则将0xEF字节转换为0xEE,并使用0xEE与待识别文件的文件头对应的字节比对,若b为0x02,则使用0xEF与待识别文件的文件头对应的字节比对。
Step5:若中途匹配失败,返回Step3,并获取下一个内置的文件特征参数来匹配待识别文件的文件头。
Step6:当文件特征参数检测完成,并与待识别文件的文件头完全匹配时,待识别文件的文件头符合该文件特征参数对应的文件类型的结构,如此可以确定出该待识别文件的文件类型。
在本申请的具体实施过程中,本申请实施例可以采用AC自动机对待识别文件的文件头进行匹配,以此确定出待识别文件的文件类型。利用AC自动机匹配待识别文件的文件头的具体过程为:
Step1:添加已知的文件类型的文件头及其对应的文件类型,并按照检测特征码对已知的文件类型的文件头进行转换。
Step2:用文件特征参数构建AC自动机字典树。
在对已知的文件类型的文件头进行转换得到文件特征参数后,使用文件特征参数构建AC自动机字典树。
Step3:构造失败指针,实现AC自动机算法。
Step4:获取待识别文件的文件头,并使用AC自动机匹配文件类型。
Step5:AC自动机逐个字节检测待识别文件的文件头,若完成一个文件特征参数的匹配,则获取其文件类型,结束匹配,以此确定出待识别文件的文件类型。
Step6:若至少匹配了一个字节之后,匹配失败,则沿字典树的父节点向上获取失败节点,进入Step5,继续检测。
Step7:当获取到的失败节点为根节点时,没有匹配到任何文件特征参数,则匹配失败。
上述实施例表明,由于文件特征参数库中的文件特征参数与文件类型存在对应关系,因此通过基于预设的匹配规则,将待识别文件的文件头与文件特征参数库中的每一文件特征参数进行匹配,确定文件特征参数库中是否存在与待识别文件的文件头匹配的文件特征参数,如此可以准确有效地确定出待识别文件的文件类型,有助于提高待识别文件的文件类型的识别效率,从而使用这种通用的方法可以准确高效地识别出待识别文件的文件类型,进而可以解决现有技术中存在文件类型的识别不通用且准确性低的问题。
基于同样的技术构思,图8示例性的示出了本申请实施例提供的一种识别文件类型的装置,该装置可以执行识别文件类型的方法的流程。
如图8所示,该装置包括:
获取单元801,用于获取待识别文件的文件头;
处理单元802,用于基于预设的匹配规则,确定文件特征参数库中是否存在与所述待识别文件的文件头匹配的文件特征参数;若是,则确定出所述待识别文件的文件类型。
在一种可能的实现方式中,所述处理单元802具体用于:
对所述待识别文件进行切分处理,得到所述待识别文件的文件头。
在一种可能的实现方式中,所述处理单元802具体用于:
获取各文件类型的样本文件;
对所述各文件类型的样本文件进行切分处理,得到所述各文件类型的文件头;
基于预设的文件特征参数转换规则,将所述各文件类型的文件头转换为所述各文件类型的文件头对应的文件特征参数;
将所述文件特征参数、所述文件特征参数对应的文件类型存储在所述文件特征参数库中。
在一种可能的实现方式中,所述文件头包括固定字节和非固定字节;
所述处理单元802具体用于:
针对所述各文件类型的文件头中任一文件类型的文件头,确定位于所述文件类型的文件头的固定字节之前是否存在非固定字节;
若是,则将所述非固定字节转换为对应的检测特征码,并将所述检测特征码和所述文件类型的文件头的固定字节确定为所述文件类型的文件头对应的文件特征参数,否则将所述文件类型的文件头的固定字节确定为所述文件类型的文件头对应的文件特征参数。
在一种可能的实现方式中,所述处理单元802还用于:
针对所述各文件类型的文件头中任一文件类型的文件头,若确定所述文件类型的文件头的固定字节中存在所述检测特征码中第一预设字节,则将所述第一预设字节转换为第一预设特征码;所述第一预设特征码用于构造所述文件类型的文件头对应的文件特征参数;所述第一预设特征码包括第二预设字节;
若确定所述文件类型的文件头的固定字节中存在所述第一预设特征码中的第二预设字节,则将所述第二预设字节转换为第二预设特征码;所述第二预设特征码用于构造所述文件类型的文件头对应的文件特征参数。
在一种可能的实现方式中,所述处理单元802具体用于:
针对所述文件特征参数库中每一文件特征参数,将所述待识别文件的文件头与所述文件特征参数进行匹配,在确定所述文件特征参数中存在第一预设字节时,获取所述文件特征参数中位于所述第一预设字节之后的字节数m,并基于所述字节数m,使用所述待识别文件的文件头中位于所述m个字节之后的字节与所述文件特征参数中位于所述字节数m之后的字节进行匹配;所述m为大于等于1的整数;
在确定所述文件特征参数中存在第一预设特征码时,将所述第一预设特征码中的第二预设字节转换为所述第一预设字节,并使用所述第一预设字节与所述待识别文件的文件头对应的字节进行匹配;
在确定所述文件特征参数中存在第二预设特征码时,使用所述第二预设特征码中的第二预设字节与所述待识别文件的文件头对应的字节进行匹配。
基于同样的技术构思,本申请实施例提供一种计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行识别文件类型的方法的步骤。
基于同样的技术构思,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行识别文件类型的方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (4)
1.一种识别文件类型的方法,其特征在于,包括:
获取待识别文件的文件头;
基于预设的匹配规则,确定文件特征参数库中是否存在与所述待识别文件的文件头匹配的文件特征参数;
若是,则确定出所述待识别文件的文件类型;
所述获取待识别文件的文件头,包括:对所述待识别文件进行切分处理,得到所述待识别文件的文件头;
根据下述步骤确定所述文件特征参数库, 获取各文件类型的样本文件;
对所述各文件类型的样本文件进行切分处理,得到所述各文件类型的文件头;
基于预设的文件特征参数转换规则,将所述各文件类型的文件头转换为所述各文件类型的文件头对应的文件特征参数;
将所述文件特征参数、所述文件特征参数对应的文件类型存储在所述文件特征参数库中;
所述文件头包括固定字节和非固定字节;
所述基于预设的文件特征参数转换规则,将所述各文件类型的文件头转换为所述各文件类型的文件头对应的文件特征参数,包括:针对所述各文件类型的文件头中任一文件类型的文件头,确定位于所述文件类型的文件头的固定字节之前是否存在非固定字节;
若是,则将所述非固定字节转换为对应的检测特征码,并将所述检测特征码和所述文件类型的文件头的固定字节确定为所述文件类型的文件头对应的文件特征参数,否则将所述文件类型的文件头的固定字节确定为所述文件类型的文件头对应的文件特征参数;
所述方法还包括:针对所述各文件类型的文件头中任一文件类型的文件头,若确定所述文件类型的文件头的固定字节中存在所述检测特征码中第一预设字节,则将所述第一预设字节转换为第一预设特征码;所述第一预设特征码用于构造所述文件类型的文件头对应的文件特征参数;
所述第一预设特征码包括第二预设字节;
若确定所述文件类型的文件头的固定字节中存在所述第一预设特征码中的第二预设字节,则将所述第二预设字节转换为第二预设特征码;所述第二预设特征码用于构造所述文件类型的文件头对应的文件特征参数;
所述基于预设的匹配规则,确定文件特征参数库中是否存在与所述待识别文件的文件头匹配的文件特征参数,包括:针对所述文件特征参数库中每一文件特征参数,将所述待识别文件的文件头与所述文件特征参数进行匹配,在确定所述文件特征参数中存在第一预设字节时,获取所述文件特征参数中位于所述第一预设字节之后的字节数m,并基于所述字节数m,使用所述待识别文件的文件头中位于所述m个字节之后的字节与所述文件特征参数中位于所述字节数m之后的字节进行匹配;所述m为大于等于1的整数;
在确定所述文件特征参数中存在第一预设特征码时,将所述第一预设特征码中的第二预设字节转换为所述第一预设字节,并使用所述第一预设字节与所述待识别文件的文件头对应的字节进行匹配;
在确定所述文件特征参数中存在第二预设特征码时,使用所述第二预设特征码中的第二预设字节与所述待识别文件的文件头对应的字节进行匹配。
2.一种识别文件类型的装置,其特征在于,包括:
获取单元,用于获取待识别文件的文件头;
处理单元,用于基于预设的匹配规则,确定文件特征参数库中是否存在与所述待识别文件的文件头匹配的文件特征参数;若是,则确定出所述待识别文件的文件类型;
所述处理单元具体用于:对所述待识别文件进行切分处理,得到所述待识别文件的文件头;
以及获取各文件类型的样本文件;
对所述各文件类型的样本文件进行切分处理,得到所述各文件类型的文件头;
基于预设的文件特征参数转换规则,将所述各文件类型的文件头转换为所述各文件类型的文件头对应的文件特征参数;
将所述文件特征参数、所述文件特征参数对应的文件类型存储在所述文件特征参数库中;
所述文件头包括固定字节和非固定字节;
所述基于预设的文件特征参数转换规则,将所述各文件类型的文件头转换为所述各文件类型的文件头对应的文件特征参数,包括:针对所述各文件类型的文件头中任一文件类型的文件头,确定位于所述文件类型的文件头的固定字节之前是否存在非固定字节;
若是,则将所述非固定字节转换为对应的检测特征码,并将所述检测特征码和所述文件类型的文件头的固定字节确定为所述文件类型的文件头对应的文件特征参数,否则将所述文件类型的文件头的固定字节确定为所述文件类型的文件头对应的文件特征参数;
所述装置 还包括:针对所述各文件类型的文件头中任一文件类型的文件头,若确定所述文件类型的文件头的固定字节中存在所述检测特征码中第一预设字节,则将所述第一预设字节转换为第一预设特征码;所述第一预设特征码用于构造所述文件类型的文件头对应的文件特征参数;
所述第一预设特征码包括第二预设字节;
若确定所述文件类型的文件头的固定字节中存在所述第一预设特征码中的第二预设字节,则将所述第二预设字节转换为第二预设特征码;所述第二预设特征码用于构造所述文件类型的文件头对应的文件特征参数;
所述基于预设的匹配规则,确定文件特征参数库中是否存在与所述待识别文件的文件头匹配的文件特征参数,包括:针对所述文件特征参数库中每一文件特征参数,将所述待识别文件的文件头与所述文件特征参数进行匹配,在确定所述文件特征参数中存在第一预设字节时,获取所述文件特征参数中位于所述第一预设字节之后的字节数m,并基于所述字节数m,使用所述待识别文件的文件头中位于所述m个字节之后的字节与所述文件特征参数中位于所述字节数m之后的字节进行匹配;所述m为大于等于1的整数;
在确定所述文件特征参数中存在第一预设特征码时,将所述第一预设特征码中的第二预设字节转换为所述第一预设字节,并使用所述第一预设字节与所述待识别文件的文件头对应的字节进行匹配;
在确定所述文件特征参数中存在第二预设特征码时,使用所述第二预设特征码中的第二预设字节与所述待识别文件的文件头对应的字节进行匹配。
3.一种计算设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行权利要求1所述的方法。
4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011120206.XA CN112256635B (zh) | 2020-10-19 | 2020-10-19 | 一种识别文件类型的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011120206.XA CN112256635B (zh) | 2020-10-19 | 2020-10-19 | 一种识别文件类型的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256635A CN112256635A (zh) | 2021-01-22 |
CN112256635B true CN112256635B (zh) | 2022-06-17 |
Family
ID=74244961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011120206.XA Active CN112256635B (zh) | 2020-10-19 | 2020-10-19 | 一种识别文件类型的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256635B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281782A (zh) * | 2021-12-08 | 2022-04-05 | 奇安信科技集团股份有限公司 | 文件类型的识别方法、装置及电子设备 |
CN114710482A (zh) * | 2022-03-23 | 2022-07-05 | 马上消费金融股份有限公司 | 文件检测方法、装置、电子设备及存储介质 |
CN115577330A (zh) * | 2022-12-07 | 2023-01-06 | 北京志翔科技股份有限公司 | 文件类型识别方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162509A (zh) * | 2019-04-26 | 2019-08-23 | 平安普惠企业管理有限公司 | 文件比对方法、装置、计算机设备及存储介质 |
CN110851590A (zh) * | 2019-09-11 | 2020-02-28 | 上海爱数信息技术股份有限公司 | 一种通过敏感词检测与非法内容识别进行文本分类的方法 |
CN111159709A (zh) * | 2019-12-27 | 2020-05-15 | 深信服科技股份有限公司 | 一种文件类型识别方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9280600B2 (en) * | 2012-03-20 | 2016-03-08 | Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. | Method and system for decompression-free inspection of shared dictionary compressed traffic over HTTP |
-
2020
- 2020-10-19 CN CN202011120206.XA patent/CN112256635B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162509A (zh) * | 2019-04-26 | 2019-08-23 | 平安普惠企业管理有限公司 | 文件比对方法、装置、计算机设备及存储介质 |
CN110851590A (zh) * | 2019-09-11 | 2020-02-28 | 上海爱数信息技术股份有限公司 | 一种通过敏感词检测与非法内容识别进行文本分类的方法 |
CN111159709A (zh) * | 2019-12-27 | 2020-05-15 | 深信服科技股份有限公司 | 一种文件类型识别方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112256635A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112256635B (zh) | 一种识别文件类型的方法及装置 | |
JP6729553B2 (ja) | システム、画像認識方法、および、プログラム | |
CN105630656A (zh) | 基于日志模型的系统健壮性分析方法及装置 | |
US9712389B2 (en) | Method, apparatus, and program for the discovery of resources in a computing environment | |
US20200183805A1 (en) | Log analysis method, system, and program | |
CN113627168A (zh) | 一种元器件封装冲突的检查方法、装置、介质及设备 | |
CN111133396B (zh) | 生产设备监视装置、生产设备监视方法以及记录介质 | |
CN107423171A (zh) | 基于pcie标准的插槽式功能扩展卡的检测方法及装置 | |
US20200042422A1 (en) | Log analysis method, system, and storage medium | |
CN111711540A (zh) | 政企业务告警识别方法和装置 | |
US20220405184A1 (en) | Method, electronic device, and computer program product for data processing | |
CN117435480A (zh) | 一种二进制文件检测方法、装置、电子设备及存储介质 | |
US20100153421A1 (en) | Device and method for detecting packed pe file | |
JP6121828B2 (ja) | 静的解析装置、静的解析方法、および、コンピュータ・プログラム | |
CN113517998B (zh) | 预警配置数据的处理方法、装置、设备及存储介质 | |
CN109560964B (zh) | 一种设备合规检查方法及装置 | |
JP6571027B2 (ja) | データ格納装置及びデータ格納プログラム | |
CN115269288A (zh) | 故障确定方法、装置、设备和存储介质 | |
CN109947429B (zh) | 数据处理方法及装置 | |
CN112990466A (zh) | 一种冗余规则检测方法、装置以及服务器 | |
CN111580856A (zh) | 针对mips架构的物联网设备组件版本信息提取方法 | |
US10394523B2 (en) | Method and system for extracting rule specific data from a computer word | |
CN114707911B (zh) | 一种结合云计算的跨境电商信息风险分析方法及服务器 | |
CN113553587B (zh) | 一种文件检测方法、装置、设备及可读存储介质 | |
CN116450250B (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 |