PE文件的处理方法及装置与流程

文档序号:12272063阅读:438来源:国知局
本发明涉及信息安全
技术领域
:,尤其涉及一种PE文件的处理方法及装置。
背景技术
::PE(PortableExecute,可移植的执行体)文件是微软Windows操作系统上的程序文件,常见的PE文件有EXE、DLL、OCX、SYS、COM等格式的文件,此外,PE文件也可以是间接被执行的文件,如DLL格式的文件。目前对PE类恶意文档的检测,需要将PE文件进行分类聚类,即将具有相同恶意程序特征的PE文件划分到一起,将不具有恶意程序特征的PE文件划分到一起。目前,主要是基于PE头的特征提取,以及类似PE文件图标的,基于机器学习的聚类。但是,现有实现PE文件的聚类方法,准确率比较低,进而无法有效地实现PE类的恶意文档的检测。技术实现要素:鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的PE文件的处理方法及装置。本发明的一个方面,提供了一种PE文件的处理方法,包括:对PE文件进行反汇编处理,得到所述PE文件的函数哈希;加载样本库,根据所述样本库中样本的函数哈希对所述PE文件的函数哈希进行相似度匹配;根据函数哈希相似度匹配结果,对所述PE文件进行聚类。可选地,所述对PE文件进行反汇编处理,得到所述PE文件的函数哈希,包括:对PE文件进行反汇编处理,得到所述PE文件的函数结点,根据所述函数结点将所述PE文件分为若干个函数哈希。可选地,所述根据函数哈希相似度匹配结果,对所述PE文件进行聚类,包括:计算PE文件的函数哈希与函数样本的函数哈希之间的相似度;判断所述函数哈希相似度是否高于第一预定阈值;若所述函数哈希相似度高于所述第一预定阈值,将所述PE文件与所述样本聚为一类。可选地,该方法还包括:若所述函数哈希相似度低于或等于所述第一预定阈值,则对PE文件进行反汇编处理,得到所述PE文件的汇编代码;根据所述样本库中的样本的汇编代码对所述PE文件的汇编代码进行相似度匹配;根据汇编代码相似度匹配结果,对所述PE文件进行聚类。可选地,在所述对PE文件进行反汇编处理,得到所述PE文件的汇编代码之后,包括:对所述PE文件的汇编代码进行去随机化处理。可选地,所述根据汇编代码相似度匹配结果,对所述PE文件进行聚类,具体包括:计算PE文件的汇编代码与样本的汇编代码之间的相似度;判断所述汇编代码相似度是否高于第二预定阈值;若所述汇编代码相似度高于所述第二预定阈值,则将所述PE文件与所述样本聚为一类。可选地,该方法还包括:若所述汇编代码相似度低于或等于所述第二预定阈值,则对PE文件进行反汇编处理,得到所述PE文件的伪C代码;根据所述样本库中的样本的伪C代码对所述PE文件的伪C代码进行相似度匹配;根据伪C代码相似度匹配结果,对所述PE文件进行聚类。可选地,在所述对PE文件进行反汇编处理,得到所述PE文件的伪C代码之后,包括:对所述PE文件的伪C代码进行去随机化处理。可选地,该方法还包括:根据聚类结果进行恶意文档的检测。可选地,该方法还包括:选取根据函数哈希相似度、汇编代码相似度和伪C代码相似度未进行聚类的PE文件;根据所述未进行聚类的PE文件建立新的样本。本发明的另一个方面,提供了一种PE文件的处理装置,包括:处理模块,用于对PE文件进行反汇编处理,得到所述PE文件的函数哈希;匹配模块,用于加载样本库,根据所述样本库中样本的函数哈希对所述处理模块得到的PE文件的函数哈希进行相似度匹配;聚类模块,用于根据所述匹配模块得到的函数哈希相似度匹配结果,对所述PE文件进行聚类。可选地,所述处理模块,具体用于对PE文件进行反汇编处理,得到所述PE文件的函数结点,根据所述函数结点将所述PE文件分为若干个函数哈希。可选地,所述聚类模块,包括:第一计算单元,用于计算PE文件的函数哈希与函数样本的函数哈希之间的相似度;第一判断单元,用于判断所述函数哈希相似度是否高于第一预定阈值;第一聚类单元,用于当所述第一判断单元的判断结果为所述函数哈希相似度高于所述第一预定阈值时,将所述PE文件与所述样本聚为一类。可选地,所述处理模块,还用于当所述第一判断单元的判断结果为所述函数哈希相似度小于或等于所述第一预定阈值时,对PE文件进行反汇编处理,得到所述PE文件的汇编代码;所述匹配模块,还用于根据所述样本库中的样本的汇编代码样本对所述PE文件的汇编代码进行相似度匹配;所述聚类模块,还用于根据汇编代码相似度匹配结果,对所述PE文件进行聚类。可选地,所述处理模块,还用于在对PE文件进行反汇编处理,得到所述PE文件的汇编代码之后,对所述PE文件的汇编代码进行去随机化处理。可选地,所述聚类模块,还包括:第二计算单元,用于计算PE文件的汇编代码与样本的汇编代码之间的相似度;第二判断单元,用于判断所述汇编代码相似度是否高于第二预定阈值;第二聚类单元,用于当所述第二判断单元的判断结果为所述汇编代码相似度高于所述第二预定阈值时,将所述PE文件与所述样本聚为一类。可选地,所述处理模块,还用于当所述第二判断单元的判断结果为所述汇编代码相似度小于或等于所述第二预定阈值时,对PE文件进行反汇编处理,得到所述PE文件的伪C代码;所述匹配模块,还用于根据所述样本库中的样本的伪C代码对所述PE文件的伪C代码进行相似度匹配;所述聚类模块,还用于根据伪C代码相似度匹配结果,对所述PE文件进行聚类。可选地,所述处理模块,还用于在对PE文件进行反汇编处理,得到所述PE文件的伪C代码之后,对所述PE文件的伪C代码进行去随机化处理。可选地,该装置还包括:检测模块,用于根据聚类结果进行恶意文档的检测。可选地,该装置还包括:配置模块,用于选取根据函数哈希相似度、汇编代码相似度和伪C代码相似度未进行聚类的PE文件;根据所述未进行聚类的PE文件建立新的样本。本发明实施例提供的PE文件的处理方法及装置,通过根据样本库中样本的函数哈希对PE文件的函数哈希进行相似度匹配的匹配结果,对PE文件进行聚类,实现基于PE文件的函数哈希的聚类处理,提高了PE文件的聚类准确率,进而能够有效地实现PE类的恶意文档的检测。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本发明一个实施例的一种PE文件的处理方法的流程图;图2示出了根据本发明另一实施例的一种PE文件的处理方法的流程图;图3示出了根据本发明另一实施例的一种PE文件的处理方法的流程图;图4示出了根据本发明另一实施例的一种PE文件的处理方法的流程图;图5示出了根据本发明另一实施例的一种PE文件的处理方法的流程图;图6示出了根据本发明另一实施例的一种PE文件的处理方法的流程图;图7示出了根据本发明一个实施例的一种PE文件的处理装置的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本
技术领域
:技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。本
技术领域
:技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。图1示意性示出了本发明一个实施例的PE文件的处理方法的流程图。参照图1,本发明实施例的PE文件的处理方法具体包括以下步骤:步骤S11、对PE文件进行反汇编处理,得到所述PE文件的函数哈希。PE(PortableExecutableFileFormat,可移植的执行体文件格式),使用该格式的目标是使链接生成的EXE文件能在不同的CPU工作指令下工作。可执行文件的格式是操作系统工作方法的真实写照。Windows操作系统中可执行程序有多种,比如COM、PIF、SCR、EXE等,这些文件的格式大部分都继承自PE。其中,EXE是最常见的PE文件,动态链接库(大部分以dll为扩展名的文件)也是PE文件。本公开实施例中,PE文件包括但不限于EXE、DLL、OCX、SYS、COM等格式的文件。本公开实施例中采用的反汇编方法可以为相关技术中常用的反汇编技术,例如IDA(InteractiveDisassembler,交互式反汇编)等,对此,本发明不作具体限定。在实际应用中,用户使用一些应用需要访问的可执行程序文件,都是由一组函数组成的,这些函数在文件中连续分布,每个函数是一段指令数据,程序运行过程就是执行这些函数指令的过程。因此,本实施例通过PE文件的函数哈希对PE文件进行聚类。步骤S12、加载样本库,根据所述样本库中样本的函数哈希对所述PE文件的函数哈希进行相似度匹配。本公开实施例中,样本库中存储有多个恶意PE文件家族的典型样本,以及各个样本对应的函数哈希。具体的,通过计算样本库中样本的函数哈希与所述PE文件的函数哈希的相似度,实现基于函数哈希的相似度匹配。步骤S13、根据函数哈希相似度匹配结果,对所述PE文件进行聚类。本公开实施例中,在加载样本库,并根据所述样本库中样本的对所述PE文件的函数哈希进行相似度匹配之后,通过根据样本库中样本的对上述待处理PE文件的函数哈希的相似度匹配结果,将恶意PE文件筛选出来,并将其归类到相应的恶意PE文件家族,实现对待处理PE文件的聚类。本发明实施例提供的PE文件的处理方法,通过对PE文件进行反汇编处理,得到PE文件的函数哈希,并根据样本库中样本的函数哈希对PE文件的函数哈希进行相似度匹配的匹配结果,对PE文件进行聚类,实现基于PE文件的函数哈希的聚类处理,提高了PE文件的聚类准确率,进而能够有效地实现PE类的恶意文档的检测。为了进一步体现发明的优越性,如下进一步揭示本发明PE文件的处理方法的另一实施例。参照图2,本发明实施例的PE文件的处理方法具体包括以下步骤:步骤S21、对PE文件进行反汇编处理,得到所述PE文件的函数结点,根据所述函数结点将所述PE文件分为若干个函数哈希。本发明实施例中,通过IDA反汇编技术对PE文件进行反汇编处理,并在反汇编完成后,根据得到的函数结点将PE文件分为若干个函数段。进一步,对PE文件进行的反汇编处理通常分为:对分支调用进行反汇编和对导入表、导出表的内容进行反汇编,作为本发明的一种实施方式,反汇编采用的算法可以为递归算法。其中,对分支调用进行反汇编的具体过程为:从所述PE文件的函数入口开始,判断函数是否为调用指令或者跳转指令;若是调用指令或者跳转指令,则根据所述调用指令或者跳转指令进行相应的函数调用或者跳转,若所述函数不是调用指令或者跳转指令,则进一步判断所述函数是否为跳转表;若所述函数是跳转表,则根据跳转表的内容进行相应的跳转,若所述函数也不是跳转表,则对所述函数依次进行顺序反汇编。在根据调用指令或者跳转指令或者跳转表转到相应的函数后,从此函数入口开始,重复上述步骤,直至完成所有的分支的反汇编处理。对于另外的一种情况,对导入表、导出表的内容进行反汇编时,直接将导入表和导出表的内容解析并反汇编为函数或者数据。进一步的,为避免由于误操作等引起的文件损坏,本实施例的方法中,每一PE文件均对应有PE文件副本,用于备份。步骤S22、加载样本库,根据所述样本库中样本的函数哈希对所述PE文件的函数哈希进行相似度匹配;步骤S23、根据函数哈希相似度匹配结果,对所述PE文件进行聚类。其中,步骤S22~S23与图1所示的实施方式的步骤S12~S13相同,在此不再赘述。本发明实施例提供的PE文件的处理方法中,通过对PE文件进行反汇编处理,得到PE文件的函数结点,根据函数结点将PE文件分为若干个函数哈希,能够快速、准确地得到PE文件的函数哈希,并根据样本库中样本的函数哈希对PE文件的函数哈希进行相似度匹配的匹配结果,对PE文件进行聚类,进而快速、准确地实现基于PE文件的函数哈希的聚类处理,提高了PE文件的聚类准确率,有效地实现PE类的恶意文档的检测。为了进一步体现发明的优越性,如下进一步揭示本发明PE文件的处理方法的另一实施例。参照图3,本发明实施例的PE文件的处理方法中,所述步骤S13根据函数哈希相似度匹配结果,对所述PE文件进行聚类,具体包括以下步骤:步骤S131、计算PE文件的函数哈希与函数样本的函数哈希之间的相似度;步骤S132、判断所述函数哈希相似度是否高于第一预定阈值,若所述函数哈希相似度高于所述第一预定阈值,则执行步骤S133,否则,结束;步骤S133、将所述PE文件与所述样本聚为一类。在此可以通过实际的样本筛选准确度需求设置第一预定阈值,并可以进一步根据不同的需求对所述第一预定阈值进行调整。当PE文件的函数哈希与函数样本的函数哈希之间的相似度高于设置的第一预定阈值,则可以直接将所述PE文件与所述样本聚为一类。本发明实施例中,通过计算PE文件的函数哈希与函数样本的函数哈希之间的相似度,根据该函数哈希相似度,当该函数哈希相似度高于第一预定阈值,则将所述PE文件与上述样本聚为一类,实现基于函数哈希相似度匹配结果的PE文件的聚类,解决了现有技术聚类准确率比较低的问题,提高了PE文件的聚类准确率。在本发明的一个可选实施例中,如图4所示,若所述函数哈希相似度低于或等于所述第一预定阈值,则该方法还包括步骤S14~步骤S16,其中:步骤S14、对PE文件进行反汇编处理,得到所述PE文件的汇编代码。本公开实施例中采用的反汇编方法可以为相关技术中常用的反汇编技术,例如IDA(InteractiveDisassembler,交互式反汇编)等,对此,本发明不作具体限定。在实际应用中,用户使用一些应用需要访问的可执行程序文件,都是由汇编代码组成的。因此,本实施例通过PE文件的汇编代码对PE文件进行聚类。步骤S15、根据所述样本库中的样本的汇编代码对所述PE文件的汇编代码进行相似度匹配。本公开实施例中,样本库中除了存储有多个恶意PE文件家族的典型样本以及各个样本对应的函数哈希,还存储有各个样本对应的汇编代码。具体的,对于某些PE文件,可能存在虽然函数哈希与样本库中的样本的差别较大,但是汇编代码确是非常相似的情况,例如,仅仅是修改了PE文件的几条汇编代码而导致PE文件的函数哈希差别较大。为了避免上述情况,本发明实施例在函数哈希相似度低于或等于所述第一预定阈值时,还包括通过计算样本库中样本的汇编代码与所述PE文件的汇编代码的相似度,实现基于汇编代码的相似度匹配。步骤S16、根据汇编代码相似度匹配结果,对所述PE文件进行聚类。本公开实施例中,在实现基于PE文件的函数哈希的聚类处理之后,进一步包括根据样本库中样本的汇编代码与所述PE文件的汇编代码的相似度匹配结果,对所述PE文件进行聚类,根据函数哈希和汇编代码两个特征维度去往专家样本上归类,进一步提高了PE文件的聚类准确率。在一个可选实施例中,在所述对PE文件进行反汇编处理,得到所述PE文件的汇编代码之后,还包括以下步骤:对所述PE文件的汇编代码进行去随机化处理。为了得到准确的汇编代码结构原型,避免反汇编处理过程中由于反汇编工具的差异,如工具版本的不同,导致汇编代码中某些部分发生微小差异,例如,汇编代码中的变量和地址等,本发明实施例中进一步在对PE文件进行反汇编处理,得到所述PE文件的汇编代码之后,对PE文件的汇编代码进行去随机化处理。为了进一步体现发明的优越性,如下进一步揭示本发明PE文件的处理方法的另一实施例。参照图5,本发明实施例的PE文件的处理方法中,所述步骤S16根据汇编代码相似度匹配结果,对所述PE文件进行聚类,具体包括以下步骤:步骤S161、计算PE文件的汇编代码与样本的汇编代码之间的相似度;步骤S162、判断所述汇编代码相似度是否高于第二预定阈值;若所述汇编代码相似度高于所述第二预定阈值,则执行步骤S163,否则,结束;步骤S163、将所述PE文件与所述样本聚为一类。同样的,可以通过实际的样本筛选准确度需求设置第二预定阈值,并可以进一步根据不同的需求对所述第二预定阈值进行调整。当PE文件的汇编代码与样本的汇编代码之间的相似度高于设置的第二预定阈值,则可以直接将所述PE文件与对应的上述样本库中的样本聚为一类。本发明实施例中,通过计算PE文件的汇编代码与样本的汇编代码之间的相似度,根据该汇编代码相似度,当该汇编代码相似度高于第二预定阈值,则将所述PE文件与上述样本聚为一类,实现基于汇编代码相似度匹配结果的PE文件的聚类,解决了现有技术聚类准确率比较低的问题,提高了PE文件的聚类准确率。在本发明的一个可选实施例中,如图6所示,若所述汇编代码相似度低于或等于所述第二预定阈值,则该方法还包括步骤S17~步骤S19,其中:步骤S17、对PE文件进行反汇编处理,得到所述PE文件的伪C代码。本公开实施例中采用的反汇编方法可以为相关技术中常用的反汇编技术,例如IDA(InteractiveDisassembler,交互式反汇编)等,对此,本发明不作具体限定。在实际应用中,用户使用一些应用需要访问的可执行程序文件,都可以反汇编程一系列伪C代码。因此,本实施例通过PE文件的伪C代码对PE文件进行聚类。步骤S18、根据所述样本库中的样本的伪C代码对所述PE文件的伪C代码进行相似度匹配。本公开实施例中,样本库中除了存储有多个恶意PE文件家族的典型样本以及各个样本对应的函数哈希和汇编代码,还存储有各个样本对应的伪C代码。为了避免虽然PE文件的函数哈希和汇编代码与样本库中的样本差别较大,但是伪C代码确是非常相似的情况,本发明实施例在函数哈希相似度低于或等于所述第一预定阈值,以及汇编代码相似度低于或等于所述第二预定阈值时,还包括通过计算样本库中样本的伪C代码与所述PE文件的伪C代码的相似度,实现基于伪C代码的相似度匹配。步骤S19、根据伪C代码相似度匹配结果,对所述PE文件进行聚类。为了进一步提高PE文件聚类的准确率,本实施例中,在实现基于PE文件的函数哈希和汇编代码的聚类处理之后,进一步包括根据样本库中样本的伪C代码与所述PE文件的伪C代码的相似度匹配结果,对所述PE文件进行聚类处理的步骤。本发明实施例,通过IDA反汇编技术对PE文件进行反汇编处理,提取PE文件的函数特征,包括函数级别的函数哈希、汇编代码以及伪C代码。对不同的样本之间通过这三个特征维度去判断相似性,并预先设置样本库,在样本库中存储一些专家样本,后续只要根据三个特征维度去往专家样本上归类,即可的快速、准确地实现PE文件的聚类。在一个可选实施例中,在所述对PE文件进行反汇编处理,得到所述PE文件的伪C代码之后,还包括以下步骤:对所述PE文件的伪C代码进行去随机化处理。为了得到准确的伪C代码结构原型,避免反汇编处理过程中由于反汇编工具的差异,如工具版本的不同,导致伪C代码中某些部分发生微小差异,例如,伪C代码中的变量和地址等,本发明实施例中进一步在对PE文件进行反汇编处理,得到所述PE文件的伪C代码之后,对PE文件的伪C代码进行去随机化处理。进一步地,本发明实施例的PE文件的处理方法中,所述步骤S19根据伪C代码相似度匹配结果,对所述PE文件进行聚类,具体包括以下附图中未示出的步骤:步骤S191、计算PE文件的伪C代码与样本的伪C代码之间的相似度;步骤S192、判断所述伪C代码相似度是否高于第三预定阈值;若所述伪C代码相似度高于所述第三预定阈值,则执行步骤S193,否则,结束;步骤S193、将所述PE文件与所述样本聚为一类。同样的,可以通过实际的样本筛选准确度需求设置第三预定阈值,并可以进一步根据不同的需求对所述第三预定阈值进行调整。当PE文件的伪C代码与样本的伪C代码之间的相似度高于设置的第三预定阈值,则可以直接将所述PE文件与对应的上述样本库中的样本聚为一类。本发明实施例中,通过计算PE文件的伪C代码与样本的伪C代码之间的相似度,根据该伪C代码相似度,当该伪C代码相似度高于第三预定阈值,则将所述PE文件与上述样本聚为一类,实现基于伪C代码相似度匹配结果的PE文件的聚类,解决了现有技术聚类准确率比较低的问题,提高了PE文件的聚类准确率。在本发明的一个可选实施例中,该方法还包括:根据聚类结果进行恶意文档的检测。本发明实施例中,通过上述任一实施例得到PE文件的聚类结果后,可根据聚类后得到的样本文件确定恶意文档的特征,根据确定出的特征进行恶意文档的检测,进而实现根据聚类结果的恶意文档检测,提高PE类的恶意文档检测的准确率。在本发明的一个可选实施例中,该方法还包括:选取根据函数哈希相似度、汇编代码相似度和伪C代码相似度未进行聚类的PE文件;根据所述未进行聚类的PE文件建立新的样本。本实施例中,将没有根据函数哈希相似度、汇编代码相似度和伪C代码相似度进行聚类的PE文件构成新的样本,作为备份,以便后续使用。对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。图7示意性示出了本发明一个实施例的PE文件的处理装置的结构示意图。参照图7,本发明实施例的PE文件的处理装置具体包括处理模块701、匹配模块702以及聚类模块703,其中:处理模块701,用于对PE文件进行反汇编处理,得到所述PE文件的函数哈希;匹配模块702,用于加载样本库,根据所述样本库中样本的函数哈希对所述处理模块得到的PE文件的函数哈希进行相似度匹配;聚类模块703,用于根据所述匹配模块得到的函数哈希相似度匹配结果,对所述PE文件进行聚类。PE(PortableExecuteableFileFormat,可移植的执行体文件格式),使用该格式的目标是使链接生成的EXE文件能在不同的CPU工作指令下工作。可执行文件的格式是操作系统工作方法的真实写照。Windows操作系统中可执行程序有多种,比如COM、PIF、SCR、EXE等,这些文件的格式大部分都继承自PE。其中,EXE是最常见的PE文件,动态链接库(大部分以dll为扩展名的文件)也是PE文件。本公开实施例中,PE文件包括但不限于EXE、DLL、OCX、SYS、COM等格式的文件。本公开实施例中采用的反汇编方法可以为相关技术中常用的反汇编技术,例如IDA(InteractiveDisassembler,交互式反汇编)等,对此,本发明不作具体限定。本发明实施例提供的PE文件的处理装置,通过处理模块701对PE文件进行反汇编处理,得到PE文件的函数哈希,聚类模块703根据样本库中样本的函数哈希对PE文件的函数哈希进行相似度匹配的匹配结果,对PE文件进行聚类,实现基于PE文件的函数哈希的聚类处理,提高了PE文件的聚类准确率,进而能够有效地实现PE类的恶意文档的检测。在本发明一个可选实施例中,所述处理模块701,具体用于对PE文件进行反汇编处理,得到所述PE文件的函数结点,根据所述函数结点将所述PE文件分为若干个函数哈希。在本发明一个可选实施例中,所述聚类模块703,具体包括第一计算单元、第一判断单元以及第一聚类单元,其中:第一计算单元,用于计算PE文件的函数哈希与函数样本的函数哈希之间的相似度;第一判断单元,用于判断所述函数哈希相似度是否高于第一预定阈值;第一聚类单元,用于当所述第一判断单元的判断结果为所述函数哈希相似度高于所述第一预定阈值时,将所述PE文件与所述样本聚为一类。在本发明一个可选实施例中,在上述实施例的基础上,所述处理模块701,还用于当所述第一判断单元的判断结果为所述函数哈希相似度小于或等于所述第一预定阈值时,对PE文件进行反汇编处理,得到所述PE文件的汇编代码;所述匹配模块702,还用于根据所述样本库中的样本的汇编代码样本对所述PE文件的汇编代码进行相似度匹配;所述聚类模块703,还用于根据汇编代码相似度匹配结果,对所述PE文件进行聚类。本公开实施例中,在实现基于PE文件的函数哈希的聚类处理之后,进一步包括根据样本库中样本的汇编代码与所述PE文件的汇编代码的相似度匹配结果,对所述PE文件进行聚类,根据函数哈希和汇编代码两个特征维度去往专家样本上归类,进一步提高了PE文件的聚类准确率。进一步地,所述处理模块701,还用于在对PE文件进行反汇编处理,得到所述PE文件的汇编代码之后,对所述PE文件的汇编代码进行去随机化处理。为了得到准确的汇编代码结构原型,避免反汇编处理过程中由于反汇编工具的差异,如工具版本的不同,导致汇编代码中某些部分发生微小差异,例如,汇编代码中的变量和地址等,本发明实施例中,处理模块701进一步在对PE文件进行反汇编处理,得到所述PE文件的汇编代码之后,对PE文件的汇编代码进行去随机化处理。在本发明的一个可选实施例中,所述聚类模块703,还包括第二计算单元、第二判断单元以及第二聚类单元,其中:第二计算单元,用于计算PE文件的汇编代码与样本的汇编代码之间的相似度;第二判断单元,用于判断所述汇编代码相似度是否高于第二预定阈值;第二聚类单元,用于当所述第二判断单元的判断结果为所述汇编代码相似度高于所述第二预定阈值时,将所述PE文件与所述样本聚为一类。在本发明的一个可选实施例中,所述处理模块701,还用于当所述第二判断单元的判断结果为所述汇编代码相似度小于或等于所述第二预定阈值时,对PE文件进行反汇编处理,得到所述PE文件的伪C代码;所述匹配模块702,还用于根据所述样本库中的样本的伪C代码对所述PE文件的伪C代码进行相似度匹配;所述聚类模块703,还用于根据伪C代码相似度匹配结果,对所述PE文件进行聚类。为了进一步提高PE文件聚类的准确率,本实施例中,在实现基于PE文件的函数哈希和汇编代码的聚类处理之后,聚类模块703进一步包括根据样本库中样本的伪C代码与所述PE文件的伪C代码的相似度匹配结果,对所述PE文件进行聚类处理的步骤。本发明实施例,通过IDA反汇编技术对PE文件进行反汇编处理,提取PE文件的函数特征,包括函数级别的函数哈希、汇编代码以及伪C代码。对不同的样本之间通过这三个特征维度去判断相似性,并预先设置样本库,在样本库中存储一些专家样本,后续只要根据三个特征维度去往专家样本上归类,即可的快速、准确地实现PE文件的聚类。进一步地,所述处理模块701,还用于在对PE文件进行反汇编处理,得到所述PE文件的伪C代码之后,对所述PE文件的伪C代码进行去随机化处理。为了得到准确的伪C代码结构原型,避免反汇编处理过程中由于反汇编工具的差异,如工具版本的不同,导致伪C代码中某些部分发生微小差异,例如,伪C代码中的变量和地址等,本发明实施例中,处理模块701进一步在对PE文件进行反汇编处理,得到所述PE文件的伪C代码之后,对PE文件的伪C代码进行去随机化处理。在本发明的一个可选实施例中,该装置还包括附图中未示出的检测模块,该检测模块,用于根据聚类结果进行恶意文档的检测。本发明实施例中,通过上述任一实施例得到PE文件的聚类结果后,可根据聚类后得到的样本文件确定恶意文档的特征,根据确定出的特征进行恶意文档的检测,进而实现根据聚类结果的恶意文档检测,提高PE类的恶意文档检测的准确率。在本发明的一个可选实施例中,该装置还包括附图中未示出的配置模块,该配置模块,用于选取根据函数哈希相似度、汇编代码相似度和伪C代码相似度未进行聚类的PE文件;根据所述未进行聚类的PE文件建立新的样本。本实施例中,将没有根据函数哈希相似度、汇编代码相似度和伪C代码相似度进行聚类的PE文件构成新的样本,作为备份,以便后续使用。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。此外,本发明另一实施例还提供了一种终端设备,包括如上任一实施例所述的PE文件的处理装置。以如图7所示的PE文件的处理装置为例进行说明,所述终端设备中的PE文件的处理装置,具体包括处理模块701、匹配模块702以及聚类模块703,其中:处理模块701,用于对PE文件进行反汇编处理,得到所述PE文件的函数哈希;匹配模块702,用于加载样本库,根据所述样本库中样本的函数哈希对所述处理模块得到的PE文件的函数哈希进行相似度匹配;聚类模块703,用于根据所述匹配模块得到的函数哈希相似度匹配结果,对所述PE文件进行聚类。该终端设备由于包括上述任意一种实施例中的PE文件的处理装置,因而可以解决同样的技术问题,并取得相同的技术效果。本发明还提出如下技术方案:A1、一种PE文件的处理方法,包括:对PE文件进行反汇编处理,得到所述PE文件的函数哈希;加载样本库,根据所述样本库中样本的函数哈希对所述PE文件的函数哈希进行相似度匹配;根据函数哈希相似度匹配结果,对所述PE文件进行聚类。A2、根据A1所述的方法,所述对PE文件进行反汇编处理,得到所述PE文件的函数哈希,包括:对PE文件进行反汇编处理,得到所述PE文件的函数结点,根据所述函数结点将所述PE文件分为若干个函数哈希。A3、根据A1或A2所述的方法,所述根据函数哈希相似度匹配结果,对所述PE文件进行聚类,包括:计算PE文件的函数哈希与函数样本的函数哈希之间的相似度;判断所述函数哈希相似度是否高于第一预定阈值;若所述函数哈希相似度高于所述第一预定阈值,将所述PE文件与所述样本聚为一类。A4、根据A3所述的方法,该方法还包括:若所述函数哈希相似度低于或等于所述第一预定阈值,则对PE文件进行反汇编处理,得到所述PE文件的汇编代码;根据所述样本库中的样本的汇编代码对所述PE文件的汇编代码进行相似度匹配;根据汇编代码相似度匹配结果,对所述PE文件进行聚类。A5、根据A4所述的方法,在所述对PE文件进行反汇编处理,得到所述PE文件的汇编代码之后,包括:对所述PE文件的汇编代码进行去随机化处理。A6、根据A1-A4任一项所述的方法,所述根据汇编代码相似度匹配结果,对所述PE文件进行聚类,具体包括:计算PE文件的汇编代码与样本的汇编代码之间的相似度;判断所述汇编代码相似度是否高于第二预定阈值;若所述汇编代码相似度高于所述第二预定阈值,则将所述PE文件与所述样本聚为一类。A7、根据A6所述的方法,该方法还包括:若所述汇编代码相似度低于或等于所述第二预定阈值,则对PE文件进行反汇编处理,得到所述PE文件的伪C代码;根据所述样本库中的样本的伪C代码对所述PE文件的伪C代码进行相似度匹配;根据伪C代码相似度匹配结果,对所述PE文件进行聚类。A8、根据A7所述的方法,在所述对PE文件进行反汇编处理,得到所述PE文件的伪C代码之后,包括:对所述PE文件的伪C代码进行去随机化处理。A9、根据A1-A8任一项所述的方法,该方法还包括:根据聚类结果进行恶意文档的检测。A10、根据A9所述的方法,该方法还包括:选取根据函数哈希相似度、汇编代码相似度和伪C代码相似度未进行聚类的PE文件;根据所述未进行聚类的PE文件建立新的样本。B11、一种PE文件的处理装置,包括:处理模块,用于对PE文件进行反汇编处理,得到所述PE文件的函数哈希;匹配模块,用于加载样本库,根据所述样本库中样本的函数哈希对所述处理模块得到的PE文件的函数哈希进行相似度匹配;聚类模块,用于根据所述匹配模块得到的函数哈希相似度匹配结果,对所述PE文件进行聚类。B12、根据B11所述的装置,所述处理模块,具体用于对PE文件进行反汇编处理,得到所述PE文件的函数结点,根据所述函数结点将所述PE文件分为若干个函数哈希。B13、根据B11或B12所述的装置,所述聚类模块,包括:第一计算单元,用于计算PE文件的函数哈希与函数样本的函数哈希之间的相似度;第一判断单元,用于判断所述函数哈希相似度是否高于第一预定阈值;第一聚类单元,用于当所述第一判断单元的判断结果为所述函数哈希相似度高于所述第一预定阈值时,将所述PE文件与所述样本聚为一类。B14、根据B13所述的装置,所述处理模块,还用于当所述第一判断单元的判断结果为所述函数哈希相似度小于或等于所述第一预定阈值时,对PE文件进行反汇编处理,得到所述PE文件的汇编代码;所述匹配模块,还用于根据所述样本库中的样本的汇编代码样本对所述PE文件的汇编代码进行相似度匹配;所述聚类模块,还用于根据汇编代码相似度匹配结果,对所述PE文件进行聚类。B15、根据B14所述的装置,所述处理模块,还用于在对PE文件进行反汇编处理,得到所述PE文件的汇编代码之后,对所述PE文件的汇编代码进行去随机化处理。B16、根据B11-B15任一项所述的装置,所述聚类模块,还包括:第二计算单元,用于计算PE文件的汇编代码与样本的汇编代码之间的相似度;第二判断单元,用于判断所述汇编代码相似度是否高于第二预定阈值;第二聚类单元,用于当所述第二判断单元的判断结果为所述汇编代码相似度高于所述第二预定阈值时,将所述PE文件与所述样本聚为一类。B17、根据B16所述的装置,所述处理模块,还用于当所述第二判断单元的判断结果为所述汇编代码相似度小于或等于所述第二预定阈值时,对PE文件进行反汇编处理,得到所述PE文件的伪C代码;所述匹配模块,还用于根据所述样本库中的样本的伪C代码对所述PE文件的伪C代码进行相似度匹配;所述聚类模块,还用于根据伪C代码相似度匹配结果,对所述PE文件进行聚类。B18、根据B17所述的装置,所述处理模块,还用于在对PE文件进行反汇编处理,得到所述PE文件的伪C代码之后,对所述PE文件的伪C代码进行去随机化处理。B19、根据B11-B18任一项所述的装置,该装置还包括:检测模块,用于根据聚类结果进行恶意文档的检测。B20、根据B19所述的装置,该装置还包括:配置模块,用于选取根据函数哈希相似度、汇编代码相似度和伪C代码相似度未进行聚类的PE文件;根据所述未进行聚类的PE文件建立新的样本。本发明实施例提供的PE文件的处理方法及装置,通过根据样本库中样本的函数哈希对PE文件的函数哈希进行相似度匹配的匹配结果,对PE文件进行聚类,实现基于PE文件的函数哈希的聚类处理,提高了PE文件的聚类准确率,进而能够有效地实现PE类的恶意文档的检测。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1