一种目标文件的确定方法和装置的制作方法

文档序号:6574253阅读:285来源:国知局
专利名称:一种目标文件的确定方法和装置的制作方法
技术领域
本发明涉及一种判断一个数据集合是否为所希望得到的数据集合确定方法和装置。
背景技术
为了判断一个已经得到的数据集合是否为所希望得到的数据集合,或者,判断一个得到的文件是否为期望得到的文件,或者从大量的原始数据中查找需要查找的目标数据或数据集合,通常都要预先确定至少一个特征数据字符串,将所述已经得到的数据集合作为被检测的对象,通过检索该数据集合中是否存在特征数据字符串,就能够得知该数据集合否为期望得到的数据集合。然而,在特征数据字符串较多且处于离散状态时,一方面,如果被检测的数据集合较大或者特征数据字符串较多和/或较大,就会消耗更多的时间,使可操作性变差;另一方面,如果预先确定特征数据字符串在被检测的数据集合中可能出现的位置,则检索成功的概率将会变得非常小。
例如,在面部图像数据库中查找模拟画像表示的图像是否存在,就是试图确定面部图像数据库中是否有要查找的目的画像;在一个可疑的程序中查找病毒的特征指令或数据是否存在等,就是试图确定该可疑程序是否为病毒程序。由于模拟画像表示的图像或特征指令涉及的特征数据较多且处于离散状态,因此现有的方法难以实现快速有效的查找和目标数据集合的确定。实际中还有一种情况,假设,一种病毒程序的特征全集中包含10个特征,即该种病毒程序的已知的各种变种病毒程序中,各个病毒程序或变种病毒程序的特征集合的并集中有10个特征,而各个具体的病毒程序或变种病毒程序的特征集合中包含的特征可能仅是病毒程序的特征全集中的一部分。在此情境下,更是难以确定具有病毒特征的程序样本,进而难以有效地判断一个可疑程序是否为病毒程序。

发明内容
本发明要解决的问题在于,提供一种能够对被检测数据集合进行快速、准确判断的目标文件的确定方法和装置,从而实现快速准确判断被检测文件是否为目标文件。
本发明实施例提供的目标文件的确定方法,基于存储特征字符串全集的存储单元,包括在存储单元中选择用于确定目标文件的特征字符串集合,所述集合中包含至少一个用于确定目标文件的特征字符串;按照规则在待检测文件中查找所述集合中的字符串,获得查找结果,以及,判断所述查找结果是否满足第一条件,如果满足,确定所述待检测文件为目标文件。
其中,可以按照规则采用下述步骤在待检测文件中查找所述集合中的字符串每次选择所述集合中的一个特征字符串,直到所述集合中每一个特征字符串被选择一次,对于选择出的每一个特征字符串,扫描所述待检测文件,获得特征字符串在待检测文件中的有效位置,将所有特征字符串在待检测文件中的位置作为查找结果。
也可以按照规则采用下述步骤在待检测文件中查找所述集合中的字符串在所述集合中选择出一个未被选择过的特征字符串,直到累积结果满足第一规则,对于选择出的每一个特征字符串,扫描所述待检测文件,获得特征字符串在待检测文件中的有效位置,累积所述有效位置,获得累积结果,在对待检测文件查找结束后,将累积结果作为查找结果。
所述第一规则为累积结果中,找到的特征字符串在待检测文件中的有效位置的和达到设定的值;或者,累积结果中,在待检测文件中被有效找到的特征字符串的个数达到设定的值;或者,累积结果中,在待检测文件中被有效找到的特征字符串的位置关系满足设定的顺序特征和/或间隔特征。
所述第一条件为所述查找结果中,在待检测文件中被有效找到的特征字符串的个数达到设定的值;或者,所述查找结果中,在待检测文件中被有效找到的特征字符串的位置关系满足设定的顺序特征和/或间隔特征。
所述方法还包括,确定每一个特征字符串的特征字符和按照所述特征字符构建对应特征字符串的第二规则;以及,按照下述步骤扫描所述待检测文件在待检测文件中,查找所述特征字符,直到待检测文件被查找完毕,对于每一个找到的特征字符,按照所述第二规则构建相应的特征字符串,如果所述特征字符串构建成功,将构建成功的特征字符串位置作为有效位置。
而且,如果按照所述第二规则构建的特征字符串的字符与作为查找基础的特征字符串的字符完全相同或者相同的比例达到设定的数值,确定所述特征字符串构建成功。
本发明实施例提供的目标文件的确定装置,包括存储特征字符串全集的存储单元,还包括特征字符串选择单元,在存储单元中选择用于确定目标文件的特征字符串的集合,所述集合中包含至少一个用于确定目标文件的特征字符串;文件扫描单元,用于按照规则在待检测文件中查找所述集合中的字符串,获得查找结果;判断单元,用于判断所述结果是否满足第一条件,以及,目标文件确定单元,在所述结果满足第一条件时,确定所述待检测文件为目标文件。
按照本发明实施例提供的目标文件的确定方法和装置,需要选择用于确定目标文件的特征字符串集合,以及按照规则在待检测文件中查找所述集合中的字符串,获得查找结果后,还判断所述查找结果是否满足第一条件,从而确定所述待检测文件为目标文件。由于在确定过程中采用查找规则和判断条件,因此可以通过规则和条件约束特征字符串查找的方式,例如模糊查找和针对被检测文件的性质、检测的目,使查找判断更有针对性,因此能够对被检测数据集合进行快速、准确判断。
本发明的其它优点在后续的文字中有详尽的叙述。


