一种用于检测和清除计算机病毒的方法和装置的制作方法

文档序号:6376506阅读:159来源:国知局

专利名称::一种用于检测和清除计算机病毒的方法和装置的制作方法
技术领域
:本发明涉及计算机安全,具体涉及一种用于检测和清除计算机病毒的方法和装置。
背景技术
:使用特征码扫描进行病毒样本识别是计算机反病毒最早使用的病毒查杀技术。计算机反病毒技术发展几十年来,虽然又出现了行为查杀等病毒查杀技术,但特征码扫描以其准确和稳定等特点,依然是目前主流计算机反病毒软件病毒识别所采用的主要技术,是目前反病毒技术中的基础技术。特征码扫描是指采用事先提取的病毒特征对未知样本进行扫描和判断的方法。特征的提取是由人工分析或自动分析识别确定为病毒后,对病毒样本提取的二进制或其它特征,这种特征是该种病毒独有的、区别于其它病毒或正常文件的。查毒时,反病毒软件依次使用其病毒库中的特征对未知文件进行扫描,如果某一特征匹配成功,则表示该文件为该特征所代表的病毒,如果所有特征均未匹配,则认为该文件不是病毒,是正常文件。特征码扫描从根本上说是一种特征识别判定技术,其不但可以用于扫描判定病毒,也可以用于扫描判定正常文件,目前在反病毒软件中也被广泛的用于正常样本的判定。特征码扫描技术具有准确、误报率低、实现技术简单的优点,其技术成熟,因此目前依然是反病毒技术中病毒识别的主要技术。但同时,特征码扫描技术也有明显的缺点,其对多态变形、加密的病毒的识别能力低,且不能识别未知病毒。除特征码扫描外,目前反病毒中常用的病毒识别技术还有“行为查杀”技术,其基本原理是指对已运行的样本或在反病毒软件中可控环境中(常见为反病毒虚拟机)运行样本,通过记录和判定样本的运行行为来识别病毒。行为查杀技术具有能够查杀未知病毒的能力,但误报率高是其目前依然无法解决的最大缺点。反病毒软件使用的杀毒技术,主要是指其对感染型病毒样本(被感染型病毒感染的正常文件)的清除能力,对于非感染型病毒,则简单的删除即可。感染型病毒的清除,目前主要采用使用的杀毒记录杀毒和硬编码杀毒两种方法。杀毒记录杀毒是指,在分析人员分析测试过后编写杀毒记录,查杀时判定病毒后执行对应的杀毒记录中的杀毒方法进行杀毒。杀毒记录中描述的是其杀毒引擎支持的杀毒方法(如修改程序入口、截取文件尾部等)及参数的组合。硬编码杀毒是指编写专门的程序代码进行杀毒,其应用于杀毒情况较复杂的情况,例如病毒专杀程序。这里选择开源杀毒引擎ClamAV为例对于传统杀毒引擎进行分析。ClamAV杀毒引擎查杀方法主要包括以下几种-MD5(MessageDigestAlgorithm5,消息摘要算法第五版)特征病毒分析员为病毒文件生成相应的MD5作为其特征。ClamAV引擎通过MD5作为其病毒特征;-基于PE(PortableExecute,可移植执行)文件节的MD5特征病毒分析员将病毒PE文件的其中一个节作为其文件特征,将节数据生成相应的MD5作为其病毒特征。-代码特征代码特征是非常传统的一种病毒特征提取方式。病毒分析员将PE文件中具有特殊含义的二进制数据作为病毒特征,通常选择病毒代码的二进制作数据为病毒特征。ClamAV的代码特征不仅是匹配二进制数据,还支持通配符,以及部分正则表达式,还支持基于文件格式的扩展匹配,支持逻辑化特征。-PE文件图标特征=Windows上的病毒经常将自己的图标伪装成非可移植执行文件的图标,于是ClamAV提供将图标作为病毒的特征。以上特征都是基于ClamAV杀毒引擎体系构架。ClamAV杀毒引擎是以算法为基础的杀毒引擎,其核心的算法是B-M单模匹配算法以及A-C多模匹配算法。由于传统杀毒引擎(如上述ClamAV)的结构是以算法为基础的,所以导致以下两个比较明显的问题I.病毒特征选取不灵活这里的不灵活体现在两个方面,一方面是病毒分析员选取病毒特征不灵活,另一方面是病毒分析员扩展新的病毒特征不灵活;ClamAV不同的查杀方法之间是不提供逻辑关系的。比如使用PE文件节的MD5特征并不能够与代码特征结合起来使用。虽然代码特征提供一定的逻辑匹配的功能,但如果面对多态变形病毒,其逻辑匹配的功能仍然无法满足精确检测的需求。如常见的多态变形病毒vrut早期版本通过随机从两套加密算法中选取一套,并随机产生一个密钥对病毒体代码进行加密;而解密代码则通过一个多态引擎生成进行多态变换,使得vrut每次感染的文件其病毒体代码特征都完全不同。因此仅通过ClamAV代码特征所提供的逻辑匹配是无法对其进行精确查杀的。而如果要对这种以算法为基础的杀毒引擎扩展其病毒特征选取方法,由于其病毒特征选取方法与引擎偶合度过大,导致很难进行扩展。要么在原算法之外新增扫描过程,以效率为代价。如ClamAV新增MD5特征扫描就是在其代码特征扫描之前新增扫描过程;要么就是修改原引擎中的算法,ClamAV引擎中的A-C多模匹配算法就是经过改进的算法,以支持代码特征中简单的逻辑运算、通配符等。2.检测病毒效率低下对于杀毒引擎的检测效率,主要瓶颈在输入输出,如果能够有效的控制输入输出,则查毒的效率就会有极大的提高。但通过以上的过程,可以看到,ClamAV并没有针对输入输出进行优化。MD5特征决定必须对检测文件进行全文遍历。另外由于A-C多模算法在匹配之前需要建立状态机,而病毒库记录越大,则状态机建立的所需要的时间与空间就越多。
发明内容鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的用于检测和清除计算机病毒的方法以及相应的装置。依据本发明的一个方面,提供了一种用于检测和清除计算机病毒的方法,包括利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;用于检测计算机病毒的检测处理,其包括-基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;-将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;-基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。所述脚本语言使用可扩展标记语言XML进行描述。所述可移植执行文件结构包括可移植执行文件入口点的偏移、可移植执行文件头的偏移、可移植执行文件数据目录的偏移、可移植执行文件附加数据的偏移、可移植执行文件节表的偏移、和/或可移植执行文件节的偏移。所述定位处理包括根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,进行定位处理。所述多个病毒记录中的每个病毒记录具有各自的文件特征,在所述基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理的步骤中,检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理。所述匹配处理支持通配符号和浮动搜索,包括以下的一种或多种处理利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行匹配处理;利用可移植执行文件的导入函数信息和/或导出函数信息,进行匹配处理,所述导入函数信息包括导入模块和导入函数的数量和名称,所述导出函数信息包括导出模块和导出函数的数量和名称;以及利用所述待检测的文件的位置和长度的散列值,进行匹配处理。所述运算处理包括加、减、乘、除、逻辑与、逻辑或、移位、比较处理。所述逻辑控制处理包括跳转处理和返回处理,其中所述跳转处理包括有条件跳转处理和非条件跳转处理,返回处理包括有条件返回处理和非条件返回处理。每个病毒记录包含针对一种计算机病毒的、记录如何进行定位处理、运算处理和/或逻辑控制处理、以及匹配处理的多条检测信息、以及记录如何进行病毒清除处理的多条清除息,所述检测处理包括对于每个病毒记录,利用所述多条检测信息,对待检测的文件进行包括定位处理、运算处理和/或逻辑控制处理、以及匹配处理的检测处理,在所述检测处理中,如果所述多条检测信息中的每一条检测信息均被成功执行,则将所述待检测的文件判定为含病毒文件。对待检测的文件进行病毒清除处理的步骤包括根据对应的病毒记录中的多条清除信息,对所述含病毒文件进行病毒清除处理。所述对所述含病毒文件进行病毒清除处理的步骤包括以下的一个或多个处理删除所述含病毒文件;修改所述含病毒文件的入口点地址;向所述含病毒文件的特定区域写入数据块;在所述含病毒文件内复制数据块;删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;删除所述含病毒文件头部和/或尾部的特定大小的数据;设置所述含病毒文件的大小。根据本发明的另一方面,提供了一种用于检测和清除计算机病毒的装置,包括脚本编写和编译模块,用于利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;检测模块,用于检测计算机病毒的检测处理,其包括-定位子模块,用于基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;-运算和逻辑控制子模块,用于将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;-匹配子模块,用于基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及清除模块,用于对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。所述脚本语言使用可扩展标记语言XML进行描述。所述可移植执行文件结构包括可移植执行文件入口点的偏移、可移植执行文件头的偏移、可移植执行文件数据目录的偏移、可移植执行文件附加数据的偏移、可移植执行文件节表的偏移、和/或可移植执行文件节的偏移。所述定位处理包括根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,进行定位处理。所述多个病毒记录中的每个病毒记录具有各自的文件特征,所述定位子模块检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理。所述匹配处理支持通配符号和浮动搜索,包括以下的一种或多种处理利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行匹配处理;利用可移植执行文件的导入函数信息和/或导出函数信息,进行匹配处理,所述导入函数信息包括导入模块和导入函数的数量和名称,所述导出函数信息包括导出模块和导出函数的数量和名称;以及利用所述待检测的文件的位置和长度的散列值,进行匹配处理。所述运算处理包括加、减、乘、除、逻辑与、逻辑或、移位、比较处理。所述逻辑控制处理包括跳转处理和返回处理,其中所述跳转处理包括有条件跳转处理和非条件跳转处理,返回处理包括有条件返回处理和非条件返回处理。每个病毒记录包含针对一种计算机病毒的、记录如何进行定位处理、运算处理和/或逻辑控制处理、以及匹配处理的多条检测信息、以及记录如何进行病毒清除处理的多条清除息,所述检测模块对于每个病毒记录,利用所述多条检测信息,对待检测的文件进行包括定位处理、运算处理和/或逻辑控制处理、以及匹配处理的检测处理,在所述检测处理中,如果所述多条检测信息中的每一条检测信息均被成功执行,则将所述待检测的文件判定为含病毒文件。所述清除模块根据对应的病毒记录中的多条清除信息,对所述含病毒文件进行病毒清除处理。所述清除模块执行以下的一个或多个处理删除所述含病毒文件;修改所述含病毒文件的入口点地址;向所述含病毒文件的特定区域写入数据块;在所述含病毒文件内复制数据块;删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;删除所述含病毒文件头部和/或尾部的特定大小的数据;设置所述含病毒文件的大小。本发明提供了一种用于检测和清除计算机病毒的方法和装置,所述方法及装置可以在虚拟机中使用,可用于恶意软件(病毒)行为分析、查/杀毒、脱壳等领域。根据本发明的实施例,使用XML来描述脚本语言和病毒记录,便于管理和检索海量的病毒记录,同时可将脚本编译为二进制的病毒库文件,确保对病毒进行检测和清除时的高效率。本发明利用类似x86汇编指令的脚本描述病毒记录,以提供类似汇编的灵活控制能力以及高的行为抽象度。根据本发明的实施例的每个处理本身都相对简单,但由于架构足够灵活,可以编写出与汇编复杂度相当的病毒记录。本发明极大地提高了传统特征码查杀技术的灵活性和效率,提高了特征码查杀技术对于多态变形病毒、病毒家族查杀的适用性。本发明采用GUID作为处理的唯一描述,因而具有很强的扩展性,只要遵从一定的规范,即可增加新的处理,而并不会影响原来的检测和清除处理以及病毒记录。本发明中的大多数处理并不涉及到系统输入输出操作,部分处理只涉及到极少量的输入输出操作,所以检测和清除病毒的速度非常快。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图I是根据本发明的实施例的用于检测和清除计算机病毒的方法的流程图;以及图2是根据本发明的实施例的用于检测和清除计算机病毒的装置的框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图I是根据本发明的实施例的用于检测和清除计算机病毒的方法的流程图。如图I所示,在用于检测和清除计算机病毒的方法100中,一开始,执行步骤SlOl:利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件。根据本发明的实施例,所述脚本语言使用XML(extensibleMarkupLanguage,可扩展标记语言)进行描述。脚本的语句是由不同函数方法组成的,函数方法可以分为检测处理与病毒清除处理两大类。检测处理的主要目的是检测病毒,而病毒清除处理则会对已经确认为病毒的文件进行操作,以达到删除或清除病毒的目的。根据本发明的实施例,将所述脚本语言编译成二进制的病毒库文件,在对病毒进行检测和清除时只需要读取该二进制的病毒库文件即可。所述脚本语言利用xml语言进行扫描。每一种处理拥有唯一的⑶ID(GloballyUniqueIdentifier,全局唯一标识符),以保证各处理之间不会在调用处理的时候产生冲突。再使用xml的标签来扫描此处理的参数。例如〈stdmethodalias="L_File"base="File"offset="2"target="FILE"clsid="{877289A9-2E55-4aa8-A94A-5EE7412F887C}"/>以上一条xml标签描述所述脚本语言中的定位处理。clsid是定位处理的唯一⑶ID,在编译的时候通过此clsid调用相应的参数解析处理对处理进行转换。在步骤SlOl后,执行用于检测计算机病毒的检测处理,其包括步骤S103a,基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或PE(PortableExecute,可移植执行)文件结构的定位处理;步骤S103b,将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;步骤S103c,基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理。根据本发明的实施例,所述PE文件结构包括PE文件入口点的偏移、PE文件头的偏移、PE文件数据目录的偏移、PE文件附加数据的偏移、PE文件节表的偏移、和/或PE文件节的偏移。在定位处理成功执行以后,会在运行栈上返回定位地址结果,以供其它处理使用。另外,作为对于定位处理的扩展,可以根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,基于所述病毒库文件中包含的多个病毒记录,进行定位处理。根据本发明的实施例,所述多个病毒记录中的每个病毒记录具有各自的文件特征,在所述步骤S103a中,检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对所述待检测的文件执行定位处理。举例来说,所述文件特征可以是文件的编译器信息,在步骤S103a中,首先检查待检测的文件的编译器信息,并且基于编译器信息与该文件符合的病毒记录,来对该文件执行定位处理。这样,在病毒库文件包括大量病毒记录的情况下,只需要利用与待检测的文件的某项文件特征符合的那些病毒记录对于待检测的文件进行检测,提高了检测的效率。在进行了上述定位处理之后,将该定位处理的结果作为变量进行运算和/或逻辑控制处理。涉及上述变量的处理可以包括常量变量处理、引用变量处理、装载变量处理。常量变量处理类似于C语言中的普通变量,为使用者提供直接设置变量的方法;引用变量处理类似于C语言中的指针变量,为使用者提供引用其它处理计算结果的方法;装载变量处理是特殊处理,可以读取检测文件指定位置的值作为变量。根据本发明的实施例,所述运算处理包括加、减、乘、除、逻辑与、逻辑或、移位、t匕较处理,其与x86汇编的运算方法相类似,操作对象为根据本发明的实施例的脚本语言的栈变量与寄存器。根据本发明的实施例,所述控制处理可以类似于x86汇编的控制处理,控制处理分为两大类,一类是跳转处理,另一类是返回处理。跳转处理可以修改当前执行顺序,跳转到指定的处理开始执行,跳转处理可以类似于x86汇编中的跳转指令,包括条件跳转与非条件跳转;返回处理可以立即结束当前的检测(清除)过程,并可显示指定返回结果为查杀目标或非查杀目标,返回处理也可以与x86汇编中的跳转指令类似,包括条件返回与非条件返回。根据本发明的实施例,步骤S103c的匹配处理支持通配符号和浮动搜索,并且可以包括以下的一种或多种处理-利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行匹配处理,所述属性信息可以包括文件名、文件大小等,所述资源信息包括资源的类型、大小、名称等;利用可移植执行文件的导入函数信息和/或导出函数信息,进行匹配处理,所述导入函数信息包括导入模块和导入函数的数量和名称,所述导出函数信息包括导出模块和导出函数的数量和名称;以及利用所述待检测的文件的位置和长度的散列值,进行匹配处理。根据本发明的实施例,通过将上述定位处理与匹配处理分开执行,可以有效降低输入输出数据量,提高检测的准确性。根据本发明的实施例,上述每个病毒记录包含针对一种计算机病毒的、记录如何进行定位处理、运算处理和/或逻辑控制处理、以及匹配处理的多条检测信息、以及记录如何进行病毒清除处理的多条清除信息,其中所述检测处理包括对于每个病毒记录,利用所述多条检测信息,对待检测的文件进行包括定位处理、运算处理和/或逻辑控制处理、以及匹配处理的检测处理,在所述检测处理中,如果所述多条检测信息中的每一条检测信息均被成功执行,则将所述待检测的文件判定为含病毒文件。具体来说,对待检测的文件执行每个病毒记录中所包含的多条检测信息中的定位处理、运算处理和/或逻辑控制处理、以及匹配处理,如果某条检测信息中的处理执行失败,则结束检测,而如果每条检测信息中的处理均执行成功,则将所述待检测的文件判定为含病毒文件。在步骤S103a之后,执行步骤S105:对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。根据本发明的实施例,可以根据对应的病毒记录中的多条清除信息,对所述含病毒文件进行病毒清除处理。而该病毒清除处理可以包括以下的一个或多个处理删除所述含病毒文件,即对于含病毒文件进行直接删除;修改所述含病毒文件的入口点地址,例如修改含病毒的可移植执行文件的入口点地址;向所述含病毒文件的特定区域写入数据块,即对特定区域进行数据块填充;在所述含病毒文件内复制数据块;删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整,例如删除含病毒的可移植执行文件中制定的文件节,并对该文件的格式进行相应的调整;删除所述含病毒文件头部和/或尾部的特定大小的数据;设置所述含病毒文件的大小。本发明提供了一种用于检测和清除计算机病毒的方法,所述方法可以在虚拟机中使用,可用于恶意软件(病毒)行为分析、查/杀毒、脱壳等领域。根据本发明的实施例,使用XML来描述脚本语言和病毒记录,便于管理和检索海量的病毒记录,同时可将脚本编译为二进制的病毒库文件,确保对病毒进行检测和清除时的高效率。本发明利用类似x86汇编指令的脚本描述病毒记录,以提供类似汇编的灵活控制能力以及高的行为抽象度。根据本发明的实施例的每个处理本身都相对简单,但由于架构足够灵活,可以编写出与汇编复杂度相当的病毒记录。本发明极大地提高了传统特征码查杀技术的灵活性和效率,提高了特征码查杀技术对于多态变形病毒、病毒家族查杀的适用性。本发明采用⑶ID作为处理的唯一描述,因而具有很强的扩展性,只要遵从一定的规范,即可增加新的处理,而并不会影响原来的检测和清除处理以及病毒记录。本发明中的大多数处理并不涉及到系统输入输出操作,部分处理只涉及到极少量的输入输出操作,所以检测和清除病毒的速度非常快。与上述的方法100相对应,本发明还提供了一种用于检测和清除计算机病毒的装置200,参见图2,该装置200包括脚本编写和编译模块201,用于利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件,该脚本编写和编译模块201可以用于执行上述方法100中的步骤SlOl;检测模块203,用于检测计算机病毒的检测处理,其包括-定位子模块203a,用于基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理,该定位子模块203a可以用于执行上述方法100中的步骤S103a;-运算和逻辑控制子模块203b,用于将定位处理的结果作为变量进行运算处理和/或逻辑控制处理,该运算和逻辑控制子模块203b可以用于执行上述方法100中的步骤S103b;-匹配子模块203c,用于基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理,该匹配子模块203c可以用于执行上述方法100中的步骤S103c;以及清除模块205,用于对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理,该清除模块205可以用于执行上述方法100中的步骤S105。在本发明的实施例中,其中所述脚本语言使用可扩展标记语言XML进行描述。在本发明的实施例中,所述可移植执行文件结构包括可移植执行文件入口点的偏移、可移植执行文件头的偏移、可移植执行文件数据目录的偏移、可移植执行文件附加数据的偏移、可移植执行文件节表的偏移、和/或可移植执行文件节的偏移。在本发明的实施例中,所述定位处理包括根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,进行定位处理。在本发明的实施例中,所述多个病毒记录中的每个病毒记录具有各自的文件特征,所述定位子模块203a检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理。在本发明的实施例中,所述匹配处理支持通配符号和浮动搜索,包括以下的一种或多种处理利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行匹配处理;利用可移植执行文件的导入函数信息和/或导出函数信息,进行匹配处理,所述导入函数信息包括导入模块和导入函数的数量和名称,所述导出函数信息包括导出模块和导出函数的数量和名称;以及利用所述待检测的文件的位置和长度的散列值,进行匹配处理。在本发明的实施例中,所述运算处理包括加、减、乘、除、逻辑与、逻辑或、移位、t匕较处理。在本发明的实施例中,所述逻辑控制处理包括跳转处理和返回处理,其中所述跳转处理包括有条件跳转处理和非条件跳转处理,返回处理包括有条件返回处理和非条件返回处理。在本发明的实施例中,每个病毒记录包含针对一种计算机病毒的、记录如何进行定位处理、运算处理和/或逻辑控制处理、以及匹配处理的多条检测信息、以及记录如何进行病毒清除处理的多条清除信息,所述检测模块203对于每个病毒记录,利用所述多条检测信息,对待检测的文件进行包括定位处理、运算处理和/或逻辑控制处理、以及匹配处理的检测处理,在所述检测处理中,如果所述多条检测信息中的每一条检测信息均被成功执行,则将所述待检测的文件判定为含病毒文件。在本发明的实施例中,所述清除模块205根据对应的病毒记录中的多条清除信息,对所述含病毒文件进行病毒清除处理。在本发明的实施例中,所述清除模块205执行以下的一个或多个处理删除所述含病毒文件;修改所述含病毒文件的入口点地址;向所述含病毒文件的特定区域写入数据块;在所述含病毒文件内复制数据块;删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;删除所述含病毒文件头部和/或尾部的特定大小的数据;设置所述含病毒文件的大小。由于上述各装置实施例与前述各方法实施例相对应,因此不再对各装置实施例进行详细描述。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的装置中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个装置中。可以把实施例中的若干模块组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者模块中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个装置实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。权利要求1.一种用于检测和清除计算机病毒的方法(100),包括利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;用于检测计算机病毒的检测处理,其包括-基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;-将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;-基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。2.如权利要求I所述的方法,其中所述脚本语言使用可扩展标记语言XML进行描述。3.如权利要求I所述的方法,其中所述可移植执行文件结构包括可移植执行文件入口点的偏移、可移植执行文件头的偏移、可移植执行文件数据目录的偏移、可移植执行文件附加数据的偏移、可移植执行文件节表的偏移、和/或可移植执行文件节的偏移。4.如权利要求I所述的方法,其中所述定位处理包括根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,进行定位处理。5.如权利要求I所述的方法,其中所述多个病毒记录中的每个病毒记录具有各自的文件特征,在所述基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理的步骤中,检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理。6.如权利要求I所述的方法,其中所述匹配处理支持通配符号和浮动搜索,包括以下的一种或多种处理利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行匹配处理;利用可移植执行文件的导入函数信息和/或导出函数信息,进行匹配处理,所述导入函数信息包括导入模块和导入函数的数量和名称,所述导出函数信息包括导出模块和导出函数的数量和名称;以及利用所述待检测的文件的位置和长度的散列值,进行匹配处理。7.如权利要求I所述的方法,其中所述运算处理包括加、减、乘、除、逻辑与、逻辑或、移位、比较处理。8.如权利要求I所述的方法,其中所述逻辑控制处理包括跳转处理和返回处理,其中所述跳转处理包括有条件跳转处理和非条件跳转处理,返回处理包括有条件返回处理和非条件返回处理。9.如权利要求1-8中的任一项所述的方法,其中每个病毒记录包含针对一种计算机病毒的、记录如何进行定位处理、运算处理和/或逻辑控制处理、以及匹配处理的多条检测信息、以及记录如何进行病毒清除处理的多条清除信息,所述检测处理包括对于每个病毒记录,利用所述多条检测信息,对待检测的文件进行包括定位处理、运算处理和/或逻辑控制处理、以及匹配处理的检测处理,在所述检测处理中,如果所述多条检测信息中的每一条检测信息均被成功执行,则将所述待检测的文件判定为含病毒文件。10.如权利要求9所述的方法,其中对待检测的文件进行病毒清除处理的步骤包括根据对应的病毒记录中的多条清除信息,对所述含病毒文件进行病毒清除处理。11.如权利要求10所述的方法,其中所述对所述含病毒文件进行病毒清除处理的步骤包括以下的一个或多个处理删除所述含病毒文件;修改所述含病毒文件的入口点地址;向所述含病毒文件的特定区域写入数据块;在所述含病毒文件内复制数据块;删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;删除所述含病毒文件头部和/或尾部的特定大小的数据;设置所述含病毒文件的大小。12.一种用于检测和清除计算机病毒的装置(200),包括脚本编写和编译模块(201),用于利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;检测模块(203),用于检测计算机病毒的检测处理,其包括-定位子模块(203a),用于基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;-运算和逻辑控制子模块(203b),用于将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;-匹配子模块(203c),用于基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及清除模块(205),用于对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。13.如权利要求12所述的装置,其中所述脚本语言使用可扩展标记语言XML进行描述。14.如权利要求12所述的装置,其中所述可移植执行文件结构包括可移植执行文件入口点的偏移、可移植执行文件头的偏移、可移植执行文件数据目录的偏移、可移植执行文件附加数据的偏移、可移植执行文件节表的偏移、和/或可移植执行文件节的偏移。15.如权利要求12所述的装置,其中所述定位处理包括根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,进行定位处理。16.如权利要求12所述的方法,其中所述多个病毒记录中的每个病毒记录具有各自的文件特征,所述定位子模块(203a)检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理。17.如权利要求12所述的装置,其中所述匹配处理支持通配符号和浮动搜索,包括以下的一种或多种处理利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行匹配处理;利用可移植执行文件的导入函数信息和/或导出函数信息,进行匹配处理,所述导入函数信息包括导入模块和导入函数的数量和名称,所述导出函数信息包括导出模块和导出函数的数量和名称;以及利用所述待检测的文件的位置和长度的散列值,进行匹配处理。18.如权利要求12所述的装置,其中所述运算处理包括加、减、乘、除、逻辑与、逻辑或、移位、比较处理。19.如权利要求12所述的装置,其中所述逻辑控制处理包括跳转处理和返回处理,其中所述跳转处理包括有条件跳转处理和非条件跳转处理,返回处理包括有条件返回处理和非条件返回处理。20.如权利要求12-19中的任一项所述的装置,其中每个病毒记录包含针对一种计算机病毒的、记录如何进行定位处理、运算处理和/或逻辑控制处理、以及匹配处理的多条检测信息、以及记录如何进行病毒清除处理的多条清除信息,所述检测模块(203)对于每个病毒记录,利用所述多条检测信息,对待检测的文件进行包括定位处理、运算处理和/或逻辑控制处理、以及匹配处理的检测处理,在所述检测处理中,如果所述多条检测信息中的每一条检测信息均被成功执行,则将所述待检测的文件判定为含病毒文件。21.如权利要求20所述的装置,其中所述清除模块(205)根据对应的病毒记录中的多条清除信息,对所述含病毒文件进行病毒清除处理。22.如权利要求21所述的装置,其中所述清除模块(205)执行以下的一个或多个处理删除所述含病毒文件;修改所述含病毒文件的入口点地址;向所述含病毒文件的特定区域写入数据块;在所述含病毒文件内复制数据块;删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;删除所述含病毒文件头部和/或尾部的特定大小的数据;设置所述含病毒文件的大小。全文摘要本发明公开了一种用于检测和清除计算机病毒的方法和装置。所述方法包括利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;用于检测计算机病毒的检测处理,其包括基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。文档编号G06F21/56GK102867144SQ20121032869公开日2013年1月9日申请日期2012年9月6日优先权日2012年9月6日发明者周辉,徐传宇,李智鹏,唐杰申请人:北京奇虎科技有限公司,奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1