病毒检测系统的制作方法

文档序号:6427352阅读:174来源:国知局
专利名称:病毒检测系统的制作方法
技术领域
本发明涉及一种防病毒系统,具体来说,涉及一种病毒消除系统。
背景技术
计算机病毒是当今计算机领域的主要问题。例如,计算机病毒可以是一个程序(或某些代码单元、例如,计算机对其做出响应的指令,如代码块、代码元素或代码段),该程序可以附加到附着于其他程序和/或对象,可以复制其本身,和/或可以在计算机系统上执行未经请求的或恶意的操作。虽然这里所描述的是涉及计算机病毒,但是本发明可以应用于能够修改计算机资源的一个或多个部份的任何类型的恶意代码。
优选情况下,防病毒系统查找或检测病毒,然后修复受影响的文件、内存、启动扇区等等。病毒用来使对它们的检测和消除复杂化的技术之一是对病毒体的一部分或将要受感染的文件进行加密,以便防病毒系统比较难以对它进行解密,并难以修复文件。这使得防病毒系统比较难以检测并将感染过程返回,以纠正文件。
某些病毒执行的加密可能涉及对病毒代码或受害文件数据执行的复杂数学或逻辑运算,使得病毒代码难以辨认,从而对病毒代码难以有时不可能进行分析和识别。
此外,由于加密可以依赖于某些数字密钥,该数字可以从一个受感染对样本更改为另一个样本,因此模式匹配可能不足以识别病毒体。防病毒引擎应该能够首先将病毒解密,然后才能将它与已知病毒的数据库进行匹配,或者以别的方式对它进行分析。
为了执行其计划的用途,病毒本身应该能够解密代码或数据的加密部分,以便它可以使用这些部分。防病毒系统有时可以分析病毒代码的负责解密的部分。然后,防病毒系统可以使用病毒本身用来解密加密部分的相同解密算法,以便防病毒系统可以继续对病毒文件进行进一步的分析。这有时可以通过在一个非常安全的环境中模拟病毒体来进行,该安全环境不允许病毒可能采取的任何恶意操作在实际计算机上执行,而只在防病毒系统模拟的“虚拟机”上进行。
加密技术使用一个密钥,该密钥用于将原始的代码或数据转换为难辨认的加密状态。密钥通常是某个整数或实数,但也可以是某个字符串。密钥用于对数据进行加密,并可以被病毒用来解密已经加密的数据,否则,数据对于病毒无用。
通常,病毒将密钥存储在被感染的文件内的某处。在这样的情况下,防病毒系统可以从被感染的文件中来检索它,并使用它来解密被病毒加密的数据的所需要的部分。
新型的破坏性的病毒在不断地涌现。例如,出现了一种被称为Win32/Magistr.B.Worm的病毒。此病毒虽然相对比较检测到,但是却难以删除。这种类型的病毒对宿主文件的入口点代码的一部分进行加密。为了有效地删除这种类型的病毒,并使代码得以恢复,应该对这种代码进行解密。然而,对于这种类型病毒,用于加密的密钥不像某些病毒那样存储在病毒体内。相反,这种类型的病毒的加密密钥是使用Windows操作系统中的计算机的名称计算出来的。在将被感染的文件复制到另一个计算机的情况下,当被感染的计算机名未知时,很难检索该密钥,从而难以将代码解密。
相应地,诸如Win32/Magistr.B之类的病毒以不同的方式使用加密技术。在将病毒体本身加密的同时,为使检测复杂化,病毒还将原始文件的一部分加密,以使消除过程复杂化,可能使用计算机名作为密钥。防病毒系统应该能够将原始文件的那一部分解密,以便将该文件完全恢复到其被感染前的状态。
具体来说,如上所述,病毒有时将用于将文件的加密部分加密的密钥存储在同一个被感染文件内。然而,诸如Win32/Magistr.B之类的病毒,不将加密密钥存储在文件中,而是使用它从系统本身检索到的“计算机名”作为加密密钥。这就寄希望于计算机名未改变,对于给定计算机保持不变,并可以安全地用于将在该计算机上感染的文件中的数据解密。
问题是,当防病毒系统需要纠正这样的被感染文件的(并因此需要将其一部分解密)时,它还需要访问文件在其上被感染的计算机的计算机名,以获取密钥,并能够将数据的加密的那一部分解密,以便可以将它们恢复。然而,检索密钥并使用它是非常危险的,并不总是可行的因为当防病毒系统扫描网络上的文件时,防病毒系统程序本身可能位于不同的计算机上(例如,网络服务器),而不是位于被感染的工作站计算机本身上。相应地,防病毒系统不能总是可靠地检索到被感染的计算机的计算机名。
另一个问题是,当被感染的文件移出它被感染所在的计算机(例如,发送到防病毒小组进行分析,或者计算机名被受感染计算机上的用户改变),可能无法确定原始计算机的名称。

