您的位置:首页 > 其它

杀毒软件查杀原理

2010-12-07 18:46 288 查看
核心提示:本文介绍了杀毒软件是如何判断一个文件有毒的,以及查杀的方法,包括:特征码法、校验和法、行为检测法、软件模拟法。这些方法依据原理不同,实现时所需开销不同,检测范围不同,各有所长。...

杀毒软件查杀原理

杀毒软件是根据什么来进行病毒判断并查杀的呢?在讲这个问题之前首先要弄清楚杀毒软件检测病毒的方法,在与病毒的对抗中,及早发现病毒有重要。早发现,早处理,可以减少损失。检测病毒的方法有:特征码法、校验和法、行为检测法、软件模拟法。这些方法依据原理不同,实现时所需开销不同,检测范围不同,各有所长。

一,特征码法

特征码法被早期应用于SCAN、CPAV等著名病毒检测工具中。国外专家认为特征码法是检测已知病毒的最简单、开销最小的方法。

特征码法的实现步凑如下:

1、 抽取的代码比较特殊,不大可能与普通正常程序代码吻合。
2、 抽取的代码要适当长度,一方面维持特征码的唯一性,另一方面又不要有太大的空间与时间的开销。如果一种病毒的特征码增强一字节,要检测3000种病毒,增加的空间就是3000字节。在保持唯一性的前提下,尽量使特征码长度短些。
杀毒软件在扫描文件的时候,在文件中搜索是否含有病毒数据库中的病毒特征码。如果发现病毒特征码,由于特征码与病毒一一对应,便可以断定为病毒。这里的特征码分为两个部分,第一个是特征码位置;第二部分是狭义上的特征码。

杀毒软件运用特征码扫描确定某文件为病毒时,这个文件需要满足两个条件:
1、该文件中的某一位置与杀毒软件病毒库的某一位置相对应。
2、该位置上存放的代码与病毒库中定义的该位置上的代码相同。

采用病毒特征码法的检测工具,面对不断出现的新病毒必须不断更新版本,否则检测工具便会老化,逐渐失去实用价值。病毒特征码法对从未见过的新病毒,自然无法知道其特征码,因而无法去检测这些新病毒。
特征码法的优点是检测准确快速、可识别病毒的名称、误报率低、依据检测结果可做解毒处理。缺点是不能检测未知病毒、搜集已知病毒的特征码,费用开销大、在网络上效率低(在网络服务器上,因长时间检索会使整个网络性能变坏)。特征码分为文件特征码和内存特征码两种。内存特征码是程序载入内存之后所具有的特征码,在非运行状态下是不可发觉的。关于有关特征码的知识,笔者会在后面的章节中详细介绍。
特征码的特点:
A、速度慢。随着病毒种类的增多、检索时间变长。如果检索5000种病毒,必须对5000个病毒特征码逐一检查。如果病毒种数在增加,检病毒的时间开销就变得十分可观。
B、误报率低。
C、不能检查多态性病毒。特征码法是不可能检测多态性病毒的。国外专家认为多态性病毒是病毒特征码法的索命者。
D、不能对付隐藏性病毒。隐藏性病毒如果先于检测工具运行的时间进驻内存,在被检测工具扫描前已经将被查文件中的病毒代码剥去,检测工具运行时便是在检查一个虚假的“好文件”,因而不会报警,会被隐藏性病毒所蒙骗。
二,校验和法
将正常文件的内容,计算其效验和,将该效验和写入文件中或写入别的文件中保存。在文件使用过程中,定期或不定期的检查文件当前内容算出的校验和与原来保存的校验和是否一致,因而得出文件是否被感染的结论,这种方法叫校验和法,它即可发现已知病毒又可发现未知病毒。在SCAN和CPAV工具的后期版本中除了病毒特征码法之外,还纳入校验和法,以提高其检测能力。

