被病毒程序破坏的数据恢复方法、装置及病毒清除方法

文档序号:6554558阅读:297来源:国知局

专利名称::被病毒程序破坏的数据恢复方法、装置及病毒清除方法
技术领域
:本发明涉及一种被病毒程序破坏的数据恢复方法、装置及病毒程序清除方法。
背景技术
:现有的有害计算机程序的清除方法所采用的清除方式基本采用“一刀切”的处理方法,以下举例说明该方法适用实例的几种具体步骤第一,如果一个计算机系统存在的某一个文件本身就是一个病毒程序的可执行体,即该文件是一个纯粹的病毒程序,则当确认该文件是病毒程序时,直接删除该文件。第二,如果病毒程序将自身附加到宿主程序中,例如附加到宿主程序的尾部(如此一来,宿主程序就会增大),并修改宿主程序的入口点来使病毒程序得到激活,则需要反病毒的杀毒程序找出病毒程序附加至宿主程序尾部或其他位置的插入点,从而将病毒程序和宿主程序分开,并删除病毒程序即可;否则就只能将整个宿主程序删除。第三,如果病毒程序使用特殊的感染技巧能够使宿主大小及宿主文件头上的入口点保持不变,则现有的反病毒程序只能将其删除,而无法进行深入的分析以及宿主程序的恢复。例如对于PE(PortableExecutable)文件格式来说,Windows中的exe文件,dll文件,都是PE格式。PE文件由多个节构成,每个节之间留有按簇大小对齐后的空洞,病毒程序如果足够小则可以将自身分成几份并分别插入到每个节最后的空隙中,这样就不必额外增加一个节,因而文件大小保持不变。近期出现的加壳型病毒程序,即将宿主程序包裹起来但不改变宿主程序的文件名以及其他属性,系统运行宿主程序时,该病毒程序先将所述宿主程序释放再开始运行。对于上述的几种病毒程序,现有的反病毒程序确定宿主程序带有病毒程序时,只能将其删除,而无法进行深入的分析以及宿主程序的恢复。如果需要清除的计算机病毒程序感染了压缩文件。例如Win32.crypto病毒程序就可以感染ZIP,ARJ,RAR,ACE,CAB等诸多类型的压缩文件。这些病毒程序的代码中含有对特定文件类型的压缩文件,例如ZIP或ARJ类型的压缩文件解压缩和压缩的代码段,所述代码段一般先把压缩文件中的被压缩的内容解压缩出来,然后对解压缩出来的文件中的合适的文件进行感染,最后再将感染后的文件重新压缩回去,同时修改压缩文件头部的校验和,使所述校验和的内容不变,或者采用其他手段使该压缩了已经被感染了病毒程序文件的压缩文件没有被修改或感染的痕迹。对于这样的病毒程序,现有的病毒程序的清除方法要么将压缩文件中感染了病毒程序的文件删除,要么由于压缩文件头部的校验和没有变化根本查不出来。可见,现有的计算机病毒程序的清除方法在清除病毒程序时,对被严重破坏的宿主程序,或者被破坏严重的数据不能进行恢复,从而使清除病毒程序后的计算机无法尽可能恢复到感染病毒程序以前的状态。
发明内容鉴于上述问题,本发明所要解决的技术问题是提供一种被病毒程序破坏的数据的恢复方法、装置以及病毒程序的清除方法,所述方法能够比较可靠地定位病毒程序,并在清除病毒程序的同时最大限度地恢复计算机系统中被感染和破坏的数据。为解决上述技术问题,本发明提供了一种被病毒程序破坏的数据恢复方法,包括获得病毒程序的可执行的破坏性行为操作步骤;建立所述破坏性行为操作步骤对应的逆行为操作步骤;根据病毒程序可执行的破坏性行为的操作步骤执行对应的逆行为操作步骤。所述方法还包括对计算机操作系统的相关信息进行备份,并利用所述备份数据,执行所述逆行为操作步骤。所述备份为增量式备份。其中,按照下述步骤获得病毒程序可执行破坏性的行为获得已知病毒程序的破坏性操作行为;根据所述破坏性操作行为编制对应的控制处理程序;使控制处理程序获得对所述破坏性操作行为的控制权;病毒程序调用相应的控制处理程序,由所述控制处理程序记录所述病毒程序的破坏性操作行为。所述方法还包括所述控制处理程序向所述待检测程序返回成功应答信息。其中,将所述控制处理程序嵌入操作系统或者所述破坏性操作行为对应的系统功能调用程序将其控制权移交给相应的控制处理程序,使控制处理程序获得对所述破坏性操作行为的控制权。按照病毒程序可执行的破坏性行为操作步骤的顺序执行所述逆行为操作步骤。将根据所述破坏性行为操作步骤建立的相对应的逆行为操作步骤以数据库列表的方式进行存储。本发明提供的被病毒破坏的数据的恢复装置,包括输入单元,用于获取病毒程序可执行的破坏性行为操作步骤;创建单元,用于建立所述破坏性行为操作步骤对应的逆行为操作步骤;执行单元,用于执行所述逆行为操作步骤。所述装置还包括数据备份单元,用于对计算机操作系统的相关信息的备份,所述执行单元利用所述备份信息完成所述逆行为操作步骤。所述装置还包括虚拟环境单元,用于将根据所述破坏性操作行为得到的所述控制处理程序嵌入操作系统,使控制处理程序获得对所述破坏性操作行为的控制权;当病毒程序调用所述控制处理程序时,由所述控制处理程序记录所述病毒程序的操作行为。本发明提供的病毒程序清除方法,包括获得病毒程序可执行的破坏性行为操作步骤;建立所述破坏性行为操作步骤对应的逆行为操作步骤和病毒程序删除步骤;执行所述逆操作步骤和所述病毒程序删除步骤。与现有技术相比,本发明具有至少以下的优点本发明针对每个不同的病毒程序,建立了所述病毒程序的破坏性操作对应的逆操作步骤,可以对不同的病毒程序采用的破坏性操作采取相应的逆处理步骤,如果该破坏性操作能够破坏数据,所述逆操作步骤就能够实现被病毒破坏的数据的恢复。从而使清除病毒程序后的计算机尽可能的恢复到感染病毒程序以前的状态。本发明所述被病毒程序破坏的数据的恢复方法中的所述病毒程序的可执行的行为操作步骤,可以通过计算机自行获取。所述获取过程可以通过以下步骤获得获得并分解已知病毒程序的破坏性操作行为;根据所述破坏性操作行为编制对应的控制处理程序;将所述控制处理程序嵌入操作系统;待检测程序调用所述控制处理程序,由所述控制处理程序记录所述待检测程序的操作行为,从而实现检测以及记录程序的操作行为。该实现方式简单易行,不需要DEBUG、PROVIEW等分析用工具程序和专用的试验用计算机就可以对所述病毒程序的具体工作流程进行分析、跟踪,进而记录病毒程序的操作行为。本发明还提供了一种被病毒程序破坏的数据的恢复装置,所述装置可以针对每个不同的病毒程序的破坏性操作,进行对应的逆操作步骤,并利用对系统文件的备份,进而实现被病毒破坏的数据的恢复。所述装置弥补了现有清除病毒的方法对任何病毒都采用相同的“一刀切”模式的处理步骤的缺陷,从而使清除病毒程序后的计算机尽可能的恢复到感染病毒程序以前的状态。下面结合附图和具体实施方式对本发明作进一步详细的说明。图1是本发明一种被病毒程序破坏的数据的恢复方法的流程图;图2是一个病毒具有的完成特定功能或结果的源代码序列块的示意图;图3是图2所示的所述病毒程序源代码序列块对应的行为操作步骤的示意图;图4是本发明一种被病毒程序破坏的数据恢复装置的结构示意图;图5是本发明一种病毒清除方法流程图;图6是获取病毒程序可执行的破坏性行为操作流程图;图7是系统功能调用表的结构示意图;图8是系统功能调用程序实际存储区的示意图;图9是图7所示的系统功能调用表存储有相应的控制处理程序时的结构示意图;图10是图9所示存储实例的功能调用程序实际存储区的示意图;图11是存储所述控制处理程序的一个独立的操作行为调用表的结构示意图。具体实施例方式本发明的核心思想在于根据获取的病毒程序可执行的破坏性行为操作步骤,建立对应的逆行为操作步骤,并执行该逆行为操作步骤,从而实现病毒程序操作的逆操作,进而实现对病毒程序的剥离以及对被病毒破坏的数据的恢复。参照图1,是本发明所述的被病毒程序破坏的数据的恢复方法的步骤流程图,包括以下步骤。步骤s1,获得病毒程序的可执行的破坏性行为操作步骤;一个病毒程序和任何一个计算机程序一样,都具有一系列的能够完成特定操作的源代码,多个这样的源代码的集合可以看作是完成一个特定功能或结果的源代码序列块,例如图2所示的一个典型的病毒程序就具有N个特定功能或结果的源代码序列块,即序列块1、序列块2、.......、序列块N。这里所述的序列块可能用于完成特定的数据破坏操作,例如数据的转移、删除等;也可能用于完成自身程序的寄生操作,例如将自身程序通过修改宿主程序的某个入口指针的方式镶嵌到该宿主程序中(这种镶嵌手段作为传统方法本文不再赘述),或者将宿主程序变为自身的附属程序。因此,通过分析获得所述每个序列块的操作结果和操作行为,可以获得病毒程序的可执行的行为操作步骤,例如图3就是图2所示的病毒程序源代码序列块对应的行为操作步骤,其中,图2中的序列块1对应图3中的行为操作步骤1、图2中的序列块2对应图3中的行为操作步骤2,......,图2中的序列块N对应图3中的行为操作步骤N。所述的病毒程序的行为操作步骤,即完成一个特定功能或结果的源代码序列块,可以由分析得出。通常的分析病毒程序的步骤可以分为动态和静态两种。所述动态分析则是指利用DEBUG等程序调试工具在内存带毒的情况下,对病毒程序做动态跟踪,观察病毒程序的具体工作过程,以进一步在静态分析的基础上理解病毒程序工作的原理。在病毒程序编码比较简单的情况下,动态分析不是必须的。但当病毒程序采用了较多的技术手段时,必须使用动、静相结合的分析方法才能完成整个分析过程。例如F_lip病毒程序采用随机加密,利用对病毒程序的解密程序的动态分析才能完成解密工作,从而进行下一步的静态分析。所述静态分析是指利用DEBUG等反汇编程序将病毒程序代码打印成反汇编后的程序清单进行分析,看病毒程序分成哪些模块,使用了哪些系统调用,采用了哪些技巧,如何将病毒程序感染文件的过程翻转为清除病毒程序、修复被病毒破坏的数据的过程,哪些代码可被用做特征码以及如何防御这种病毒程序等。现有技术中经过上述分析后,主要是得出病毒程序的特征码,存入病毒程序特征码库中。在本专利中需要得出病毒程序的行为操作步骤,即完成一个特定功能或结果的源代码序列块,用于指导恢复被病毒程序破坏的数据。所述的病毒程序的行为操作步骤,即完成一个特定功能或结果的源代码序列块,可以通过计算机程序自动获取,该实现方法在后文将进行详述。步骤s2,建立所述行为操作步骤对应的逆行为操作步骤。由于步骤s1已经获得病毒程序的可执行的行为操作步骤,因此可以根据所述行为操作步骤建立所述行为操作步骤对应的逆行为操作步骤;例如,建立行为操作步骤1、2、...、N对应的逆操作步骤1、2、...、N。假设图3中的行为操作步骤1用于转移存储数据,则对应的逆行为操作步骤1则用于对应的逆行为操作,即恢复数据的操作;如果图3中的行为操作步骤2用于删除数据,则对应的逆行为操作步骤2用于完成对应的逆操作,以恢复被删除的数据(例如以冗余校验的方式恢复数据)。所述建立对应的逆行为操作步骤,即生成一个程序源代码指令的集合,所述指令集合所对应的操作步骤与所述行为操作步骤所执行的操作相反。由所述行为操作步骤得出对应的逆行为操作步骤,可以通过一个对应表来实现,即预置一个数据列表,表中对应列出各种行为操作步骤以及相对应的逆行为操作步骤;当所述病毒程序进行了某个行为操作步骤,则从所述预置的数据列表中比较得出相对应的逆行为操作步骤,例如添加和删除;依此即可完成所述病毒程序的所有行为操作步骤向逆行为操作步骤的转换。步骤s3,执行所述逆行为操作步骤。由于所述逆行为操作步骤就是逆行为操作程序源代码指令的集合,所以对所述逆行为操作步骤的执行实际上就是对所述程序源代码指令进行依次分别调用的过程。根据每个程序源代码指令进行相应的执行操作,从而完成被病毒程序破坏的数据的恢复操作。例如,建立一个执行逆行为操作步骤功能的一个主功能函数,在这个主功能函数里实际上设置的是将所述程序源代码指令进行依次分别调用的过程。通常,可以按照病毒程序可执行的行为操作步骤的顺序执行所述逆行为操作步骤。所述的逆行为操作步骤,即程序源代码指令的集合,可以以数据库的方式进行存储或者以大型数据存储表的方式进行存储。例如,将所述的逆行为操作步骤以数据库列表的方式进行存储,则某一个病毒程序的逆行为操作步骤就是该数据库中的一个存储元素(子集)。该数据库可以采用如下的数据结构存储所述的某一个存储元素,即某一个病毒程序的逆行为操作步骤(病毒程序名称)、(逆行为操作步骤1,逆行为操作步骤2,......逆行为操作步骤N)、(附加信息段,删除病毒程序体);其中,所述的1、2......N表示了清除病毒程序步骤的顺序,所述的逆行为操作步骤包括源代码序列块,所述源代码序列块用以完成所述病毒程序行为操作步骤对应的逆操作。上述的逆行为操作步骤信息中还可以包括相关操作参数等。上述的数据结构还可以采用其他方式,例如(病毒程序名称)、(逆行为操作步骤1,逆行为操作步骤2,......逆行为操作步骤N,附加信息段)、(删除病毒程序体);实际上,存储方式以及存储的数据结构只是编程人员的一种人为设定,可以采用任何可行的存储方式和数据结构,只要能够实现所述逆行为操作步骤的存储和调用即可。上述的步骤s1、s2和s3可以完成相当情况下被病毒程序破坏的数据恢复,但是其并不是最完善的。当病毒程序删除或者覆盖了原数据,则由于该病毒程序行为操作对应的源代码序列块中并没有原数据的信息,所以以此建立的逆行为操作步骤也不包括原数据的信息,则所述的逆行为操作步骤就无法取回原数据进行覆盖,以实现被病毒程序破坏的数据的恢复。因此,本发明所述的被病毒程序破坏的数据的恢复方法还可以包括对计算机操作系统的相关信息的备份,以及利用所述备份步骤的备份数据,执行所述逆操作步骤,例如将备份的数据调用回来覆盖被破坏的数据,进而实现被病毒程序破坏的数据的恢复。所述的备份数据可以存储在信息备份库中,以方便备份数据的调用。所述的计算机操作系统相关信息,一般为计算机病毒程序容易感染的程序文件和操作系统的敏感文件,例如注册表、系统配置文件等易感染数据。如果病毒程序对计算机的某些文件进行了修改或者删除,而所述文件在信息备份库中存有备份时,则就可以从所述信息备份库中将所述文件的备份文件覆盖回来。优选的,为了保证对用户计算机空间的影响,仅仅选择备份操作系统的敏感信息,因为一般的病毒程序感染这些信息的机会较大,而且对用户计算机的影响最大。当然,如果用户的计算机允许,则最好可以将用户计算机上的所有文件或者用户认为重要的文件都进行备份,这样不仅可以将病毒程序杀除干净,并且可以最大限度的恢复被病毒程序破坏的数据文件。所述的对计算机操作系统相关信息的备份,也可以是增量式的备份。当首次使用本发明所述被病毒程序破坏的数据的恢复方法时,可以对操作系统的敏感部分(例如注册表、系统配置文件等易感染数据)进行初始化备份,将备份的数据或信息进行分类存储在信息备份库中。当每次合法程序对这些敏感部分进行更改后,对更改的部分进行实时的增量式备份,即只需要将修改信息进行相应位置的备份即可。当然也可以根据用户计算机的许可,定时的对所有文件进行备份。参照下面的实施例,对所述被病毒程序破坏的数据的恢复方法进行更详细的说明。假设一个名称为ABC的病毒程序,人工或者计算机对该病毒程序进行分析后,得出该病毒程序的行为操作步骤是(1)覆盖了注册表里HKEY_LOCAL_MACHINE\SOFTWARE\456项的值,(2)将abc.exe文件的文件位置添加到注册表相应的启动项里,(3)病毒程序自动释放一个名为123.exe的木马文件。那么,根据上述病毒程序ABC的行为操作步骤,建立的逆行为操作步骤如下(ABC)、(从“信息备份库”里与HKEY_LOCAL_MACHINE\SOFTWARE\456项对应的值再覆盖回来,从注册表中删除该病毒程序建立的启动项)、(删除123.exe文件,删除ABC病毒程序体)在上述的存储元素中,病毒程序名称ABC;清除方法1从“信息备份库”里与HKEY_LOCAL_MACHINE\SOFTWARE\456项对应的值再覆盖回来。清除方法2从注册表中删除该病毒程序建立的启动项。附加信息段删除123.exe文件,删除ABC病毒程序体上述的信息结构是所述逆行为操作步骤的人为设定的一种存储方式。当然,也可以采用其他的结构方式进行存储,例如(ABC)、(从“信息备份库”里与HKEY_LOCAL_MACHINE\SOFTWARE\456项对应的值再覆盖回来,从注册表中删除该病毒程序建立的启动项,删除123.exe文件)、(删除ABC病毒程序体)上述的存储信息中还可以包括所述逆行为操作步骤的相关操作参数。当然,在计算机实际的运行过程中,不可能把人类的逻辑语言以上述的形式描述给计算机,上述例子在计算机里实现的过程实际上就是将上述的人类的逻辑语言描述更换成为功能函数和指令。即所述的逆行为操作步骤实际上就是这个具体实施例中的一系列函数序列(以下简称“函数序列”)。例如(ABC)、(F(*P(X(456))),G(*Q(Y(K))))、(DEL(*PATH(123.exe)),DEL(*PATH(ABC)))对上述表达式解释说明如下ABC代表病毒程序体名称。F()代表将值覆盖写入注册表项的功能函数。*P()代表指向“信息备份库”里关于注册表的备份数据的指针函数。X()代表“HKEY_LOCAL_MACHINE\SOFTWARE\456项”在注册表里的路径函数。G()代表执行删除注册表内某项的功能函数。*Q()代表指向注册表内的指针函数。Y()代表病毒程序在注册表内建立的启动项的路径函数。变量K代表病毒程序在注册表内建立的启动项。DEL()代表执行删除文件的功能函数。*PATH()代表指向文件路径的指针函数。根据上述实施例可以看出计算机所述执行逆行为操作步骤的过程,也就是将一系列的函数序列依次分别执行的过程。在计算机里的实现过程中所述执行逆行为操作步骤可以是建立一个执行逆行为操作步骤功能的一个主功能函数,该主功能函数将某一“函数序列”依次分别调用,从而实现执行逆行为操作步骤功能,进而恢复被病毒程序破坏的数据。例主功能函数(){............函数1();函数2();......函数N();............}参照图4,是本发明一种被病毒程序破坏的数据恢复装置的结构示意图。所述的被病毒程序破坏的数据的恢复装置包括输入单元41、创建单元42以及执行单元43。所述输入单元41,用于获取病毒程序可执行的破坏性行为操作步骤。所述的病毒程序可执行的破坏性行为操作步骤可以预先分析得出,以数据库的形式存储在用户的计算机系统中,所述被病毒程序破坏的数据恢复装置的输入单元41直接调用该数据库即可获取所述病毒程序可执行的破坏性行为操作步骤。所述的病毒程序可执行的破坏性行为操作步骤也可以预先分析得出,以数据库的形式存储在公共服务器中,所述被病毒程序破坏的数据的恢复装置的输入单元41通过网络连接该数据库即可获取所述病毒程序可执行的破坏性行为操作步骤。当然,也可以定时或者不定时的将本地用户的计算机系统中存储的所述破坏性行为操作步骤的数据库通过网络连接公共服务器,进行升级,以完善该本地数据库。本专利在前面对恢复方法的描述中已经详述了分析得出病毒程序的可执行的破坏性行为操作步骤的过程,在此不再赘述。所述创建单元42,用于建立所述破坏性行为操作步骤对应的逆行为操作步骤。根据所述破坏性行为操作步骤建立所述破坏性行为操作步骤对应的逆行为操作步骤;例如,建立破坏性行为操作步骤1、2、...、N对应的逆操作步骤1、2、...、N。假设破坏性行为操作步骤1用于转移存储数据,则对应的逆行为操作步骤1则用于对应的逆行为操作,以恢复数据;如果破坏性行为操作步骤2用于删除数据,则对应的逆行为操作步骤2用于完成对应的逆操作,以恢复被删除的数据(例如以冗余校验的方式恢复数据)。所述建立对应的逆行为操作步骤,即生成一个程序源代码指令的集合,所述指令集合相对应的操作步骤与所述行为操作步骤所执行的操作相反。所述执行单元43,用于执行所述逆操作步骤。由于所述逆行为操作步骤就是程序源代码指令的集合,所以对所述逆行为操作步骤的执行实际上就是对所述程序源代码指令进行依次分别的调用过程。根据每个程序源代码指令进行相应的执行操作,从而完成被病毒程序破坏的数据的恢复操作。例如,建立一个执行逆行为操作步骤功能的一个主功能函数,在这个主功能函数里实际上是将所述程序源代码指令进行依次分别调用的过程。所述被病毒程序破坏的数据的恢复装置还可以包括数据备份单元44,用于对计算机操作系统的相关信息的备份,所述备份信息辅助所述执行单元43完成所述逆行为操作步骤。所述的备份数据可以存储在信息备份库中,以方便备份数据的调用。所述输入单元41、创建单元42和执行单元43可以完成相当情况下被病毒程序破坏的数据恢复,但是其并不是最完善的。当病毒程序删除或者覆盖了原数据,则由于该病毒程序破坏性行为操作对应的源代码序列块中并没有原数据的信息,所以以此建立的逆行为操作步骤也不包括原数据的信息,则所述的逆行为操作步骤就无法取回原数据进行覆盖,以实现被病毒程序破坏的数据的恢复。因此,本发明所述的被病毒程序破坏的数据的恢复装置还可以包括对计算机操作系统的相关信息进行预先备份的数据备份单元44。所述的计算机操作系统相关信息,一般为计算机病毒程序容易感染的程序文件和操作系统的敏感文件等,例如注册表、系统配置文件等易感染数据。如果病毒程序对计算机的某些文件进行了修改或者删除,而所述文件在信息备份库中存有备份时,则就可以从所述信息备份库中将所述文件的备份文件覆盖回来。优选的,为了保证对用户计算机存储空间的影响,仅仅选择备份操作系统的敏感信息,因为一般的病毒程序感染这些信息的机会较大,而且对用户计算机的影响最大。当然,如果用户的计算机允许,则最好可以将用户计算机上的所有文件或者用户认为重要的文件都进行备份,这样不仅可以将病毒程序杀除干净,并且可以最大限度的恢复被病毒程序破坏的数据文件。所述的数据备份单元44,可以首先对操作系统的敏感部分(例如注册表、系统配置文件等易感染数据)进行初始化备份,将备份的数据或信息进行分类存储在信息备份库中。当每次合法程序对这些敏感部分进行更改后,对更改的部分再进行实时的增量式备份,即只需要将修改信息进行相应位置的备份即可。当然也可以根据用户计算机的许可,定时的对所有文件进行备份。所示被病毒程序破坏的数据的恢复装置,还可以包括虚拟环境单元45。所述虚拟环境单元45,用于将根据所述破坏性操作行为编制得到的所述控制处理程序嵌入操作系统,当待检测程序中所述破坏性操作指令调用所述控制处理程序时,由所述控制处理程序记录所述待检测程序的破坏性操作行为;并返回成功应答信息,诱导所述待检测程序在虚拟环境中继续运行,从而检测和记录所述病毒程序的一系列可执行的破坏性行为操作及步骤。参照图5,是本发明一种病毒程序清除方法的步骤流程图,包括以下步骤步骤51,获得病毒程序可执行的破坏性行为操作步骤。所述破坏性行为操作步骤是指能够完成一个特定功能或结果的代码序列块;步骤52,建立所述行为操作步骤对应的逆操作步骤和病毒程序删除步骤;步骤53,执行所述逆操作步骤和所述病毒程序删除步骤。所述病毒程序清除方法与本实施方式所述被病毒程序破坏的数据的恢复方法具有相同的原理,主要区别在于在恢复被病毒程序破坏的数据的基础上,同时将所述病毒程序删除。所以对所述病毒程序清除方法的说明参见本专利对所述被病毒程序破坏的数据的恢复方法的描述即可。所述病毒程序可执行的破坏性行为操作步骤,即完成一个特定功能或结果的源代码序列块,可以预先分析得出,也可以通过计算机程序自动获取的。参照图6,所述计算机获取病毒程序的可执行的行为操作步骤的方法可以包括以下步骤。步骤a,获取已知病毒程序的破坏性操作行为。病毒程序有一些行为,是病毒程序的共同行为,而且比较特殊。所述已知病毒程序的破坏性操作行为的获取可以通过人工完成也可以通过计算机实现。所述的破坏性操作行为一般包括对计算机系统的非常规操作或者易造成恶性结果的操作。例如非常规读写操作、删除某系统文件、导致内存冲突、破坏硬盘分区表等等。下面列举一些具体的可以作为监测病毒程序的操作行为占用INT13H、修改DOS系统数据区的内存总量、对COM和EXE文件做写入动作、病毒程序与宿主程序的切换特征等。除了上述较为明显的破坏性操作行为,病毒程序一般还会包括较为正常的操作行为,如果单独或者组合起来有可能产生破坏数据的危险操作,则也属于本发明所述病毒程序的破坏性操作行为的范围内。除了上述较为明显的破坏性操作行为,病毒程序一般还会包括较为正常的操作行为,如果这些操作行为单独或者组合起来有可能产生破坏数据的危险操作,则也属于本发明所述病毒程序的破坏性操作行为的范围内。通常,一个病毒程序的破坏行为可以由一系列的执行破坏性操作的指令或指令集以及必要的参数构成的,每一个所述指令或指令集至少产生一个独立的破坏性操作行为。因此,获得现有病毒程序的破坏性操作行为,即是将已经存在的病毒程序中包含的独立的破坏性操作行为涉及的指令或指令集以及必要的参数提取出来。例如,假设13H中断的03H或05H号功能调用涉及可能的破坏数据的危险操作,则13H中断的03H或05H号功能调用对应的指令就可以被看作是产生一个独立的破坏性操作行为的指令。假设,10H中断的02H号功能调用和11H的06H号功能调用组合在一起涉及可能的破坏数据的危险操作,则10H中断的02H号功能调用和11H的06H号功能调用对应的指令集合就可以被看作是产生一个独立的破坏性操作行为的指令集。如果一个被检测的程序具有这样的指令代码,就可以得知该被检测程序存在一个可能破坏性其他程序或数据的可疑操作行为,将这些行为操作收集起来,就可以通过程序的行为集合判断一个程序是否为病毒程序以及如何最大限度地恢复相应的病毒程序破坏的数据。获取已知病毒程序的破坏性操作行为,也可以通过计算机辅助完成。例如采用申请号为01117726.8、名称为“检测和清除已知及未知计算机病毒的方法、系统和介质”的中国发明专利介绍的,以提供用于诱发病毒感染的感染对象来检测病毒的方法,就可以获得已知和未知病毒程序的破坏性操作行为。由于申请号为01117726.8的发明已经公开,在此不在赘述。步骤b,根据所述破坏性操作行为设置或编制该操作行为对应的控制处理程序。为此,当将现有病毒程序的破坏性操作行为分解出来以后,就可以根据所述破坏性操作行为设置该行为对应的控制处理程序,所述控制处理程序用于响应待检测程序的破坏性操作行为涉及的指令和参数,并反馈所述破坏性操作行为成功的信息,以诱导该待检测程序的下一个行为,同时记录所述待检测程序的该项破坏性操作行为。假设,一个程序中的破坏性操作行为涉及的指令和参数为DEL(参数1;参数2;参数3),其中,DEL表示删除,参数1表示被删除的盘号,参数2表示被删除的簇号,参数3表示接受删除是否成功的变量,则该破坏性操作行为对应的控制处理程序可以是(1)WRITE(FILE1,“DEL(参数1;参数2;参数3)”);(2)WRITE(DEL(参数1;参数2;参数3),0,0,0);其中,第(1)行的指令表示将破坏性指令“DEL(参数1;参数2;参数3)”作为字符串记录进文件FILE1中;第(2)行的指令表示向将破坏性指令DEL(参数1;参数2;参数3)反馈操作成功的标志“0”。步骤c,将所述控制处理程序嵌入操作系统,使控制处理程序获得对所述破坏性操作行为的控制权,这种控制权可以通过使控制处理程序获得优于操作系统的系统控制权而获得。为了能够自动快速地检测并记录程序中可能出现的破坏性操作行为,以甄别该程序是否为病毒程序,需要所述控制处理程序获得对被检测程序出现的破坏性操作行为的控制权,以获得被检测程序中出现的破坏性操作行为,为此,采用将所述控制处理程序嵌入到操作系统中的办法使控制处理程序获得相应的破坏性操作行为的控制权;当然,也可以通过其他方式使控制处理程序获得系统的监控权从而达到检测并记录待检测程序的破坏性操作行为之目的。如果采用将所述控制处理程序嵌入到操作系统中的方式,即可以通过将控制处理程序嵌入到操作系统的功能调用表实现;也可以将控制处理程序存储到一个独立的操作行为调用表,使其具有比操作系统的功能调用表更高级的优先权实现。例如任何操作系统中都会存在一个系统功能调用表,系统功能调用表根据需要可以有不同的结构。参考图7,图7所示的系统功能调用表包括两个字段,一个是编号字段,用于存储系统功能调用程序的编号;一个是功能调用地址字段,用于存储系统功能调用程序指针,即地址,该地址通常对应系统功能调用程序的首地址。图8是系统功能调用程序实际存储区的示意图,当需要某个操作系统提供的功能时,例如需要13H中断处理程序提供的写磁盘操作,就需要从图7所示的系统功能调用表中提取出13H中断处理程序的地址,再到图8所示的存储区中的相应地址处读取相应的程序到内存中执行即可获得操作结果。如果将所述控制处理程序嵌入到操作系统中,方法之一就是将相应的控制处理程序存储到系统功能调用表中。假设现在有100H(H表示16进制)个破坏性操作行为被分解出来,而且已经编制好100H个对应的控制处理程序,则,将这100H个控制处理程序的存储地址存入到图7所示表中,存储结果参考图9,图10示出了图9所述存储实例的功能调用程序实际存储区的示意图。所述控制处理程序的存储地址依次存储到系统功能调用程序地址的后面。实际中,将所述控制处理程序嵌入到操作系统中的方法并不限于图9所示的存储方式,也可以采用图11所示的将所述控制处理程序直接存储为一个独立的操作行为调用表的方式,并使所述控制处理程序获得优于系统功能调用程序的优先权,该步骤的实现方式是将图7中的系统功能调用指针,即功能调用地址字段的系统功能调用程序的地址修改为相应控制处理程序的地址即可。以图9为例,假设编号为0A00的A控制处理程序地址与编号为0003的05H中断相对应,就需要将“功能调用地址”字段存储的“05H中断地址”修改为“A控制处理程序地址”,从而在所述破坏性操作行为涉及的指令调用“05H中断地址”对应的程序时,实际上调用的是“A控制处理程序地址”,从而使“A控制处理程序”获得了优于“05H中断”的系统控制权。继续推广这种思想,就可以将所述控制处理程序嵌入操作系统。在另外的实施例中,还可以使所述破坏性操作行为对应的系统功能调用程序将其控制权移交给相应的控制处理程序,从而使控制处理程序获得对所述破坏性操作行为的控制权。以图11这种存储方式为例,所有的控制处理程序在系统中形成了另外一张系统功能调用表,只要使该表具有比系统原有的系统功能调用表具有更高的优先级,就可以使控制处理程序获得对所述破坏性操作行为的控制权。例如,在待检测程序调用所述控制处理程序调用系统功能调用程序时,首先调用图11所述的表中的控制处理程序,如果在图11所述的表中不存在被调用的控制处理程序,再去调用图2所述的表中的真正的系统功能调用程序。由于通过步骤c,已经使控制处理程序获得对所述破坏性操作行为的控制权,因此待检测程序在步骤d调用所述控制处理程序时,就可以由所述控制处理程序记录所述待检测程序的操作行为。即,所述待检测程序执行时,一旦其中存在的实现破坏性操作行为的指令被执行,即调用相应的系统功能调用程序,就会首先调用相应的控制处理程序,由所述控制处理程序对其进行应答并记录所述待检测程序的破坏性操作行为。通常的病毒程序需要获得一条破坏性的行为操作结果,在得到成功操作的结果时,才继续后续的操作,因此为了对待检测程序进行进一步的判断,还可以通过所述的控制处理程序对所述待检测程序的调用返回成功应答的信息,从而诱导所述待检测程序继续进行下一行为;而实际上,操作系统的控制权由于在步骤c已由控制处理程序接管,所述待检测程序并没有得到实际运行的效果,其收到的信息是控制处理程序传回的信息,其获得的信息相对于其需求来说是虚假信息,因此待检测程序并没有在操作系统的环境下实际运行,而是在控制处理程序构成主控制权的环境中虚拟运行,从而可以检测和记录所述待检测程序的一系列行为操作,并且不会对系统造成损害。上述的获得病毒程序可执行的破坏性行为操作的方法可以理解为在现实的操作系统内通过软件实现的方法虚拟一个运行环境。这个环境的数据与运行结果与真实的操作系统完全隔离,但是文件或进程的执行过程和结果与在真实的操作系统中运行是完全相同的。实际中,所述步骤c是一个可选择的步骤,无论所述控制处理程序是否嵌入操作系统,只要其在程序操作行为涉及的指令运行时具有优于操作系统的控制权,即可形成诱发待检测程序行为的虚拟运行环境,从而检测到所述待检测程序的操作行为。通过上述方法计算机自行获取或者预先分析得出病毒程序的可执行的行为操作,则就可以建立所述行为操作步骤对应的逆行为操作步骤,并根据病毒程序的可执行的行为操作步骤执行所述对应的逆行为操作步骤,从而完成本发明所述恢复被病毒程序破坏的数据的操作。以上对本发明所提供的一种被病毒程序破坏的数据恢复方法、装置及病毒程序清除方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1.一种被病毒程序破坏的数据恢复方法,其特征在于包括获得病毒程序的可执行的破坏性行为操作步骤;建立所述破坏性行为操作步骤对应的逆行为操作步骤;根据病毒程序可执行的破坏性行为的操作步骤执行对应的逆行为操作步骤。2.如权利要求1所述的被病毒程序破坏的数据恢复方法,其特征在于,还包括对计算机操作系统的相关信息进行备份,并利用所述备份数据,执行所述逆行为操作步骤。3.如权利要求2所述的被病毒程序破坏的数据恢复方法,其特征在于所述备份为增量式备份。4.如权利要求1或2所述的被病毒程序破坏的数据恢复方法,其特征在于,按照下述步骤获得病毒程序可执行破坏性的行为获得已知病毒程序的破坏性操作行为;根据所述破坏性操作行为编制对应的控制处理程序;使控制处理程序获得对所述破坏性操作行为的控制权;病毒程序调用相应的控制处理程序,由所述控制处理程序记录所述病毒程序的破坏性操作行为。5.如权利要求4所述的被病毒程序破坏的数据恢复方法,其特征在于,还包括所述控制处理程序向所述待检测程序返回成功应答信息。6.如权利要求4所述的被病毒程序破坏的数据恢复方法,其特征在于将所述控制处理程序嵌入操作系统或者所述破坏性操作行为对应的系统功能调用程序将其控制权移交给相应的控制处理程序,使控制处理程序获得对所述破坏性操作行为的控制权。7.如权利要求6所述的被病毒程序破坏的数据恢复方法,其特征在于按照病毒程序可执行的破坏性行为操作步骤的顺序执行所述逆行为操作步骤。8.如权利要求1或2所述的被病毒程序破坏的数据恢复方法,其特征在于将根据所述破坏性行为操作步骤建立的相对应的逆行为操作步骤以数据库列表的方式进行存储。9.一种被病毒破坏的数据的恢复装置,其特征在于,包括输入单元,用于获取病毒程序可执行的破坏性行为操作步骤;创建单元,用于建立所述破坏性行为操作步骤对应的逆行为操作步骤;执行单元,用于执行所述逆行为操作步骤。10.如权利要求9所述的被病毒程序破坏的数据恢复装置,其特征在于,还包括数据备份单元,用于对计算机操作系统的相关信息的备份,所述执行单元利用所述备份信息完成所述逆行为操作步骤。11.如权利要求9所述的被病毒程序破坏的数据恢复装置,其特征在于,还包括虚拟环境单元,用于将根据所述破坏性操作行为得到的所述控制处理程序嵌入操作系统,使控制处理程序获得对所述破坏性操作行为的控制权;当病毒程序调用所述控制处理程序时,由所述控制处理程序记录所述病毒程序的操作行为。12.一种病毒程序清除方法,其特征在于,包括获得病毒程序可执行的破坏性行为操作步骤;建立所述破坏性行为操作步骤对应的逆行为操作步骤和病毒程序删除步骤;执行所述逆操作步骤和所述病毒程序删除步骤。全文摘要本发明公开了一种被病毒程序破坏的数据的恢复方法,包括获得病毒程序的可执行的破坏性行为操作步骤;建立所述破坏性行为操作步骤对应的逆行为操作步骤;根据病毒程序可执行的破坏性行为的操作步骤执行对应的逆行为操作步骤。本发明还提供了一种病毒程序清除方法,根据病毒程序的行为操作步骤建立相对应的逆行为操作步骤,并执行所述逆行为操作步骤以及清除所述待检测程序。本发明所述方法针对不同的病毒程序,采用不同的逆行为操作步骤,实现被病毒程序破坏的数据的恢复,改变了现有的清除病毒程序的方法对任何病毒程序都采用相同的处理步骤的缺陷,从而使清除病毒程序后的计算机尽可能的恢复到感染病毒程序以前的状态。文档编号G06F21/56GK1936911SQ20061000761公开日2007年3月28日申请日期2006年2月15日优先权日2005年11月16日发明者白杰,鲁征宇,李薇申请人:白杰,李薇,鲁征宇
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1