发明内容
说明了一种方法、系统和计算机代码,它们用于消除计算机系统中存在的加密的计算机病毒,并包括对加密数据进行分析,以确定加密数据中的至少一个最频繁出现的加密字节,基于最频繁出现的加密字节和原始数据的对应的预期原始字节来计算加密密钥,并使用加密密钥来将加密数据解密,以将加密数据恢复为原始数据。
检测和消除计算机系统中的计算机病毒的方法包括扫描计算机系统以检测计算机病毒,确定是否将加密数据解密以便消除在计算机系统中检测到的计算机病毒,分析加密数据以确定加密数据中的至少一个最频繁出现的加密字节,当判断将要对加密数据进行解密时,确认最频繁出现的加密字节是主导加密字节,其中,主导加密字节在加密数据的其他字节中在统计上占主导地位,基于主导加密字节和原始数据的对应的预期原始字节来计算加密密钥,并使用加密密钥来将加密数据解密,以将加密数据恢复为在被计算机病毒加密之前计算机系统中存在的原始数据。
一种用于检测和消除计算机系统中的计算机病毒的系统包括扫描设备,用于扫描计算机系统以检测计算机病毒,解密控制设备,用于判断在检测到计算机病毒之后是否对计算机系统中的加密数据进行解密,加密字节处理设备,用于分析加密数据,以当判断将要对加密数据进行解密时,确定加密数据中的至少一个最频繁出现的加密字节,主导字节控制器,用于判断最频繁出现的加密字节是否为主导加密字节,其中,主导加密字节在加密数据中在统计上占主导地位,加密密钥计算设备,用于基于主导加密字节和原始数据的对应的预期原始字节来计算加密密钥,解密设备,用于基于加密密钥来解密加密数据的每一个字节,以将加密数据恢复为在被计算机病毒加密之前计算机系统中存在的原始数据。
一种可被计算机系统读取的程序存储介质,包含可由计算机系统执行以进行抽彩的指令的程序,包括下列步骤扫描计算机系统以检测计算机病毒,确定是否将加密数据解密以便消除在计算机系统中检测到的计算机病毒,分析加密数据以确定加密数据中的至少一个最频繁出现的加密字节,当判断将要对加密数据进行解密时,确认最频繁出现的加密字节是主导加密字节,其中,主导加密字节是在加密数据的其他字节中在统计上占主导地位,基于主导加密字节和原始数据的对应的预期原始字节来计算加密密钥,并使用加密密钥来将加密数据解密,以将加密数据恢复为在被计算机病毒加密之前计算机系统中存在的原始数据。
一种将被计算机病毒感染的计算机系统中的加密数据解密的方法包括下列步骤判断是否将要对加密数据进行解密,分析加密数据以确定加密数据中的至少一个最频繁出现的加密字节,当判断将要对加密数据进行解密时,确认最频繁出现的加密字节是主导加密字节,其中,主导加密字节在加密数据的其他字节中在统计上占主导地位,基于主导加密字节和原始数据的对应的预期原始字节以及它们之间的已知关系来计算加密密钥,并使用加密密钥来将加密数据解密,以将加密数据恢复为在被计算机病毒加密之前计算机系统中存在的原始数据。
附图简要说明通过参考下列详细描述并参考附图,可以对本发明和其中的许多优点有一个比较完整的认识,其特征在于