图1为本发明所述方法的第一实施例流程图;图2为图1所述实施例采用的在待检测文件中查找特征字符窜集合的流程图;图3为图1所述实施例采用的存储特征字符串的数据库结构图;图4为本发明所述装置的实施例框图。
具体实施例方式
在实际应用中,确定一个文件(或者确定一个数据集合)是否为所希望查找的目标文件的方法有着非常广泛的应用,该方法通过特征的查找,可以确定一个文件是否为其他文件的复制品,或者确定一个文件是否受到病毒程序的感染,等等。无论是一个文件的复制品,还是一个受到病毒程序感染的文件,其中都包含有源文件的特征或者受感染的特征。这些特征通常都具有数据量较大、不确定以及数据离散度较大的特性,因此很难确定这些特征究竟有哪些会出现在待检测文件中,更难以确定这些特征在待检测文件中的存在形式和具体位置。例如一个可疑程序具有删除数据的指令特征,但是该指令特征携带什么参数以及还有哪些附加的条件才能确定该可疑程序是病毒程序却是不确定的。因此,采用现有的方法去快速发现大量这样的可疑程序要么耗费大量的时间,要么同时和单独具有较低的检测成功率。
下面参照附图对本发明的实施例作详细说明。
图1是本发明所述方法的第一个实施例流程图。在该实施例中,由于任何数据或文件都能够转化或归结为具有某种编码规则的字符串,例如ASCII编码的字符串,因此本实施例以字符串的查找为基础。图1的基础是预先获得的待检测文件。
按照图1,首先在步骤11确定特征字符串的集合这是一个预处理的步骤,是后续步骤的基础。很多应用场合,也将所述特征字符串称为“指纹”。所述特征字符串的集合中包含确定目标文件的特征字符串,是查找相同或相似文件的基础。对于较简单的情况,有时候用一个特征字符串即可对待检测的文件进行是否为目标文件的判断,但更多的时候需要很多特征字符串才能对待检测的文件进行是否目标文件的判断,因此,所述特征字符串的集合中包含的特征字符串至少一个以上。所述集合在本实施例中采用一个二维表形式的数据库,以存储用于对某种或全部特定的目标文件进行判定使用的选定或确定的全部特征字符串及其对应的其他辅助数据,当然该数据库也可以采用其他数据结构代替,例如一个线性队列。
典型的数据库结构如图3所示。其中,字段“编号”、“特征字符串”和“长度”是最基本的,如果选择的特征字符串的长度相等,则“长度”也可以去除。其它的字段,用于对图1所述实施例或其它实施例的进一步改进,可以看作是辅助数据,用以提高实施例所述方法的性能。
需要说明的是,所述步骤11在数据库中选择用于确定目标文件的特征字符串的集合,是确定在某种目标文件判断过程中使用的特征字符串,这些特征字符串对于不同性质目标文件的判断来说是不同的。例如,如果判断文件B是否为文件A的复制品,就需要在文件A中提取出这些特征的全集,然后在具体的目标文件的判断时,从特征全集中选择或确定用于具体判断的特征字符串的集合。再例如,如果判断某个文件是否为病毒程序或某种病毒程序,也需要预先提取出这些病毒程序特征的全集,然后在具体的目标文件的判断时,从特征全集中选择或确定用于具体判断的特征字符串的集合。然而,如何在一个文件A中提取出这些特征的全集,以及如何获得病毒程序或某种病毒程序特征的全集有很多方法实现,在本申请人的其他专利中也有类似方法的详细说明。在图3所述结构的数据库中,就用来存储这样的针对某种目标文件进行检测的特征字符串的全集,如果用来存储所有全部各种目标文件进行检测的特征字符串的全集,只需增加一个字段标识某个特征字符串用于检测的目标文件的编号或名称即可。而对于其中一种目标文件不同项目的检测采用特征组字段管理即可。等等。
因此需要预先分析并获得的典型种类目标文件种的特征信息。对于比较简单的情况,例如查找复制品之类的简单查找,可以通过多模式匹配法等自动分析源文件即可;而对于复杂的情况,例如确定是否病毒文件,或者被病毒感染过的文件等的特征字符串,可能还需要人工的参与。例如无论是分析非法的网络访问特征信息,还是分析病毒的特征信息,其分析的方法和过程存在多种,并且分析得出的特征信息的属性或种类也存在多种方式,所述的分析过程可以由人工或者计算机来完成。可以根据实际情况和需求选择和存储依据特征信息确定的特征字符串。在本实施例中,提供了一个利用计算机工具分析并获得病毒程序特征字符串的例子。该例子使用DEBUG、PROVIEW等工具程序和在专用的试验用的系统分析病毒的特征信息。之所以利用专用的试验用系统,就是因为分析的对象有可能是病毒,很有可能在被分析的阶段继续传播甚至发作。具体的分析过程即可以利用DEBUG或其他的反汇编工具程序将病毒的代码打印成反汇编后的程序清单,分析出病毒具有特征信息的代码段,还可以采用动态分析病毒的组成部分,使用了对系统的哪些调用或操作,以及采用了何种操作方式和流程,进而分析出病毒的一系列操作行为。将上述病毒的特征信息或者病毒的操作行为对应的特征字符串采用数据库的方式进行存储,以便于进一步利用其识别、判断其它的待检测程序是否为病毒程序。
特征字符串的确定通常应当满足下述条件唯一性,长度尽可能短,等等。
步骤11所述确定特征字符串的集合,主要是考虑到了特征数据的离散性以及在待检测文件中的位置的不确定性,而将特征数据分解为不同的字符数量较小的特征字符子集,即特征字符串。基于步骤11确定的特征字符串的集合,在步骤12按照规则在待检测文件中查找所述集合中的字符串,获得查找结果。这里所述的规则对于不同目标文件的查找是不同的,主要考虑到查找速度和查找准确度,以及考虑所查找的目标文件的性质而制定的查找策略。最简单的规则就是在待检测文件中检索所述特征集合中每一个特征字符串。本实施例中,按照规则采用下述步骤在待检测的文件中查找所述集合中的特征字符串每次选择所述集合中的一个特征字符串,直到所述集合中每一个特征字符串被选择一次,对于选择出的每一个特征字符串,扫描所述待检测文件,获得特征字符串在待检测文件中的有效位置,将所有特征字符串在待检测文件中的位置作为查找结果。具体参考图2。
步骤13判断所述查找结果是否满足预先设定的条件,如果满足,则在步骤14确定该待检测文件为目标文件,接着进行后续处理,否则在步骤15结束判断操作。
步骤12所述的扫描待检测文件的一个具体的例子参考图2所示。在步骤21从所述特征字符串的集合中读取一个未被选择过的特征字符串,然后利用该特征字符串在步骤22扫描待检测文件,即在待检测文件中查找该特征字符串是否存在;在步骤23判断是否扫描到或者找到该特征字符串,在不能确定已经扫描的字符部分包含该特征字符串时,回到步骤22继续后续的扫描;如果经步骤23判断已经扫描的字符部分包含该特征字符串时,则在步骤24记录扫描的结果,例如本例中记录该特征字符串在待检测文件中的有效位置,所述有效位置包括该特征字符串在待检测文件中的偏移量,长度等。所述有效位置是指在所述特征字符串完全包含于待检测文件中时的位置,对于所述特征字符串不完全包含于待检测文件中时的情况,以及没有在待检测文件中找到该特征字符串,则不存在该特征字符串的有效位置。但是由于后续管理和判断的需要,所述特征字符串不完全包含于待检测文件中时或者在待检测文件中不存在时,也要在管理表中的有效位置字段记录“空”,标识没有在待检测文件中找到该特征字符串。
例如,假设一个扫描结果表包含“特征字符串编号”“起始位置”“长度”三个字段,对于编号为1的特征字符串ACDS和编号为2的特征字符串DFS,和待检测文件QWERTACDSYASDFGHZXCVB,则基于特征字符串ACDS的扫描得到的结果,即扫描结果表的记载为“1”“6”“4”;对于特征字符串DFS的扫描得到的结果为“2”“0”“3”,其中,DFS的扫描结果中间的“0”表示“空”,即没有扫描到到特征字符串DFS。
本例中,所述步骤23还包含另一个判断内容,即判断扫描是否结束,如果结束则终止扫描操作,转到步骤26确定并获得最终的查找结果(由于本分支显而易见,故图2中未绘出)。
步骤25用于判断特征字符串集合中的每一个特征字符串是否全部扫描完毕,如果没有全部扫描完,则转步骤21选择下一个未被选择的特征字符串继续扫描操作,否则在步骤26确定并获得最终的查找结果。
通常,步骤21中对特征字符串的选择可以按顺序依次选择或者采用其他方式选择,只要保证选择的特征字符串不重复即可。
在图1所示实施例中,采用查找每一个特征字符串在待检测文件中的有效位置位置的方法可能不是十分必要,在某种情况下会导致查找的效率的降低。例如,对于一种病毒程序来说,在特征字符串的集合中包含8各特征字符串,在其中4个特征字符串具有某种顺序和间隔特征时,就可以得出待检测文件是否为目标文件的判断结论。为解决这种问题,本发明第二实施例给出了另外一种在待检测的文件中查找所述集合中的字符串的方法。该方法在所述集合中选择出一个未被选择过的特征字符串,对于选择出的每一个特征字符串,扫描所述待检测文件,获得特征字符串在待检测文件中的有效位置,累积所述有效位置,获得累积结果,如果所述累积结果满足一个预先确定的规则,说明基于目前的累积结果就能够对待检测文件进行一个明确的判断,这样就可以结束对待检测文件查找,将累积结果作为查找结果,以进行进一步的处理。上面文字描述的含义是,如果所述累积结果满足一个预先确定的规则,就可以提前结束查找,而不必将特征集合中的每一个特征字符串都选择一次,从而提高在待检测的文件中查找所述集合中的特征字符串的效率。
在第二实施例中,即使对于一个特征字符串的查找没有结果,由于管理或其他的例如统计需要等也应当在累积查找结果时,记录查找的结果,即查找结果为“空”,表示没有找到;当然如果有明确的查找结果,就要记载该特征字符串在待检测文件中的位置参数。
在第二实施例中,对于一个特定的特征字符串在待检测文件中的有效位置,可以记录第一次出现的有效位置,也可以记录全部的有效位置,这取决于实际的需要,在一个集合中特征字符串具有明确的位置特征或关系特征时就可能这样。例如,一个病毒程序具有的特征字符串的全集为A1、A2、A3、A4、A5。依据该全集中的特征字符串,当一个待检测程序中出现下述特征集合1中描述的特征字符串组合与顺序关系时,认为该待检测程序为病毒程序;当一个待检测程序中出现下述特征集合2中描述的特征字符串组合与顺序关系时,认为该待检测程序为某种特定的病毒程序。
特征集合1为{A1 A3 A4,A1 A3 A4 A5,A1 A1 A3 A4 A5 A1,A2 A4 A5,A1 A3 A5,A3A4 A5,A1 A4 A5,A1 A2 A3 A4 A5};特征集合2为{A1 A3 A5,A3 A4 A5,A1 A4 A5,A1 A2 A3 A4 A5};显然,对于特征集合1,特征字符串可能在待检测文件中出现多次才能够判断待检测程序是否为病毒程序,因此,在这种情况下就要记录特征字符串在待检测文件中的全部有效位置。而对于特征集合1,特征字符串在待检测文件中出现一次就能够判断待检测程序是否为病毒程序,为提高检测效率,对于这种特殊的检测,只记录特征字符串在待检测文件中第一次出现的有效位置即可。所述有效位置至少包括偏移量参数,如果特征字符串的长度不同,还需要包括长度参数;在其他的实施例中,设置还包含特征字符串允许的表明具体字符离散关系的参数,等等。
采用精确匹配的方式在待检测的文件中查找所述集合中的特征字符串,这在某种情况下会导致查找准确性的降低。例如,对于一种病毒程序的特征字符串在其变种病毒程序中可能发生改变,进而增加对一个待检测程序判断失误的可能性。在不同的复制者复制的一个文本文件的复制品中,依据原始文本文件确定的特征字符串也会发生变化。这种变化可能是由于携带的参数不同或其它原因导致的。尽管病毒的特征字符串是在仔细分析病毒体后选出的最具代表性、足以将该病毒区别于其它病毒和该病毒的其它变种的病毒特征字符串,以将病毒程序与正常的非病毒程序区分开,避免将非病毒程序当成病毒程序处理。但是,由于病毒程序的变种,所述特征字符串具体组成就可能由于携带参数的不同等原因发生变化。这样,如果待检测的程序是病毒程序或变种病毒程序,其中的特征特征信息中就可能包含有一个到几个“模糊”字节。遇到这种情况,只要除“模糊”字节之外的字串都能完好匹配,则也能判别出特征字符串,进而得出该待检测程序是否为病毒程序的判断。例如给定特征字符串“E9 7C 00 10?37 CB”,则“E9 7C 00 10 27 37 CB”和“E9 7C 00 109C 37 CB”都能被识别出来,又例如“E9 7C 37 CB”可以匹配“E9 7C 00 37 CB”,“E9 7C00 11 37 CB”和“E9 7C 00 11 22 37 CB”,但不匹配“E9 7C 00 11 22 33 44 37 CB”,因为7C和37之间的子串已超过一定的长度,超出了间隔特征的限制。因此,需要按照预先确定的规则模糊查找。
在第二实施例中,支持所述模糊查找的预先确定的规则为在待检测文件中被有效找到的特征字符串的位置关系构成的累积结果满足设定的顺序特征、间隔特征,或者同时满足顺序特征和间隔特征。所述顺序特征包括特征字符串的组合和/或排列规律。对于不同目的、不同性质的目标文件的确定,所述顺序特征和间隔特征是不同的。所述间隔特征反映了一个特征字符串的构成字符的离散关系,例如,一个特征字符串的构成字符间的间隔不应超过一定的字符个数,这取决于实际的不同目的、不同性质的目标文件确定的需要。
在其它实施例中,支持所述模糊查找的预先确定的规则也可以为累积结果中,找到的特征字符串在待检测文件中的有效位置的和达到设定的值,即找到的特征字符串的有效位置的数量和达到设定的值;或者,累积结果中,在待检测文件中被有效找到的特征字符串的个数达到设定的值。究竟采用那种方式作为确定的规则同样根据实际的需要决定,这样的规则对于不同目的、不同性质的目标文件的确定需要来说可能不同,而且也很多种这样的规则需要预先确定好。
这里所述“目的”,很多时候等同于“要求”,例如,按照所需的概率或可能性确定一个待检测文件是否为目标文件,从而在考虑效率、误判率和漏判率方面达到一个综合的平衡。所述“性质”对不同目标文件的确定也有影响。例如,某种文件具有的特征字符串的分布和/或组成的规律性和另一种文件具有的分布和/或组成的规律性可能不同,典型的规律性不同如离散性不同,这可能由于携带参数的不同或操作的对象数据不同等因素导致的。
由于前述的模糊查找不需要精确匹配,更适用于特征字符串在待检测文件中变化的情况,还由于可以根据具体的查找需求选择不同的模糊规则,因此能够使本实施例相对第一实施例进一步提高确定一个待检测文件是否为目标文件的效率、漏判率和准确性。
在上面提到的两个实施例中,所述查找结果只有经过步骤13判断是否满足预先设定的条件,才能确定待检测文件是否为目标文件。这里所述的条件可以为所述查找结果中,在待检测文件中被有效找到的特征字符串的个数达到设定的值;或者,所述查找结果中,在待检测文件中被有效找到的特征字符串的位置关系满足设定的顺序特征和/或间隔特征。等等。需要指出,这里所述的“条件”与前文所述的“规则”可能相同,也可能有区别。在对较简单的待检测文件进行是否为目标文件的确定时,就可能相同,此时,步骤13可以直接利用前述步骤的判断结果得出结论,或者干脆省略步骤13。在对较复杂的待检测文件进行是否为目标文件的确定时,就可能不同,此时,前面的“规则”优选的方式是关注效率,而后面步骤13的“条件”优选关注准确性,这样可以提高方法实施例的整体性能。当然,如前所述,这里所述的条件也可能根据实际的需要存在多种。
尽管所述第一、第二实施例能够通过模糊查找解决效率和可靠性问题,但是当特征字符串较大时,扫描待检测文家的方法仍然可以改进,以进一步提高特征字符串的查找效率。
本发明的第三个实施例就提供了这样的改进。与所述第一、第二实施例不同的是,所述第三实施例增加了一个步骤确定每一个特征字符串的特征字符和按照所述特征字符构建对应特征字符串的第二规则,这也是一个相当于“初始化”的步骤。
在实际应用中,每一个特征字符串都具有相对最稳定的部分,例如对于某个破坏性指令,如删除指令,指令本身通常不会变化,变化的通常是携带的参数或操作的对象数据在特征字符串中的位置,因此,通过确定每一个特征字符串的最稳定的部分为特征字符,由于特征字符的数量较少,就可以通过特征字符的查找快速定位可能的特征字符串。因此也可以将所述特征字符称为“锚”。对于不同的特征字符串,其中适合作为特征字符的那些具体字符通常是不确定的,而且在特征字符串中位置也不确定,因此在一个特征字符串的特征字符确定后,还要根据特征字符在特征字符串中的位置和特征字符串本身的构成特性确定按照所述特征字符构建对应特征字符串的第二规则。可见,本实施例试图提供一种通过“锚”快速定位特征字符串,并快速“组装”特征字符串的方法。
例如,特征字符串1为(用ASCII码表示)23 4E 6F 55 77 09 0A 9D 34 8C,如果用“6F 55”作为特征字符,则所述特征字符构建对应特征字符串的规则可以为“2,6”,表示特征字符“6F 55”前面的2个字符“23 4E”和后面的6个字符“77 09 0A 9D 34 8C”可以构成对应的特征字符串;如果用“23 4E”作为特征字符,则所述特征字符构建对应特征字符串的规则可以为“0,8”,表示特征字符“23 4E 6F”前面的0个字符,即没有字符和后面的7个字符“55 77 09 0A 9D 34 8C”可以构成对应的特征字符串,等等。这样,就可以通过特征字符在待检测文件中快速定位特征字符串,进而快速判断定位的特征字符串是否为希望找到的特征字符串。
因此,在第三实施例中,按照下述步骤扫描所述待检测文件在待检测文件中,查找所述特征字符,直到待检测文件被查找完毕,对于每一个找到的特征字符,按照所述第二规则构建相应的特征字符串,如果所述特征字符串构建成功,将构建成功的特征字符串位置作为有效位置。这种扫描待检测文件的方法适合于找到特征字符串在待检测文件中的所有位置。对于只需要找到首个特征字符串的位置的情况,可以按照下述步骤扫描所述待检测文件在待检测文件中,查找所述特征字符,如果找到所述特征字符,按照所述第二规则构建相应的特征字符串,如果所述特征字符串构建成功,将构建成功的特征字符串的位置作为有效位置,结束查找。
第三实施例中所述特征字符串构建成功,也是指精确匹配的情况,即如果按照所述第二规则构建的特征字符串的字符与作为查找基础的特征字符串的字符完全相同。为了实现模糊匹配,也可以在按照所述第二规则构建的特征字符串的字符与作为查找基础的特征字符串的字符相同的比例达到设定的数值时,确定所述特征字符串构建成功,以实现模糊匹配,更进一步,还可以在模糊匹配中的第二规则中加入更具体的表明字符离散关系的参数。当然这里所述的构建特征字符串构建成功的标准还有很多种,如前所述,可以根据具体的需要确定具体的标准。
对于上述提出的精确匹配,如果采用字符逐个比较的办法,可能会消耗较多的时间。在本发明提供的实施例中,可以进行进一步的改进在构建特征字符串成功后,计算依据特征字符新构建的特征字符窜的检验和,用该校验和与作为查找基础的特征字符串预先计算出的校验和进行比较,就能够更快地完成新构建的特征字符串与作为查找基础的特征字符串的比较。在实际中,通常的特征字符串的长度在50个字节左右,如果用于存储校验和的存储单元的位数足够大,甚至能够消除比较失误,而在现代计算机中,这是极其容易做到的,而且不限于校验和。
图4为本发明所述装置的实施例框图,包括存储特征字符串全集的存储单元41,在存储单元中41选择用于确定目标文件的特征字符串集合的特征字符串选择单元42,所述集合中包含至少一个用于确定目标文件的特征字符串;文件扫描单元43,用于按照规则在待检测文件中查找所述集合中的字符串,获得查找结果;和,用于判断所述结果是否满足第一条件的判断单元44,以及,目标文件确定单元45,用于在所述结果满足第一条件时,确定所述待检测文件为目标文件。
其中,存储单元41,用于存储特征字符串全集,通常存储用于对某种或全部特定的目标文件进行判定使用的选定或确定的全部特征字符串及其对应的其他辅助数据,所述特征字符串的集合中包含确定目标文件的特征字符串,是查找相同或相似文件的基础。所述集合在本实施例中采用一个二维表形式的数据库,以当然该数据库也可以采用其他数据结构代替,例如一个线性队列。典型的数据库结构可以参考图3。其中,字段“编号”、“特征字符串”和“长度”是最基本的,其它的字段提高实施例所述装置性能的辅助数据。通常,特征字符串的确定通常应当满足下述条件唯一性,长度尽可能短,等等。
特征字符串选择单元42基于存储单元41,在确定待检测的目标文件种类后,在存储单元中41中选择用于确定目标文件的特征字符串,并构成特征字符串集合。
文件扫描单元43,直接操作被扫描文件,按照规则在待检测文件中查找所述集合中的字符串,获得查找结果。这里所述的规则对于不同目标文件的查找是不同的,主要考虑到查找速度和查找准确度,以及考虑所查找的目标文件的性质而制定的查找策略。本实施例中,按照规则采用下述步骤在待检测的文件中查找所述集合中的特征字符串每次选择所述集合中的一个特征字符串,直到所述集合中每一个特征字符串被选择一次,对于选择出的每一个特征字符串,扫描所述待检测文件,获得特征字符串在待检测文件中的有效位置,将所有特征字符串在待检测文件中的位置作为查找结果。
判断单元44,用于判断所述查找结果是否满足预先设定的条件,如果满足,目标文件确定单元45则确定该待检测文件为目标文件。
文件扫描单元43扫描待检测文件的典型流程为从所述特征字符串的集合中读取一个未被选择过的特征字符串,然后利用该特征字符串扫描待检测文件,即在待检测文件中查找该特征字符串是否存在;然后判断是否扫描到或者找到该特征字符串,在不能确定已经扫描的字符部分包含该特征字符串时,继续后续的扫描;如果经判断已经扫描的字符部分包含该特征字符串时,则记录扫描的结果,例如本例中记录该特征字符串在待检测文件中的有效位置,所述有效位置包括该特征字符串在待检测文件中的偏移量,长度等。
本例中,还包含另一个判断内容,即判断扫描是否结束,如果结束则终止扫描操作,然后确定并获得最终的查找结果(这种做法是显而易见的)。
还要判断特征字符串集合中的每一个特征字符串是否全部扫描完毕,如果没有全部扫描完,选择下一个未被选择的特征字符串继续扫描操作。
在图4所示实施例中,文件扫描单元43采用查找每一个特征字符串在待检测文件中的有效位置位置的方法可能不是十分必要,在某种情况下会导致查找的效率的降低。本发明所述装置的第二实施例给出了另外一种方法。该方法在所述集合中选择出一个未被选择过的特征字符串,对于选择出的每一个特征字符串,扫描所述待检测文件,获得特征字符串在待检测文件中的有效位置,累积所述有效位置,获得累积结果,如果所述累积结果满足一个预先确定的规则,说明基于目前的累积结果就能够对待检测文件进行一个明确的判断,这样就可以结束对待检测文件查找,将累积结果作为查找结果,以进行进一步的处理。
在第二实施例中,即使对于一个特征字符串的查找没有结果,由于管理或其他的例如统计需要等也应当在累积查找结果时,记录查找的结果,即查找结果为“空”,表示没有找到;当然如果有明确的查找结果,就要记载该特征字符串在待检测文件中的位置参数。
在所述装置的第二实施例中,对于一个特定的特征字符串在待检测文件中的有效位置,可以记录第一次出现的有效位置,也可以记录全部的有效位置,这取决于实际的需要,在一个集合中特征字符串具有明确的位置特征或关系特征时就可能这样。
采用精确匹配的方式在待检测的文件中查找所述集合中的特征字符串,这在某种情况下会导致查找准确性的降低。
在所述装置的第二实施例中,支持所述模糊查找的预先确定的规则为在待检测文件中被有效找到的特征字符串的位置关系构成的累积结果满足设定的顺序特征、间隔特征,或者同时满足顺序特征和间隔特征。所述顺序特征包括特征字符串的组合和/或排列规律。对于不同目的、不同性质的目标文件的确定,所述顺序特征和间隔特征是不同的。
在其它实施例中,支持所述模糊查找的预先确定的规则也可以为累积结果中,找到的特征字符串在待检测文件中的有效位置的和达到设定的值,即找到的特征字符串的有效位置的数量和达到设定的值;或者,累积结果中,在待检测文件中被有效找到的特征字符串的个数达到设定的值。究竟采用那种方式作为确定的规则同样根据实际的需要决定,这样的规则对于不同目的、不同性质的目标文件的确定需要来说可能不同,而且也很多种这样的规则需要预先确定好。
在上面提到的两个实施例中,所述查找结果只有经过判断单元44判断是否满足预先设定的条件,才能确定待检测文件是否为目标文件。这里所述的条件可以为所述查找结果中,在待检测文件中被有效找到的特征字符串的个数达到设定的值;或者,所述查找结果中,在待检测文件中被有效找到的特征字符串的位置关系满足设定的顺序特征和/或间隔特征。等等。
本发明所述装置的第三个实施例就提供了提高特征字符串的查找效率的改进。与所述装置的第一、第二实施例不同的是,在第三实施例中,特征字符串选择单元42,确定每一个特征字符串的特征字符和按照所述特征字符构建对应特征字符串的第二规则。基于上述特征字符和第二规则,就可以按照下述步骤扫描所述待检测文件在待检测文件中,查找所述特征字符,直到待检测文件被查找完毕,对于每一个找到的特征字符,按照所述第二规则构建相应的特征字符串,如果所述特征字符串构建成功,将构建成功的特征字符串位置作为有效位置。这种扫描待检测文件的方法适合于找到特征字符串在待检测文件中的所有位置。对于只需要找到首个特征字符串的位置的情况,可以按照下述步骤扫描所述待检测文件在待检测文件中,查找所述特征字符,如果找到所述特征字符,按照所述第二规则构建相应的特征字符串,如果所述特征字符串构建成功,将构建成功的特征字符串的位置作为有效位置,结束查找。
对于上述提出的精确匹配,可以在构建特征字符串成功后,计算依据特征字符新构建的特征字符窜的检验和,用该校验和与作为查找基础的特征字符串预先计算出的校验和进行比较,就能够更快地完成新构建的特征字符串与作为查找基础的特征字符串的比较。这是极其容易做到的一种,而且实际中不限于校验和的方式。
通过上述的说明内容,本发明领域相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。例如,一种区分有害程序的方法,可以采用下述特征将破坏系统的指令和/或参数转化为特征字符串,以及将所有的特征字符串作为特征字符串集合,所述集合中包含至少一个用于确定有害程序的特征字符串;按照规则在可疑程序中查找所述集合中的特征字符串,获得查找结果,以及,判断所述查找结果是否满足第一条件,如果满足,确定所述可疑程序为有害程序。
也就是说,区分有害程序,实际上是对一个不知是否有害的程序作为一个已经获得具体内容的文件进行判断,看其中是否存在一些起某种破坏作用的特征字符串,例如破坏性指令和/或参数。采用本发明的方案,可以使这种查找具有一定程度的模糊性,从而增加程序判断的准确度,减少误判和漏判。例如可以实现对一个通过网络进入系统的可疑程序扫描,如果在其中找到预先确定的破坏系统的指令和/或参数,或者说在可疑程序中找到对系统有害的行为,就可以确定其为有害程序,进而进一步采取对其的措施。
还有,例如判断一个正常程序是否受到病毒程序的攻击,如果受到攻击,其中一种情况就是其中具有某些破坏性指令和/或参数,显然利用本发明的方法可以完成这种判断(如果该程序仅仅是数据被破坏,采用校验和等常规手段就能轻易检测出来该该程序是否被破坏)。再例如识别一个程序,只要将识别的特征组成特征字符串,形成特征字符串集合后即可利用本发明的方案轻易地对其进行识别。等等。
因此,本项发明的技术性范围并不局限于说明书上的内容,还有很多根据其权利要求确定的具体的技术性应用方案。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种目标文件的确定方法,基于存储特征字符串全集的存储单元,其特征在于在存储单元中选择用于确定目标文件的特征字符串集合,所述集合中包含至少一个用于确定目标文件的特征字符串;按照规则在待检测文件中查找所述集合中的特征字符串,获得查找结果,以及,判断所述查找结果是否满足第一条件,如果满足,确定所述待检测文件为目标文件。
2.如权利要求1所述的方法,其特征在于,按照规则采用下述步骤在待检测文件中查找所述集合中的特征字符串每次选择所述集合中的一个特征字符串,直到所述集合中每一个特征字符串被选择一次,对于选择出的每一个特征字符串,扫描所述待检测文件,获得特征字符串在待检测文件中的有效位置,将所有特征字符串在待检测文件中的位置作为查找结果。
3.如权利要求1所述的方法,其特征在于,按照规则采用下述步骤在待检测文件中查找所述集合中的特征字符串在所述集合中选择出一个未被选择过的特征字符串,直到累积结果满足第一规则,对于选择出的每一个特征字符串,扫描所述待检测文件,获得特征字符串在待检测文件中的有效位置,累积所述有效位置,获得累积结果,在对待检测文件查找结束后,将累积结果作为查找结果。
4.如权利要求3所述的方法,其特征在于,所述第一规则为累积结果中,找到的特征字符串在待检测文件中的有效位置的和达到设定的值;或者,累积结果中,在待检测文件中被有效找到的特征字符串的个数达到设定的值;或者,累积结果中,在待检测文件中被有效找到的特征字符串的位置关系满足设定的顺序特征和/或间隔特征。
5.如权利要求1、2、3或4所述的方法,其特征在于,所述第一条件为所述查找结果中,在待检测文件中被有效找到的特征字符串的个数达到设定的值;或者,所述查找结果中,在待检测文件中被有效找到的特征字符串的位置关系满足设定的顺序特征和/或间隔特征。
6.如权利要求5所述的方法,其特征在于还包括,确定每一个特征字符串的特征字符和按照所述特征字符构建对应特征字符串的第二规则;以及,按照下述步骤扫描所述待检测文件在待检测文件中,查找所述特征字符,直到待检测文件被查找完毕,对于每一个找到的特征字符,按照所述第二规则构建相应的特征字符串,如果所述特征字符串构建成功,将构建成功的特征字符串位置作为有效位置。
7.如权利要求5所述的方法,其特征在于还包括,确定每一个特征字符串的特征字符和按照所述特征字符构建对应特征字符串的第二规则;以及,按照下述步骤扫描所述待检测文件在待检测文件中,查找所述特征字符,如果找到所述特征字符,按照所述第二规则构建相应的特征字符串,如果所述特征字符串构建成功,将构建成功的特征字符串的位置作为有效位置,结束查找。
8.如权利要求7所述的方法,其特征在于,如果按照所述第二规则构建的特征字符串的字符与作为查找基础的特征字符串的字符完全相同或者相同的比例达到设定的数值,确定所述特征字符串构建成功。
9.如权利要求6所述的方法,其特征在于,如果按照所述第二规则构建的特征字符串的字符与作为查找基础的特征字符串的字符完全相同或者相同的比例达到设定的数值,确定所述特征字符串构建成功
10.一种目标文件的确定装置,包括存储特征字符串全集的存储单元,其特征在于还包括特征字符串选择单元,在存储单元中选择用于确定目标文件的特征字符串的集合,所述集合中包含至少一个用于确定目标文件的特征字符串;文件扫描单元,用于按照规则在待检测文件中查找所述集合中的字符串,获得查找结果;判断单元,用于判断所述结果是否满足第一条件,以及,目标文件确定单元,在所述结果满足第一条件时,确定所述待检测文件为目标文件。
全文摘要
本发明提供一种目标文件的确定方法,基于存储特征字符串全集的存储单元,包括在存储单元中选择用于确定目标文件的特征字符串集合,所述集合中包含至少一个用于确定目标文件的特征字符串;按照规则在待检测文件中查找所述集合中的特征字符串,获得查找结果,以及,判断所述查找结果是否满足第一条件,如果满足,确定所述待检测文件为目标文件。该方法可以通过规则和条件约束特征字符串查找的方式,例如模糊查找和针对被检测文件的性质、检测的目,使查找判断更有针对性,因此能够对被检测数据集合进行快速、准确判断。本发明还提供一种目标文件的确定装置。
文档编号G06F17/30GK101013445SQ20071008023
公开日2007年8月8日 申请日期2007年2月14日 优先权日2007年2月14日
发明者白杰, 李薇, 鲁征宇 申请人:白杰, 李薇, 鲁征宇
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1