运用校验和法查病毒采用三种方式:
1、在检测病毒工具中纳入校验和法,对被查的对象文件计算其正常状态的校验和,将校验和值写入被查文件中或检测工具中,而后进行比较。
2、在应用程序中,放入校验和法自我检查功能,将文件正常状态的校验和写入文件本身中,每当应用程序启动时,比较现行校验和与原校验和值。实现应用程序的自检测。
3、将校验和检查程序常驻内存,每当应用程序开始运行时,自动比较检查应用程序内部或别的文件中预先保存的校验和。
校验和法既能发现已知病毒也能发现未知病毒,但不能识别病毒类,不能报出病毒名称。由于病毒感染并非文件内容改变的唯一原因,正常程序有时也会造成文件内容的改变,所以校验和法常常误报警。而且此种方法也会影响文件的运行速度,所以用监视文件的校验和来检测病毒,不是最好的方法。
遇到下述情况:已有软件版更新、变更口令、修改运行参数,校验和法都会误报警。
还有就是,校验和法对隐藏性病毒也无效。隐藏性病毒进驻内存后,会自动剥去染毒程序中的病毒代码,使校验和法受骗,对一个有毒文件算出正常校验和。

校验和法的特点:
优点:方法简单,能发现未知病毒,被查文件的细微变化也能发现。缺点:发布通行记录正常态的校验和、会误报警、不能识别病毒名称、不能对付隐蔽性病毒。
三,行为监控法
利用病毒的特有行为特征性来检测病毒的方法,称为行为监控法。通过对病毒多年的观察、研究,有一些行为是病毒的共同行为,而且比较特殊。在正常程序中这些行为比较罕见。当程序运行时监控其行为,如果发现了病毒行为,立即报警。

这些做为监控病毒的行为特征码如下:
A. 占有INT 13H
所有的引导型病毒,都攻击boot扇区或主引导扇区。系统启动时,但boot扇区或主引导扇区获得执行权时,系统刚刚开工。一般引导型病毒都会占用INT 13H功能,因为其他系统功能未设置好,无法利用。引导型病毒占据INT 13H 功能,在其中放置病毒所需的代码。
B、 改DOS系统为数据区的内存总量
病毒常驻内存后,为防止DOS系统将其覆盖,必须修改系统内存总量。
C、 对COM、EXE文件做写入动作
病毒要感染,必须写COM、EXE文件。
D、 病毒程序与宿主程序的切换
染毒程序运行中,先运行病毒,而后执行宿主程序。在两者切换时,有许多特征行为。
行为监测法的特点:
行为监测法的长处:可发现未知病毒、可相当准确地预报未知的多数病毒。行为监测法的短处:可能误报警、不能识别病毒名称、实现时有一定难度。
四,软件模拟法
多态性病毒每次感染都变化其病毒密码,对付这种病毒,特征代码法失效。因为多态性病毒代码实施密码化,而且每次所用密钥不同,把染毒的病毒代码相互比较,也无法找出相同的可能做为特征的稳定代码。虽然行为检测法可以检测多态性病毒,但是在检测出病毒后,因为不知病毒的种类,难以将病毒彻底清除。
软件模拟法的特点:
软件模拟法的长处:对病毒的判断能力最强(因为综合了多种查毒方法)。
软件模拟法的短处:扫描速度慢,查毒往往不准确。
五,总结
了解完以上几种检测方法,最终的结论就是:目前杀毒软件最主要还是依靠特征码识别技术来检测病毒。也就说特征码就是杀毒软件为了判定病毒而从病毒本身提取出来的有特点的代码(病毒和人一样,总会有特点的)我们的免杀就是专门针对 这些特征码的,也就是说让杀毒软件找不到这些特征码就可以达到免杀的目的了。不过还有一点要强调的是,文件本身的功能 是不能损坏的,也就是说免杀之后 的文件和原文件在功能上要做到完全相同。只有这样才算是真正有效的免杀。

注:本文摘自《杀不死的密码》作者姬良
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: