计算机病毒的检测方法计算机病毒进行传染,必然会留下痕迹。检测计算机病毒,就是要到病毒寄生场所去检查,发现异常情况,并进而验明“正身”,确认计算机病毒的存在。病毒静态时存储于磁盘中,激活时驻留在内存中。因此对计算机病毒的检测分为对内存的检测和对磁盘的检测。一般对磁盘进行病毒检测时,要求内存中不带病毒,因为某些计算机病毒会向检测者报告假情况。例如4096病毒在内存中时,查看被它感染的文件长度时,不会发现该文件的长度已发生变化,而当在内存中没有病毒时,才会发现文件长度已经增加了4096字节。又如引导区型的巴基斯坦大脑病毒,当它被激活在内存中时,检查引导区时看不到病毒程序而只看到正常的引导扇区。病毒检测的原理主要基于下列几种方法:利用病毒特征代码串的特征代码法利用文件内容校验的校验和法用软件虚拟分析的软件模拟法比较被检测对象与原始备份的比较法运用反汇编技术分析被检测对象确认是否为病毒的分析法1.病毒的检测方法1.1特征代码法特征代码法被认为是用来检测已知病毒的最简单、开销最小的方法。原理:将所有病毒的病毒码加以剖析,并且将这些病毒独有的特征搜集在一个病毒码资料库中,简称“病毒库”,检测时,以扫描的方式将待检测程序与病毒库中的病毒特征码进行一一对比,如果发现有相同的代码,则可判定该程序已遭病毒感染。在设计此类检测工具时,应考虑如下一些问题:(1)高速性。随着病毒种类的增多,检索时间变长。如果检索5000种病毒,必须对5000个病毒特征代码逐一检查。如果病毒种数再增加,检查病毒的时间开销就变得十分可观。此类工具检测的高速性,将变得日益困难。(2)误报警率低。(3)要具有检查多态性病毒的能力。此要求是对病毒检测工具的新要求,特征代码法是不可能检测多态性病毒的。(4)能对付隐蔽性病毒。隐蔽性病毒如果先进驻内存,后运行病毒检测工具,隐蔽性病毒能先于检测工具,将被查文件中的病毒代码剥去,检测工具的确是在检查一个有毒文件,但它真正看到的却是一个虚假的“好文件”,而不能报警,被隐蔽性病毒所蒙骗。1.2校验和法校验和法是将正常文件的内容,计算其“校验和”,将该校验和写入文件中或写入别的文件中保存。在文件使用过程中,定期地或每次使用文件前,检查文件现在内容算出的校验和与原来保存的校验和是否一致,以此来发现文件是否感染。优点:既可发现已知病毒又可发现未知病毒。常用:在许多常用的检测工具中,都采用了这种方法。缺点不能识别病毒种类,不能报出病毒名称误报警:由于病毒感染并非文件内容改变的惟一的排他性原因,文件内容的改变有可能是正常程序引起的,所以校验和法常常误报警。会影响文件的运行速度当已有软件版本更新、变更口令或修改运行参数时,校验和法都会误报警。校验和法对隐蔽性病毒无效:隐蔽性病毒进驻内存后,会自动剥去染毒程序中的病毒代码,使校验和法受骗,对一个有毒文件算出正常校验和。1.3软件模拟法为了检测多态性病毒,国外研制了新的检测方法——软件模拟法。它是一种软件分析器,用软件方法来模拟和分析程序的运行,以后演绎为虚拟机上进行的查毒,启发式查毒技术等,是相对成熟的技术。新型检测工具纳入了软件模拟法,该类工具开始运行时,使用特征代码法检测病毒,如果发现隐蔽病毒或多态性病毒嫌疑时,启动软件模拟模块,监视病毒的运行,待病毒自身的密码译码以后,再运用特征代码法来识别病毒的种类。1.4比较法比较法是用原始的或正常的文件与被检测的文件进行比较。长度比较法内容比较法内存比较法中断比较法比较时可以靠打印的代码清单(比如DEBUG的口命令输出格式)进行比较,或用程序来进行比较(如DOS的DISKCOMP、COMP或PCTOOLS等其他软件)。可以发现那些尚不能被现有的查病毒程序发现的计算机病毒。因为病毒传播得很快,新病毒层出不穷,由于目前还没有做出通用的能查出一切病毒,或通过代码分析,可以判定某个程序中是否含有病毒的查毒程序,发现新病毒就只有靠比较法和分析法,有时必须结合这两者一同工作。1.长度比较法及内容比较法病毒感染系统或文件,必然引起系统或文件的变化,既包括长度的变化,又包括内容的变化。因此,将无毒的系统或文件与被检测的系统或文件的长度和内容进行比较,即可发现病毒。2.内存比较法这是一种对内存驻留病毒进行检测的方法。由于病毒驻留于内存,必须在内存中申请一定的空间,并对该空间进行占用、保护。因此,通过对内存的检测,观察其空间变化,与正常系统内存的占用和空间进行比较,可以判断是否有病毒驻留其间。但无法判定为何种病毒。此法对于那些隐蔽型病毒无效。3.中断比较法病毒为实现其隐蔽和传染破坏之目的,常采用“截留盗用”技术,更改、接管中断向量,让系统中断向量转向执行病毒控制部分。因此,将正常系统的中断向量与有毒系统的中断向量进行比较,可以发现是否有病毒修改和盗用中断向量。比较法的好处是简单、方便,不需专用软件。缺点是无法确认病毒的种类名称。1.5分析法一般使用分析法的人不是普通用户,而是反病毒技术人员。使用分析法的目的是:(1)确认被观察的磁盘引导区和程序中是否含有病毒。(2)确认病毒的类型和种类,判定其是否是一种新病毒。(3)搞清楚病毒体的大致结构,提取特征识别用的字符串或特征字,用于增添到病毒代码库供病毒扫描和识别程序用。(4)详细分析病毒代码,制订相应的反病毒措施方案。上述4个目的按顺序排列起来,正好大致是使用分析法的工作顺序。使用分析法要求具有比较全面的有关计算机、DOS结构和功能调用以及关于病毒方面的各种知识。