一种文件分类方法和装置制造方法

文档序号:6486759阅读:183来源:国知局
一种文件分类方法和装置制造方法【专利摘要】本发明公开了一种文件分类方法和装置:针对任一待分类的PE文件X,分别进行以下处理:确定是否存在作为类中心的PE文件,如果否,则将PE文件X作为其所属类别的类中心,并结束处理;如果是,则依次确定PE文件X与每个作为类中心的PE文件之间的相似度是否达到预定要求,一旦达到预定要求,则确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别,并结束处理。本发明所述方案具有较高的智能性,实现起来简单方便,且能够缩短所耗时间。【专利说明】一种文件分类方法和装置【
技术领域
】[0001]本发明涉及文件处理技术,特别涉及一种文件分类方法和装置。【
背景技术
】[0002]病毒文件通常都具有家族特性,即某个病毒文件经过一定的演化后,会繁衍出其变种的病毒文件,演化的目的可能是为了增加某种特性,也可能是针对某种杀毒软件进行的免杀处理等。[0003]上述“某个病毒文件”及其繁衍出来的病毒文件即组成一个病毒家族,或者说为同一类病毒。[0004]杀毒软件往往会以提取出来的某一病毒家族中的各病毒文件均具有的特征信息作为病毒文件的判断依据,从而使得病毒库中的一条记录信息能够命中该病毒家族中的所有病毒文件。[0005]因此,正确地对病毒文件进行分类,可有效地提高杀毒软件的查杀效率,并可减少病毒库的大小。[0006]现有技术中,通常采用人工分析的方式来对病毒文件进行分类,同时需要结合病毒文件的动态行为等特征信息,比如调用系统应用程序接口(API,ApplicationProgrammingInterface)的顺序、是否修改注册表以及是否在敏感位置创建文件等。[0007]但是,上述方式在实际应用中会存在一定的问题,如:[0008]I)由于需要人工进行分析,因此需要大量的人力资源,而且对病毒分析人员的经验要求也很高;[0009]2)由于需要获取病毒文件的动态行为等特征信息,因此需要动态地执行病毒文件,记录其行为特征,从而增加了很多时间消耗。[0010]综上可知,现有的对病毒文件进行分类的方式的智能性不高,实现起来不够简单方便,而且耗时较长。【
发明内容】[0011]有鉴于此,本发明提供了一种文件分类方法和装置,具有较高的智能性,实现起来简单方便,且能够缩短所耗时间。[0012]为达到上述目的,本发明的技术方案是这样实现的:[0013]一种文件分类方法,针对任一待分类的PE文件X,分别进行以下处理:[0014]确定是否存在作为类中心的PE文件,如果否,则将PE文件X作为其所属类别的类中心,并结束处理;[0015]如果是,则依次确定PE文件X与每个作为类中心的PE文件之间的相似度是否达到预定要求,一旦达到预定要求,则确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别,并结束处理。[0016]一种文件分类装置,包括:[0017]第一处理模块,用于针对任一待分类的PE文件X,分别进行如下处理:确定是否存在作为类中心的PE文件,如果否,则将PE文件X作为其所属类别的类中心,并结束处理,如果是,则通知第二处理模块执行功能;[0018]所述第二处理模块,用于依次确定PE文件X与每个作为类中心的PE文件之间的相似度是否达到预定要求,一旦达到预定要求,则确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别,并结束处理。[0019]可见,采用本发明所述方案,可通过比较相似度来实现对于不同PE文件的分类,无需人工进行分析,因此智能性较高,实现起来简单方便;而且,由于无需动态地执行PE文件,并记录其行为特征等,因此能够缩短所耗时间。【专利附图】【附图说明】[0020]图1为本发明文件分类方法实施例的流程图。[0021]图2为现有PE文件中所包含的信息示意图。[0022]图3为本发明从PE文件X中提取出的各信息的示意图。[0023]图4为本发明文件分类装置实施例的组成结构示意图。【具体实施方式】[0024]针对现有技术中存在的问题,本发明中提出一种改进后的文件分类方案。[0025]通常来说,病毒文件均为可移植的执行体(PE,PortableExecute)文件。本发明所述方案不仅可适用于病毒文件的分类,而且可适用于任意PE文件的分类。[0026]为使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。[0027]图1为本发明文件分类方法实施例的流程图。如图1所示,包括:[0028]步骤11:针对任一待分类的PE文件X,确定是否存在作为类中心的PE文件,如果否,则执行步骤12;如果是,则执行步骤13。[0029]步骤12:将PE文件X作为其所属类别的类中心,并结束流程。[0030]步骤13:依次确定PE文件X与每个作为类中心的PE文件之间的相似度是否达到预定要求,一旦达到预定要求,则执行步骤14;[0031]较佳地,如果PE文件X与每个作为类中心的PE文件之间的相似度均未达到预定要求,则执行步骤12。[0032]步骤14:确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别,并结束流程。[0033]图1所示过程中,如果PE文件X是第一个被分类的PE文件,那么将不会存在作为类中心的PE文件,这种情况下,可直接将PE文件X作为其所属类别的类中心,并结束流程;如果PE文件X不是第一个被分类的PE文件,那么将至少存在一个作为类中心的PE文件,这种情况下,可依次(具体按照何种顺序可根据实际需要而定)确定PE文件X与每个作为类中心的PE文件之间的相似度是否达到预定要求,一旦达到预定要求,则可确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别,并结束流程,如果PE文件X与每个作为类中心的PE文件之间的相似度均未达到预定要求,则可将PE文件X作为其所属类别的类中心,并结束流程。[0034]举例说明:假设存在三个作为类中心的PE文件,为便于表述,分别编号为PE文件1、PE文件2和PE文件3;首先,确定PE文件X与PE文件I之间的相似度是否达到预定要求,如果是,则确定PE文件X与PE文件I属于同一类别,并不再进行后续处理;如果否,则进一步确定PE文件X与PE文件2之间的相似度是否达到预定要求,如果是,则确定PE文件X与PE文件2属于同一类别,并不再进行后续处理;如果否,则进一步确定PE文件X与PE文件3之间的相似度是否达到预定要求,如果是,则确定PE文件X与PE文件3属于同一类别,并不再进行后续处理;如果否,则将PE文件X作为其所属类别的类中心。[0035]图2为现有PE文件中所包含的信息示意图。如图2所示,主要包括:导入表信息、导出表信息、字符串信息、反汇编指令信息以及冗余信息,各信息中包括的具体内容均为本领域公知。[0036]对于属于同一类别的各PE文件,如属于同一类别的各病毒文件,其之间的差别可能仅在于对某一或某几个信息进行了一定的修改,其它各信息仍是相同的,而即便是被修改的信息,相似度也是很高的,所述修改通常是针对导入表信息、导出表信息、字符串信息以及反汇编指令信息之中的一个或几个进行的。[0037]为此,本发明所述方案中,可采用以下方式来确定PE文件X与每个作为类中心的PE文件之间的相似度是否达到预定要求:[0038]I)提取出PE文件X中的导入表信息、导出表信息、字符串信息以及反汇编指令信息;[0039]2)依次针对每个作为类中心的PE文件Y,分别计算PE文件X的导入表信息与PE文件Y的导入表信息之间的相似度、PE文件X的导出表信息与PE文件Y的导出表信息之间的相似度、PE文件X的字符串信息与PE文件Y的字符串信息之间的相似度,以及PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度;[0040]如果计算出的四个相似度均大于各自对应的阈值,则确定PE文件X与PE文件Y之间的相似度达到预定要求。[0041]各阈值的具体取值可根据实际需要而定,另外,各阈值的取值可相同,也可不同。[0042]步骤I)中如何提取出各信息均为现有技术,所提取出的各信息的个数均可能为一个或多个,而且,所提取出的各信息的个数可能相同,也可能不同。[0043]图3为本发明从PE文件X中提取出的各信息的示意图。如图3所示,所提取出的导入表信息的个数为N,所提取出的导出表信息的个数为M,所提取出的字符串信息的个数为P,所提取出的反汇编指令信息的个数为Q。[0044]另外,步骤2)中,可按照以下方式来计算PE文件X的导入表信息与PE文件Y的导入表信息之间的相似度:设置参数NI,初始取值为0;针对从PE文件X中提取出的每个导入表信息,分别确定是否从PE文件Y中同样提取出了该导入表信息,如果是,则将NI的取值加I;用附的取值除以导入表信息的总个数,将得到的商作为PE文件X的导入表信息与PE文件Y的导入表信息之间的相似度;其中,所述导入表信息的总个数为:将从PE文件X中提取出的导入表信息的个数与从PE文件Y中提取出的导入表信息的个数求和,再减去NI后得到的结果。[0045]举例说明:假设从PE文件X中提取出了三个导入表信息,分别为A、B、C,假设从PE文件Y中提取出了四个导入表信息,分别为A、B、C、D,则NI的取值为3,导入表信息的总个数为3+4-3=4。[0046]类似地,可按照以下方式来计算PE文件X的导出表信息与PE文件Y的导出表信息之间的相似度:设置参数N2,初始取值为0;针对从PE文件X中提取出的每个导出表信息,分别确定是否从PE文件Y中同样提取出了该导出表信息,如果是,则将N2的取值加I;用N2的取值除以导出表信息的总个数,将得到的商作为PE文件X的导出表信息与PE文件Y的导出表信息之间的相似度;其中,所述导出表信息的总个数为:将从PE文件X中提取出的导出表信息的个数与从PE文件Y中提取出的导出表信息的个数求和,再减去N2后得到的结果。[0047]类似地,可按照以下方式来计算PE文件X的字符串信息与PE文件Y的字符串信息之间的相似度:设置参数N3,初始取值为0;针对从PE文件X中提取出的每个字符串信息,分别确定是否从PE文件Y中同样提取出了该字符串信息,如果是,则将N3的取值加I;用N3的取值除以字符串信息的总个数,将得到的商作为PE文件X的字符串信息与PE文件Y的字符串信息之间的相似度;其中,所述字符串信息的总个数为:将从PE文件X中提取出的字符串信息的个数与从PE文件Y中提取出的字符串信息的个数求和,再减去N3后得到的结果。[0048]类似地,可按照以下方式来计算PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度:设置参数N4,初始取值为0;针对从PE文件X中提取出的每个反汇编指令信息,分别确定是否符合以下条件:从PE文件Y中同样提取出了该反汇编指令信息,且该反汇编指令信息在从PE文件X中提取出的各反汇编指令信息中的执行顺序与在从PE文件Y中提取出的各反汇编指令信息中的执行顺序相同;如果是,则将N4的取值加I;用N4的取值除以反汇编指令信息的总个数,将得到的商作为PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度;其中,所述反汇编指令信息的总个数为:将从PE文件X中提取出的反汇编指令信息的个数与从PE文件Y中提取出的反汇编指令信息的个数求和,再减去N4后得到的结果。[0049]可以看出,在计算PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度时,需要额外考虑一个因素,即执行顺序,因为在实际应用中,反汇编指令的执行顺序是有要求的,排序越靠前,越被优先执行,如果执行顺序发生了变化,执行得到的结果也会发生变化。[0050]举例说明:假设从PE文件X中提取出了三个反汇编指令信息,按执行顺序分别为A、B、C,假设从PE文件Y中提取出了四个反汇编指令信息,按执行顺序分别为A、B、D、C,则N4的取值为2,反汇编指令信息的总个数为3+4-2=5。[0051]通常,提取出的导入表信息、导出表信息、字符串信息以及反汇编指令信息均为字符串的形式,在实际应用中,为方便比较是否相同,还可在提取出PE文件X的导入表信息、导出表信息、字符串信息以及反汇编指令信息之后,进一步对提取出的各信息分别进行数值化,相应地,参与相似度计算的PE文件Y的导入表信息、导出表信息、字符串信息以及反汇编指令信息也需要均为数值化后的信息。[0052]可采用各种现有的哈希(hash)算法来进行数值化,如循环冗余校验(CRC,CyclicRedundancyCheck)算法和信息摘要算法5(MD5,MessageDigestAlgorithm5)等。[0053]再有,在确定出PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别之后,还可进一步进行以下处理:针对该类别中的每个PE文件,分别计算其与该类别中除该PE文件以外的其它所有M个PE文件中的每个PE文件之间的四个相似度之和,得到M个计算结果,M为正整数,并将M个计算结果相加,得到该PE文件的总体相似度;确定总体相似度最大的PE文件与作为该类别的类中心的PE文件是否相同,如果否,则将总体相似度最大的PE文件作为该类别的类中心。[0054]举例说明:假设PE文件1、PE文件2和PE文件3属于同一类别,分别计算PE文件I的总体相似度、PE文件2的总体相似度以及PE文件3的总体相似度;其中,PE文件I的总体相似度的计算方式为:PE文件I与PE文件2之间的四个相似度相加之和+PE文件I与PE文件3之间的四个相似度相加之和;PE文件2的总体相似度的计算方式为:PE文件2与PE文件I之间的四个相似度相加之和+PE文件2与PE文件3之间的四个相似度相加之和;PE文件3的总体相似度的计算方式为:PE文件3与PE文件I之间的四个相似度相加之和+PE文件3与PE文件2之间的四个相似度相加之和。[0055]四个相似度即指导入表信息之间的相似度、导出表信息之间的相似度、字符串信息之间的相似度以及反汇编指令信息之间的相似度。[0056]通过上述方式,可对作为类中心的PE文件进行及时更新,选取与同一类别中的其它各PE文件最为相似的PE文件作为类中心,从而提高了分类结果的准确性。[0057]至此,即完成了关于本发明方法实施例的介绍。[0058]基于上述介绍,图4为本发明文件分类装置实施例的组成结构示意图。如图4所示,包括:[0059]第一处理模块,用于针对任一待分类的PE文件X,分别进行如下处理:确定是否存在作为类中心的PE文件,如果否,则将PE文件X作为其所属类别的类中心,并结束处理,如果是,则通知第二处理模块执行功能;[0060]第二处理模块,用于依次确定PE文件X与每个作为类中心的PE文件之间的相似度是否达到预定要求,一旦达到预定要求,则确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别,并结束处理。[0061]另外,第二处理模块可进一步用于,如果PE文件X与每个作为类中心的PE文件之间的相似度均未达到预定要求,则将PE文件X作为其所属类别的类中心,并结束处理。[0062]其中,第二处理模块中可具体包括:[0063]第一处理单兀,用于提取出PE文件X中的导入表信息、导出表信息、字符串信息以及反汇编指令信息,并发送给第二处理单元;[0064]第二处理单元,用于依次针对每个作为类中心的PE文件Y,分别计算PE文件X的导入表信息与PE文件Y的导入表信息之间的相似度、PE文件X的导出表信息与PE文件Y的导出表信息之间的相似度、PE文件X的字符串信息与PE文件Y的字符串信息之间的相似度,以及PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度,如果计算出的四个相似度均大于各自对应的阈值,则确定PE文件X与PE文件Y之间的相似度达到预定要求;一旦达到预定要求,则确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别;如果PE文件X与每个作为类中心的PE文件之间的相似度均未达到预定要求,则将PE文件X作为其所属类别的类中心。[0065]具体地,[0066]第二处理单元设置参数NI,初始取值为0;针对从PE文件X中提取出的每个导入表信息,分别确定是否从PE文件Y中同样提取出了该导入表信息,如果是,则将NI的取值加I;用附的取值除以导入表信息的总个数,将得到的商作为PE文件X的导入表信息与PE文件Y的导入表信息之间的相似度;其中,所述导入表信息的总个数为:将从PE文件X中提取出的导入表信息的个数与从PE文件Y中提取出的导入表信息的个数求和,再减去NI后得到的结果;[0067]第二处理单元设置参数N2,初始取值为0;针对从PE文件X中提取出的每个导出表信息,分别确定是否从PE文件Y中同样提取出了该导出表信息,如果是,则将N2的取值加I;用N2的取值除以导出表信息的总个数,将得到的商作为PE文件X的导出表信息与PE文件Y的导出表信息之间的相似度;其中,所述导出表信息的总个数为:将从PE文件X中提取出的导出表信息的个数与从PE文件Y中提取出的导出表信息的个数求和,再减去N2后得到的结果;[0068]第二处理单元设置参数N3,初始取值为0;针对从PE文件X中提取出的每个字符串信息,分别确定是否从PE文件Y中同样提取出了该字符串信息,如果是,则将N3的取值加I;用N3的取值除以字符串信息的总个数,将得到的商作为PE文件X的字符串信息与PE文件Y的字符串信息之间的相似度;其中,所述字符串信息的总个数为:将从PE文件X中提取出的字符串信息的个数与从PE文件Y中提取出的字符串信息的个数求和,再减去N3后得到的结果;[0069]第二处理单元设置参数N4,初始取值为0;针对从PE文件X中提取出的每个反汇编指令信息,分别确定是否符合以下条件:从PE文件Y中同样提取出了该反汇编指令信息,且该反汇编指令信息在从PE文件X中提取出的各反汇编指令信息中的执行顺序与在从PE文件Y中提取出的各反汇编指令信息中的执行顺序相同;如果是,则将N4的取值加I;用N4的取值除以反汇编指令信息的总个数,将得到的商作为PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度;其中,所述反汇编指令信息的总个数为JfWPE文件X中提取出的反汇编指令信息的个数与从PE文件Y中提取出的反汇编指令信息的个数求和,再减去N4后得到的结果。[0070]另外,第一处理单元还可进一步用于,对提取出的各信息分别进行数值化,并将数值化后的各信息发送给第二处理单元;[0071]相应地,第二处理单元中参与计算的PE文件Y的导入表信息、导出表信息、字符串信息以及反汇编指令信息同样均为数值化后的信息。[0072]再有,第二处理单元还可进一步用于,在确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别之后,针对该类别中的每个PE文件,分别计算其与该类别中除该PE文件以外的其它所有M个PE文件中的每个PE文件之间的四个相似度之和,得到M个计算结果,M为正整数,并将M个计算结果相加,得到该PE文件的总体相似度;确定总体相似度最大的PE文件与作为该类别的类中心的PE文件是否相同,如果否,则将总体相似度最大的PE文件作为该类别的类中心。[0073]图4所示装置实施例的具体工作流程请参照前述方法实施例中的相应说明,此处不再赘述。[0074]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。【权利要求】1.一种文件分类方法,其特征在于,针对任一待分类的可移植的执行体PE文件X,分别进行以下处理:确定是否存在作为类中心的PE文件,如果否,则将PE文件X作为其所属类别的类中心,并结束处理;如果是,则依次确定PE文件X与每个作为类中心的PE文件之间的相似度是否达到预定要求,一旦达到预定要求,则确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别,并结束处理。2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:如果PE文件X与每个作为类中心的PE文件之间的相似度均未达到预定要求,则将PE文件X作为其所属类别的类中心,并结束处理。3.根据权利要求2所述的方法,其特征在于,所述依次确定PE文件X与每个作为类中心的PE文件之间的相似度是否达到预定要求包括:提取出PE文件X中的导入表信息、导出表信息、字符串信息以及反汇编指令信息;依次针对每个作为类中心的PE文件Y,分别计算PE文件X的导入表信息与PE文件Y的导入表信息之间的相似度、PE文件X的导出表信息与PE文件Y的导出表信息之间的相似度、PE文件X的字符串信息与PE文件Y的字符串信息之间的相似度,以及PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度;如果计算出的四个相似度均大于各自对应的阈值,则确定PE文件X与PE文件Y之间的相似度达到预定要求。`4.根据权利要求3所述的方法,其特征在于,所述计算PE文件X的导入表信息与PE文件Y的导入表信息之间的相似度包括:设置参数NI,初始取值为O;针对从PE文件X中提取出的每个导入表信息,分别确定是否从PE文件Y中同样提取出了该导入表信息,如果是,则将NI的取值加I;用NI的取值除以导入表信息的总个数,将得到的商作为PE文件X的导入表信息与PE文件Y的导入表信息之间的相似度;其中,所述导入表信息的总个数为:将从PE文件X中提取出的导入表信息的个数与从PE文件Y中提取出的导入表信息的个数求和,再减去NI后得到的结果;所述计算PE文件X的导出表信息与PE文件Y的导出表信息之间的相似度包括:设置参数N2,初始取值为O;针对从PE文件X中提取出的每个导出表信息,分别确定是否从PE文件Y中同样提取出了该导出表信息,如果是,则将N2的取值加I;用N2的取值除以导出表信息的总个数,将得到的商作为PE文件X的导出表信息与PE文件Y的导出表信息之间的相似度;其中,所述导出表信息的总个数为:将从PE文件X中提取出的导出表信息的个数与从PE文件Y中提取出的导出表信息的个数求和,再减去N2后得到的结果;所述计算PE文件X的字符串信息与PE文件Y的字符串信息之间的相似度包括:设置参数N3,初始取值为O;针对从PE文件X中提取出的每个字符串信息,分别确定是否从PE文件Y中同样提取出了该字符串信息,如果是,则将N3的取值加I;用N3的取值除以字符串信息的总个数,将得到的商作为PE文件X的字符串信息与PE文件Y的字符串信息之间的相似度;其中,所述字符串信息的总个数为:将从PE文件X中提取出的字符串信息的个数与从PE文件Y中提取出的字符串信息的个数求和,再减去N3后得到的结果;所述计算PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度包括:设置参数N4,初始取值为O;针对从PE文件X中提取出的每个反汇编指令信息,分别确定是否符合以下条件:从PE文件Y中同样提取出了该反汇编指令信息,且该反汇编指令信息在从PE文件X中提取出的各反汇编指令信息中的执行顺序与在从PE文件Y中提取出的各反汇编指令信息中的执行顺序相同;如果是,则将N4的取值加I;用N4的取值除以反汇编指令信息的总个数,将得到的商作为PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度;其中,所述反汇编指令信息的总个数为:将从PE文件X中提取出的反汇编指令信息的个数与从PE文件Y中提取出的反汇编指令信息的个数求和,再减去N4后得到的结果。5.根据权利要求3或4所述的方法,其特征在于,所述提取出PE文件X中的导入表信息、导出表信息、字符串信息以及反汇编指令信息之后,进一步包括:对提取出的各信息分别进行数值化;`参与计算的PE文件Y的导入表信息、导出表信息、字符串信息以及反汇编指令信息同样均为数值化后的信息。6.根据权利要求3或4所述的方法,其特征在于,所述确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别之后,进一步包括:针对该类别中的每个PE文件,分别计算其与该类别中除该PE文件以外的其它所有M个PE文件中的每个PE文件之间的四个相似度之和,得到M个计算结果,M为正整数,并将M个计算结果相加,得到该PE文件的总体相似度;确定总体相似度最大的PE文件与作为该类别的类中心的PE文件是否相同,如果否,则将总体相似度最大的PE文件作为该类别的类中心。7.一种文件分类装置,其特征在于,包括:第一处理模块,用于针对任一待分类的可移植的执行体PE文件X,分别进行如下处理:确定是否存在作为类中心的PE文件,如果否,则将PE文件X作为其所属类别的类中心,并结束处理,如果是,则通知第二处理模块执行功能;所述第二处理模块,用于依次确定PE文件X与每个作为类中心的PE文件之间的相似度是否达到预定要求,一旦达到预定要求,则确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别,并结束处理。8.根据权利要求7所述的装置,其特征在于,所述第二处理模块进一步用于,如果PE文件X与每个作为类中心的PE文件之间的相似度均未达到预定要求,则将PE文件X作为其所属类别的类中心,并结束处理。9.根据权利要求8所述的装置,其特征在于,所述第二处理模块中包括:第一处理单元,用于提取出PE文件X中的导入表信息、导出表信息、字符串信息以及反汇编指令信息,并发送给第二处理单元;所述第二处理单元,用于依次针对每个作为类中心的PE文件Y,分别计算PE文件X的导入表信息与PE文件Y的导入表信息之间的相似度、PE文件X的导出表信息与PE文件Y的导出表信息之间的相似度、PE文件X的字符串信息与PE文件Y的字符串信息之间的相似度,以及PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度,如果计算出的四个相似度均大于各自对应的阈值,则确定PE文件X与PE文件Y之间的相似度达到预定要求;一旦达到预定要求,则确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别;如果PE文件X与每个作为类中心的PE文件之间的相似度均未达到预定要求,则将PE文件X作为其所属类别的类中心。10.根据权利要求9所述的装置,其特征在于,所述第二处理单元设置参数NI,初始取值为0;针对从PE文件X中提取出的每个导入表信息,分别确定是否从PE文件Y中同样提取出了该导入表信息,如果是,则将NI的取值加I;用附的取值除以导入表信息的总个数,将得到的商作为PE文件X的导入表信息与PE文件Y的导入表信息之间的相似度;其中,所述导入表信息的总个数为:将从PE文件X中提取出的导入表信息的个数与从PE文件Y中提取出的导入表信息的个数求和,再减去NI后得到的结果;所述第二处理单元设置参数N2,初始取值为0;针对从PE文件X中提取出的每个导出表信息,分别确定是否从PE文件Y中同样提取出了该导出表信息,如果是,则将N2的取值加I;用N2的取值除以导出表信息的总个数,将得到的商作为PE文件X的导出表信息与PE文件Y的导出表信息之间的相似度;其中,所述导出表信息的总个数为:将从PE文件X中提取出的导出表信息的个数与从PE文件Y中提取出的导出表信息的个数求和,再减去N2后得到的结果;`所述第二处理单元设置参数N3,初始取值为0;针对从PE文件X中提取出的每个字符串信息,分别确定是否从PE文件Y中同样提取出了该字符串信息,如果是,则将N3的取值加I;用N3的取值除以字符串信息的总个数,将得到的商作为PE文件X的字符串信息与PE文件Y的字符串信息之间的相似度;其中,所述字符串信息的总个数为:将从PE文件X中提取出的字符串信息的个数与从PE文件Y中提取出的字符串信息的个数求和,再减去N3后得到的结果;所述第二处理单元设置参数N4,初始取值为0;针对从PE文件X中提取出的每个反汇编指令信息,分别确定是否符合以下条件--从PE文件Y中同样提取出了该反汇编指令信息,且该反汇编指令信息在从PE文件X中提取出的各反汇编指令信息中的执行顺序与在从PE文件Y中提取出的各反汇编指令信息中的执行顺序相同;如果是,则将N4的取值加I;用N4的取值除以反汇编指令信息的总个数,将得到的商作为PE文件X的反汇编指令信息与PE文件Y的反汇编指令信息之间的相似度;其中,所述反汇编指令信息的总个数为JfWPE文件X中提取出的反汇编指令信息的个数与从PE文件Y中提取出的反汇编指令信息的个数求和,再减去N4后得到的结果。11.根据权利要求9或10所述的装置,其特征在于,所述第一处理单元进一步用于,对提取出的各信息分别进行数值化,并将数值化后的各信息发送给所述第二处理单元;所述第二处理单元中参与计算的PE文件Y的导入表信息、导出表信息、字符串信息以及反汇编指令信息同样均为数值化后的信息。12.根据权利要求9或10所述的装置,其特征在于,所述第二处理单元进一步用于,在确定PE文件X与达到预定要求时对应的作为类中心的PE文件属于同一类别之后,针对该类别中的每个PE文件,分别计算其与该类别中除该PE文件以外的其它所有M个PE文件中的每个PE文件之间的四个相似度之和,得到M个计算结果,M为正整数,并将M个计算结果相加,得到该PE文件的总体相似度;确定总体相似度最大的PE文件与作为该类别的类中心的PE文件是否相同,如果否,则将总体相似度最大的PE文件作为该类别的类中心。`【文档编号】G06F17/30GK103530294SQ201210231594【公开日】2014年1月22日申请日期:2012年7月5日优先权日:2012年7月5日【发明者】于涛申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1