图1是根据本发明的一个实施例的用于消除病毒的系统的流程图;图2是根据本发明的一个实施例的用于检测和消除计算机病毒的方法的流程图;图3是说明根据本发明的一个实施例的用于检测和消除计算机病毒的系统的方框图;图4是能够实现根据本发明的一个实施例的用于检测和消除计算机病毒的方法和系统的计算机系统的方框图;以及图5是根据本发明的一个实施例的将计算机系统中的加密数据解密的方法的流程图。
具体实施例方式
在描述附图中说明的本发明的优选实施例时,为了清楚起见,使用了特定的术语。然而,本发明不仅限于如此选择的特定的术语,应该理解,每一个特定元素都包括按类似方式操作的所有技术等效物。
本系统能够扫描并检测病毒,包括用于消除它在文件、内存、磁盘启动扇区、其他对象等等中发现的感染的机制或修复过程。
优选情况下,该系统扫描计算机系统的文件、内存、磁盘启动扇区以检测病毒。可以使用各种扫描方法来检测文件中是否存在病毒。系统可以利用签名扫描,在这种方法中,系统扫描是否存在病毒签名,病毒签名是病毒留在被感染文件中的独特的十六进制代码集。可以利用启发式扫描来检测未知病毒,即,其病毒签名还未知的病毒。启发式扫描涉及用于检测类似于病毒的行为模式的人工智能技术。可以使用完整性检查来判断文件的大小是否由于在该文件中存在病毒而增大。此外,系统可以监视程序的某些操作(如调用函数),以检测可疑的程序行为。此外,系统还可以监视程序系统调用,以检测和停止表示存在病毒的系统调用。尽管上文讨论了多种扫描和检测技术,但是本发明不仅限于使用这些技术,但包括用于探测病毒的任何技术。
一旦检测到了病毒,主要的问题是消除病毒,并修复病毒所进行的任何损坏。修复过程的目的试图将诸如文件、内存或磁盘启动扇区等等之类的对象尽可能地恢复到其被感染之前的初始状态,如此给检测到被感染的对象的消毒。
修复过程在系统识别或检测到病毒之后运行,而用户要求防病毒系统修复被感染的对象作为对来自防病毒系统的警报的响应或者通过给防病毒系统发出指令,以无需提示自动修复发现被感染的对象。一般来说,此选项是用户或系统管理员预先选择的。
修复过程由一组可以按顺序执行的指令构成。这些指令可以对文件执行各种更改,如将一个文件中的数据块从一个地方复制到另一个地方,或者,将解密数据从内部缓冲区复制到一个文件中的各个地方(例如,在病毒将对于修复过程很关键的某些数据加密的情况下)或剪切包含病毒代码的文件的片段。
修复过程指令可以作为一组以C编写的快速执行的函数来实现,该组函数可以帮助修复过程指令完成复杂的修复过程。
如上所述,可以基于病毒签名来检测病毒。在这种情况下,还可以轻松地识别已经检测到了哪些特定的病毒,因为病毒签名对于每一个病毒都是唯一的。那么,在某种程度上简化了修复过程,因为病毒的身份是已知的,如此,病毒所造成的损坏的类型是已知的。否则,可能需要分析病毒,以便判断病毒可能会产生什么样的损坏。
如上所述,病毒常常将病毒体的一部分和被感染的文件的一部分加密,以便使病毒检测和消除过程复杂化。例如,Win32/Magistr.B.Worm将被感染的文件的入口点代码加密,如此,使从被感染文件中删除病毒以及修复病毒对文件所造成的任何损坏的过程复杂化。Win32/Magistr.B.Worm病毒进一步使删除和修复过程复杂化的方式在于,它不将加密密钥存储在被感染的文件中(在那里可以由系统检索到),而是使用计算机名来生成加密密钥。这就提出了一个问题,例如,当病毒检测和消除系统程序在服务器或被感染计算机系统之外的计算机上运行时或者当病毒将要发送给防病毒小组进行分析时。在这两种情况下,病毒检测和消除系统可能无法获得被感染的计算机的计算机名。
尽管上述问题看起来不可能解决,因为给防病毒系统提供了由未知密钥加密的未知数据,但是,本系统能够使用成功率很高的概率算法来确定密钥。本系统能够基于在组合的原始代码中某些字节的出现概率确定未知的加密密钥。
该算法基于这样的认识某些系统可能包括一些字节,这些字节具有某些形式,可以被确定和用于确定病毒所使用的密钥。例如,英特尔处理器的32位可执行代码包含许多“零”(值“零”的字节),和值255的字节。例如,这些类型的字节的百分比可能非常高,甚至可以超过所有字节的60%。此外,值为零的字节常常成对出现,这就可以允许这些字节比较容易地被检测到,从而有助于本系统和方法。值得注意的是,对于其他处理器,根据被病毒感染的对象的类型,带有不同值的字节可以是最常发生的字节,本发明不仅限于与任何特定的处理器或对象一起使用。
本系统和方法可以使用这里简称为“概率加密密钥猜测”的系统。病毒常常使用的加密方法是用一个恒定的密钥对数据的每一个字节执行逻辑XOR运算。相应地,使用在加密之前包含零的字节将在加密之后包含所使用的密钥的值这一知识。
由于零是在原始数据中最常看到的值,加密数据中最常看到的值将是防病毒系统查找的密钥的值。这种情况为真的概率与零为原始数据中最常使用的值的概率相同,非常高。事实上,在本系统中,使用概率密钥猜测来识别原始数据的字节。结果,已知加密数据可以与“已知”或其中加密方法(利用未知加密密钥对原始数据执行逻辑XOR操作)也已知的原始数据的至少预期字节进行比较。如此,可以确定加密密钥,一旦确定,便可以基于已知的加密方法应用于其余的加密数据以恢复原始数据。
如此,本系统可以统计加密数据中每一个字节的出现次数,并选择最频繁使用的那一个。在此示例中,这将是密钥。
具体来说,通过分析EXE入口点代码,很清楚,在代码中00(零)和FF(-1)字节比其他字节多,特别是在EXE32位和较高位中,因为数字与所使用的位数对准,小的数字用零(对于正数)和-1(对于负数)填充。
如果用于加密的方法是已知的,系统可以计算零和-1字节的加密值,然后查找那些值,并据此计算用于加密的密钥。
例如,如果密钥值是2,加密的方法是将密钥值与代码中的每个字节相加,这就意味着,是零的每个字节现在是2(因为0+2=2),是-1的每个字节现在是1(因为-1+2=1)。在这样的加密中,1和2很可能比其他字节多。那么,查找密钥相对比较容易。1和2占主导地位。显然,密钥是2,因为1-X=-1,2-X=0,X=2。如此,找到了密钥。
如图1所示,在开始之后(步骤S2),判断EXE入口点是否需要解密。在此示例中,加密方法是已知的,加密密钥是未知的(步骤S4)。在步骤S6中,找到了加密代码中最占主导地位的字节。然后,就占主导地位的字节在统计上是否比其他字节出现次数更加频繁进行判断(取决于EXE位类型16、32、64)(步骤S8)。如果在统计上判断认为某些字节占主导地位不安全(步骤S10),则该过程结束(步骤S16)。如果认为某些字节占主导地位是安全的,则假设它们最初是0和-1,则如上所述相应地对占主导地位的字节执行相反的加密方法(步骤S12),并确定密钥。例如,为确定密钥,可以使用下列公式F(加密字节密钥)=解密字节(0,-1)。然后,使用密钥将代码解密(步骤S14),过程结束(步骤16)。
虽然上文的讲述是在假设加密方法执行XOR运算的情况下进行的,但是,本系统和方法不仅限于此。即,本系统和方法可以用于任何类型的在其中可以确定加密方法并可以执行解密的病毒。例如,可以采用各种加密方法,可以使用本系统来确定每一种加密方法的有效的解密密钥,直到找到正确的加密类型和对应的密钥。此外,虽然上文是就32位可执行代码(其中0字节和/或255字节可能占主导地位)进行描述的,对于任何类型的可执行代码(其中,已知,或者可以判断,对于特定的已知值,足够百分比的字节是已知的),都可以实现本系统。
图1的流程图描述了用于修复病毒的一种方法,该方法在下列特定情况下使用,已知,文件、内存、磁盘启动扇区的原始数据已知被0和-1值占主导地位。然而,本方法和系统不仅限于这种情况。
图2说明了根据本发明的检测和消除病毒的比较一般的方法。在步骤S20中,扫描计算机系统,以检测是否存在计算机病毒。在步骤S21中,判断在检测到病毒之后是否要将加密数据解密。如果数据不必解密(在步骤S21中为“否”),则可以执行进一步的处理(步骤S26)。否则,在步骤S22中,确定加密数据中的最频繁出现的加密字节。在步骤S23中,判断最频繁出现的加密字节是否为主导加密字节(其中,主导加密字节在加密数据中在统计上占主导地位)。如果没有确定主导加密字节,则可以执行进一步的处理(步骤S26)。基于主导加密字节和原始数据的对应的预期原始字节来计算加密密钥(步骤S24)。然后使用加密密钥来将加密数据的每一个字节解密,并利用已知关系和加密密钥来将加密数据恢复为原始数据(步骤S25)。然后,可以使用恢复的原始数据进行进一步的处理(步骤S26)。
在扫描步骤(步骤S20)中,可以利用上文描述的任何扫描方法来检测在文件、计算机系统的内存、磁盘启动扇区中是否存在病毒。如果在扫描步骤中没有检测到病毒,则可以应用补充处理(步骤S26)。
在判断步骤S21中,就是否将加密数据解密进行判断。例如,如果在步骤S20中检测到了病毒,但病毒是一个已知病毒,可能不需要解密就可以消除,可能不需要对加密数据进行解密。如果不需要进行解密(在步骤S21中为“否”),则可以执行进一步的处理(步骤S26)。下面将详细讨论此进一步的处理。如果需要对加密数据进行解密(在步骤S21中为“是”),则在步骤S22中对加密数据进行分析。
在步骤S22中,对加密数据进行分析,以识别加密数据的最频繁出现的字节。简单来说,这是通过统计加密数据的每一个字节的出现次数来实现。即,统计加密数据中的特定的字节的每一次出现。然后,确定加密数据的最频繁出现的字节。
在步骤23中,就最频繁出现的加密字节是否为主导加密字节进行判断。即,基于加密数据的每一个字节的统计,判断最频繁出现的加密字节是否占加密数据的足够的百分比,以在统计上在加密数据中占主导地位。如果没有发现主导加密字节(在步骤S23中为“否”),则可以进行进一步的处理(步骤S26)。在这种情况下,概率加密密钥猜测可能不能提供可靠的加密密钥,因为没有找到主导加密字节。在找到主导加密字节的情况下(在步骤S23中为“是”),可以将主导加密字节与原始数据的对应的预期原始字节进行比较(步骤S24)。
在步骤S24中,基于主导加密字节和原始数据的对应的预期原始字节之间的已知关系来计算加密密钥。已知关系可以是病毒利用的加密方法。将主导加密字节与原始数据的对应的预期原始字节进行比较。一般来说,原始数据是指在被计算机病毒加密之前文件、内存、磁盘启动扇区中存在的数据。例如,在图1中描述的方法中,判断1和2是主导加密字节。由于0和-1预计是原始数据的最占优势的字节,0和1是对应的预期原始字节。如上所述,根据情况,可以预期不同的字节在原始数据中最频繁地出现。许多病毒所使用的加密方法是借助于加密密钥对原始数据的每一个字节进行逻辑XOR运算,加密密钥保持不变。如此,预期的原始字节+加密密钥=加密数据的主导加密字节。在有一个以上的主导加密字节的情况下,将会有一个以上的对应着预期原始字节,然而,加密密钥保持不变,以便加密密钥是使对于数据的每一个主导加密字节和原始数据的每一个对应的预期原始字节来说上述等式都为真的值。例如,如上文参考图1所描述的,主导加密字节是1和2。对应的预期原始字节预计分别是-1和0。加密密钥是使下列两个等式都成立的值-l+X=1和0+X=2。如此,如上所述,加密密钥是2。值得注意的是,对应的预期原始字节是0,此计算步骤特别简单,因为加密密钥将是主导加密字节。一旦计算了加密密钥,可以将加密数据解密(步骤S26)。
在步骤S25中,由于加密密钥现在是已知的,加密方法也已知,可以通过简单地颠倒加密方法并应用加密数据和加密密钥,将加密数据解密,以恢复原始数据。然后,恢复的原始数据可以在进一步的处理中利用(步骤26)。
进一步处理(步骤S26)是指检测和消除病毒所需的任何其他处理。例如,在扫描步骤(S20)中没有检测到病毒的情况下,进一步处理可以是指扫描另一个文件、内存或磁盘启动扇区。或者,进一步处理可以是指使用不同的扫描方法再次开始处理。如果没有必要将数据解密(在步骤S21中为“否”),进一步的处理可以是如上所述的任何消除处理,如复制数据的一部分,删除数据的一部分。在加密数据不存在主导加密字节的情况下(在步骤S23)的情况下,补充处理可以是指应用某些其他解密系统,如强力方法,而没有本系统的概率加密密钥推测的优点。在步骤S25中在将加密数据解密以恢复原始数据之后需要补充处理的情况下,进一步的处理还可以是指其他消除处理,如对恢复的原始数据分析病毒或从文件、内存、磁盘启动扇区等等删除病毒之类的操作。尽管上文讨论了特定的补充处理步骤,但是,应该理解,本发明不仅限于此,补充处理可以是指检测和消除计算机病毒的任何处理。
这里所描述的方法可以通过用于检测和消除计算机病毒的系统来实现。下面将参考图3对用于检测和消除计算机病毒的系统进行描述。
提供了一个扫描设备30,用于扫描文件、内存、启动扇区等等,以检测是否存在计算机病毒或其他恶意代码。扫描设备可以实现上文所提及的任何或所有扫描方法,或任何其他所需要的扫描方法。如果没有检测到病毒,补充处理设备36可以应用补充处理,以便检测和消除计算机病毒。下面将详细描述补充处理设备36。
解密控制设备31判断是否应该将文件、内存、磁盘启动扇区等等中检测到的加密数据进行解密,如果扫描设备30检测到了计算机病毒,但不需要解密就可以消除计算机病毒。如果不需要解密,则可以指示补充处理设备36以为文件、内存、磁盘启动扇区等等中的数据提供补充处理。如果需要解密,则由加密字节处理设备32对加密数据进行分析。
加密字节处理设备32分析加密数据,以判断加密数据中的最频繁出现的加密字节。简单来说,加密字节处理设备32只将加密数据的每一个特定的字节的每一次出现相加。加密数据的最频繁出现的特定的字节是加密数据中最频繁出现的加密字节。
主导字节控制器33确认加密数据中的最频繁出现的加密字节是否为主导加密字节。即,主导字节控制器33判断加密字节处理设备32所提供的最频繁出现的加密字节是否在统计上在加密数据中占主导地位。如果是这种情况,则可以将主导加密字节与加密密钥计算设备34中的原始数据的对应的预期原始字节进行比较。如果主导加密字节在统计上不占主导地位,则概率加密密钥猜测可能不提供加密密钥。然后,可以在补充处理设备36中对加密数据进行补充处理。
加密密钥计算设备34基于加密数据的最主导的加密字节和原始数据的对应的预期原始字节之间的已知关系来计算加密密钥。已知关系可以是病毒所使用的加密的方法。如上所述,病毒常常借助于加密密钥并对原始数据的每一个字节进行逻辑XOR运算来产生加密数据。如此,预期的原始字节+加密密钥=主导加密字节。通过使用此已知关系,加密密钥计算设备34确定加密密钥,因为原始数据的对应的预期原始字节是已知的,加密数据的主导加密字节是已知的。如上所述,关系与在有多个主导加密字节从而有多个数据的对应的预期原始字节的情况下对于确定加密密钥同样有用。在这种情况下,加密密钥只不过是使加密数据的每一个主导加密字节和其对应的预期原始字节的关系为真的值。
一旦计算了加密密钥,解密设备35将加密数据解密以恢复被计算机病毒感染之前文件、内存、磁盘启动扇区中存在的原始数据。解密是使用加密密钥和已知关系进行的。具体来说,加密密钥是在解密方法中利用的,解密方法和加密方法相反,由已知关系代表。如此,数据的每一个加密字节都可以恢复到被计算机病毒加密之前存在的原始数据。恢复的原始数据可以接收补充处理设备36的进一步处理。
补充处理设备36提供了广泛的处理选项。例如,当扫描设备30没有检测到病毒时,进一步的处理可以包括扫描另一个文件、内存或磁盘启动扇区。在发现病毒的情况下,但根据解密控制器31判断不需要对加密数据进行解密,补充处理通常包括如上所述的任何消除过程,如,复制或从被感染的文件剪切数据。当主导字节控制器33没有发现加密数据的主导加密字节时,即,当加密数据中的最频繁出现的加密字节在加密数据中在统计上不占主导地位时,补充处理可以包括任何其他解密方法。具体来说,补充处理可以包括判断加密密钥的另一种方法,以便可以将加密数据解密。在解密设备35将加密数据解密之后,恢复的原始数据可以接收补充处理,如分析病毒以了解其操作或任何其他消除处理。尽管叙述了这些具体的补充处理技术,但是本发明不仅限于此,补充处理可以应用于帮助探测和消除计算机病毒的任何处理过程。
上文描述的方法和系统可以在通用数字计算机、个人计算机(PC)或网络服务器上实现。图4显示了一个能够实现本系统和方法的计算机系统的示例。一般称为系统400的计算机系统可以包括中央处理单元(CPU)402、内存404、打印机接口406、显示单元408、LAN(局域网)数据传输控制器410、LAN接口412、网络控制器414、内部总线416、带有链接422的数据库420,以及一个或多个输入设备418,如键盘、鼠标等等。自然,其他组件可以包括在计算机系统400中,某些组件可以不需要。系统400还代表计算机系统的一个示例,可以向该计算机系统中应用用于检测和消除计算机病毒的系统和方法,以检测和消除系统400中存在的任何计算机病毒。
如上所述,防病毒系统通常是在不同于正在检查其中的计算机病毒的计算机上实现的。例如,网络服务器可以运行防病毒程序以检查在网络的所有工作站上是否存在病毒。或者,网络上的每一个工作站都可以本地独立地运行防病毒系统。本发明的方法和系统也可以在电子邮件服务器上实现,以检测和消除电子邮件中存在的病毒,以避免网络的感染或网络上的单个工作站的感染。本发明适用于所有这些情况。
值得注意的是,这里所描述的用于将加密数据解密的概率密钥猜测方法可以在许多当前现有的防病毒系统中使用,以增强可用的消除病毒的处理过程,否则可以在这里所描述的独立的防病毒系统中实现。图5说明了根据本发明的一个实施例的将计算机系统中的加密数据解密的方法。在开始该方法之后(步骤S50),判断是否需要对加密数据进行解密(步骤S52)。在步骤S54,分析加密数据,以判断加密数据的最频繁出现的加密字节。在步骤56,确认最频繁出现的加密字节是否为主导加密字节。在步骤58,基于主导加密字节和原始数据的对应的预期原始字节计算加密密钥。在步骤60,基于加密密钥将加密数据解密。
如果不需要解密(在步骤S52中为“否”),则该方法可以结束(步骤S62)。如果最频繁出现的加密字节不是主导加密字节,则该方法可以结束(步骤S62)。在这种情况下,概率密钥猜测可能不会提供可靠的加密密钥,如此可能不能用于将加密数据解密。请注意,尽管在步骤S62中使用了术语“结束”,但这不一定表明将不对加密数据进行进一步的处理,而只是表明,不需要根据图5所示的方法的将数据解密的方法来将计算机病毒加密的数据解密。
步骤50-62代表了参考图1详细描述的方法的比较通用的实现方式,基本上类似于上文详细描述的步骤31-37,这里就不再赘述。
本发明可以使用根据本说明书的原理设计的通用数字计算机和/或服务器来方便地实现。相应的软件代码可以由熟练的程序员基于本发明的原理来容易地编写出来。本发明还可以通过准备专用集成电路或通过将常规组件的相应的网络互连来实现。
可以根据上述原理对本发明进行各种修改。因此,可以理解,在所附权利要求的范围内,可以以不同于这里所描述的方法来实施。
权利要求
1.一种检测和消除计算机系统中的计算机病毒的方法,包括扫描计算机系统以检测计算机病毒;判断是否将加密数据解密以便消除在计算机系统中检测到的计算机病毒;当判断将要对加密数据进行解密时,分析加密数据以确定加密数据中的至少一个最频繁出现的加密字节;确认最频繁出现的加密字节是主导加密字节,其中,主导加密字节在加密数据的其他字节中在统计上占主导地位;基于主导加密字节和原始数据的对应的预期原始字节来计算加密密钥;以及使用加密密钥来将加密数据解密,以将加密数据恢复为在被计算机病毒加密之前计算机系统中存在的原始数据。
2.根据权利要求1所述的方法,进一步包括应用补充处理,以便检测和消除计算机系统中的计算机病毒。
3.根据权利要求2所述的方法,其特征在于,应用补充处理的步骤将对恢复的原始数据应用补充处理。
4.根据权利要求2所述的方法,其特征在于,当扫描步骤不能检测到计算机病毒时,执行应用补充处理的步骤。
5.根据权利要求2所述的方法,其特征在于,当判断步骤判断不执行将加密数据解密的步骤时,执行应用补充处理的步骤。
6.根据权利要求2所述的方法,其特征在于,当确认步骤指出最频繁出现的加密字节不是主导加密字节时,执行应用补充处理的步骤。
7.根据权利要求1所述的方法,其特征在于,对应的预期原始字节是一个预期在原始数据中最频繁出现的原始数据的字节。
8根据权利要求7所述的方法,其特征在于,基于主导加密字节和对应的预期原始字节之间的已知关系确定加密密钥,其中,已知关系由计算机病毒利用的加密方法来进行定义。
9.根据权利要求8所述的方法,其特征在于,解密步骤是通过对与加密方法的相反的解密方法应用加密密钥和加密数据来执行的。
10.一种检测和消除计算机系统中的计算机病毒的方法,包括扫描设备,用于扫描计算机系统以检测计算机病毒;解密控制设备,用于判断在检测到计算机病毒之后是否对计算机系统中的加密数据进行解密;加密字节处理设备,用于分析加密数据,以当判断将要对加密数据进行解密时,确定加密数据中的至少一个最频繁出现的加密字节;主导字节控制器,用于判断最频繁出现的加密字节是否为主导加密字节,其中,主导加密字节在加密数据中在统计上占主导地位;加密密钥计算设备,用于基于主导加密字节和原始数据的对应的预期原始字节来计算加密密钥;以及解密设备,用于基于加密密钥来解密加密数据的每一个字节,以将加密数据恢复为在被计算机病毒加密之前计算机系统中存在的原始数据。
11.根据权利要求10所述的系统,进一步包括补充处理设备,用于执行补充处理,以便检测和消除计算机病毒。
12.根据权利要求11所述的系统,其特征在于,补充处理设备对恢复的原始数据执行补充处理。
13.根据权利要求11所述的系统,其特征在于,当计算机病毒不能被扫描设备检测到时,补充处理设备执行补充处理。
14.根据权利要求11所述的系统,其特征在于,当解密控制设备指出不执行将加密数据解密的步骤时,补充处理设备执行补充处理。
15.根据权利要求10所述的系统,其特征在于,当主导字节控制器判断最频繁出现的加密字节不是主导加密字节时,补充处理设备执行补充处理。
16.根据权利要求10所述的系统,其特征在于,对应的预期原始字节是一个在被计算机病毒加密之前计算机系统中存在的原始数据中预期最频繁出现的原始数据的字节。
17.根据权利要求10所述的系统,其特征在于,加密字节分析设备统计加密数据的每一个字节的出现次数,以确定加密数据中的至少一个最频繁出现的加密字节。
18.根据权利要求10所述的系统,其特征在于,加密密钥计算设备根据已知关系比较主导加密字节与对应的预期原始字节,并使用已知关系计算加密密钥。
19.根据权利要求18的系统,其特征在于,已知关系基于计算机病毒将数据加密所使用的加密方法。
20.根据权利要求10所述的系统,其特征在于,解密设备基于加密密钥和与计算机病毒将数据加密所使用的加密方法相反的解密方法,将加密数据的每一个字节解密以恢复原始数据。
21.一种可被计算机系统读取的程序存储介质,包含可由计算机执行的代码,包括用于扫描计算机系统以检测计算机病毒的代码;用于确定是否将加密数据解密以便消除在计算机系统中检测到的计算机病毒的代码;代码,用于当判断将要对加密数据进行解密时,分析加密数据以确定加密数据中的至少一个最频繁出现的加密字节;代码,用于确认最频繁出现的加密字节是主导加密字节,其中,主导加密字节在加密数据的其他字节中在统计上占主导地位;代码,用于基于主导加密字节和原始数据的对应的预期原始字节来计算加密密钥;以及代码,用于使用加密密钥来将加密数据解密,以将加密数据恢复为在被计算机病毒加密之前计算机系统中存在的原始数据。
22.一种将被计算机病毒感染的计算机系统中的加密数据解密的方法,包括判断是否将要对加密数据进行解密;当判断将要对加密数据进行解密时,分析加密数据以确定加密数据中的至少一个最频繁出现的加密字节;确认最频繁出现的加密字节是主导加密字节,其中,主导加密字节在加密数据的其他字节中在统计上占主导地位;基于主导加密字节,原始数据的对应的预期原始字节,以及它们之间的已知关系来计算加密密钥;以及使用加密密钥来将加密数据解密,以将加密数据恢复为加密之前计算机系统中存在的原始数据。
23.一种消除计算机系统中存在的加密计算机病毒的方法,包括对加密数据进行分析,以确定加密数据中的至少一个最频繁出现的加密字节;基于最频繁出现的加密字节和原始数据的对应的预期原始字节来计算加密密钥;以及使用加密密钥来将加密数据解密,以将加密数据恢复为原始数据。
24.根据权利要求23所述的方法,进一步包括确认最频繁出现的加密字节是主导加密字节,主导加密字节在加密数据的其他字节中在统计上占主导地位。
25.一种检测和消除计算机系统中的计算机病毒的方法,包括加密字节处理设备,用于对加密数据进行分析,以确定加密数据中的至少一个最频繁出现的加密字节;加密密钥计算设备,用于基于最频繁出现的加密字节和原始数据的对应的预期原始字节来计算加密密钥;以及解密设备,使用加密密钥来将加密数据解密,以将加密数据恢复为原始数据。
26.根据权利要求25所述的系统,进一步包括主导字节控制器,用于判断最频繁出现的加密字节是否为主导加密字节,其中,主导加密字节在加密数据中在统计上占主导地位。
27.一种可被计算机系统读取的程序存储介质,包含可由计算机执行的代码,包括代码,用于对加密数据进行分析,以确定加密数据中的至少一个最频繁出现的加密字节;代码,用于基于最频繁出现的加密字节和原始数据的对应的预期原始字节来计算加密密钥;以及代码,用于使用加密密钥来将加密数据解密,以将加密数据恢复为原始数据。
28.根据权利要求27所述的程序存储介质进一步包括代码,用于确认最频繁出现的加密字节是主导加密字节,主导加密字节在加密数据的其他字节中在统计上占主导地位。
全文摘要
本发明公开了一种病毒检测系统。一种消除计算机系统中存在的加密计算机病毒的方法包括对加密数据进行分析,以确定加密数据中的至少一个最频繁出现的加密字节,基于最频繁出现的加密字节和原始数据的对应的预期原始字节来计算加密密钥,并使用加密密钥来将加密数据解密,以将加密数据恢复为原始数据。
文档编号G06F21/00GK1571947SQ02817850
公开日2005年1月26日 申请日期2002年9月13日 优先权日2001年9月14日
发明者卡门纳·伊兹哈克, 尼曼·维塔利, 马利万楚科·塔拉斯 申请人:计算机联合思想公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1