杀毒软件是怎么识别病毒的,它的原理是什么?

如题所述

常用的反病毒软件技术 特征码技术:基于对已知病毒分析、查解的反病毒技术 目前的大多数杀病毒软件采用的方法主要是特征码查毒方案与人工解毒并行,亦即在查病毒时采用特征码查毒,在杀病毒时采用人工编制解毒代码。 特征码查毒方案实际上是人工查毒经验的简单表述,它再现了人工辨识病毒的一般方法,采用了“同一病毒或同类病毒的某一部分代码相同”的原理,也就是说,如果病毒及其变种、变形病毒具有同一性,则可以对这种同一性进行描述,并通过对程序体与描述结果(亦即“特征码”)进行比较来查找病毒。而并非所有病毒都可以描述其特征码,很多病毒都是难以描述甚至无法用特征码进行描述。使用特征码技术需要实现一些补充功能,例如近来的压缩包、压缩可执行文件自动查杀技术。 但是,特征码查毒方案也具有极大的局限性。特征码的描述取决于人的主观因素,从长达数千字节的病毒体中撷取十余字节的病毒特征码,需要对病毒进行跟踪、反汇编以及其它分析,如果病毒本身具有反跟踪技术和变形、解码技术,那么跟踪和反汇编以获取特征码的情况将变得极其复杂。此外,要撷取一个病毒的特征码,必然要获取该病毒的样本,再由于对特征码的描述各个不同,特征码方法在国际上很难得到广域性支持。特征码查病毒主要的技术缺陷表现在较大的误查和误报上,而杀病毒技术又导致了反病毒软件的技术迟滞。 虚拟机技术:启发式探测未知病毒的反病毒技术 虚拟机技术的主要作用是能够运行一定规则的描述语言。由于病毒的最终判定准则是其复制传染性,而这个标准是不易被使用和实现的,如果病毒已经传染了才判定是它是病毒,定会给病毒的清除带来麻烦。 那么检查病毒用什么方法呢?客观地说,在各类病毒检查方法中,特征值方法是适用范围最宽、速度最快、最简单、最有效的方法。但由于其本身的缺陷问题,它只适用于已知病毒,对于未知病毒,如果能够让病毒在控制下先运行一段时间,让其自己还原,那么,问题就会相对明了。可以说,虚拟机是这种情况下的最佳选择。 虚拟机在反病毒软件中应用范围广,并成为目前反病毒软件的一个趋势。一个比较完整的虚拟机,不仅能够识别新的未知病毒,而且能够清除未知病毒,我们会发现这个反病毒工具不再是一个程序,而成为可以和卡斯帕罗夫抗衡的ibm深蓝超级计算机。首先,虚拟机必须提供足够的虚拟,以完成或将近完成病毒的“虚拟传染”;其次,尽管根据病毒定义而确立的“传染”标准是明确的,但是,这个标准假如能够实施,它在判定病毒的标准上仍然会有问题;第三,假如上一步能够通过,那么,我们必须检测并确认所谓“感染”的文件确实感染的就是这个病毒或其变形。 目前虚拟机的处理对象主要是文件型病毒。对于引导型病毒、word/excel宏病毒、木马程序在理论上都是可以通过虚拟机来处理的,但目前的实现水平仍相距甚远。就像病毒编码变形使得传统特征值方法失效一样,针对虚拟机的新病毒可以轻易使得虚拟机失效。虽然虚拟机也会在实践中不断得到发展。但是,pc的计算能力有限,反病毒软件的制造成本也有限,而病毒的发展可以说是无限的。让虚拟技术获得更加实际的功效,甚至要以此为基础来清除未知病毒,其难度相当大。 受病毒在理论上就是不可判定的这一根本前提的制约,事实上,无论是启发式,亦或是虚拟机,都只能是一种工程学的努力,其成功的概率永远不可达到100%。这是惟一的却又是无可奈何的缺憾。 未来的反病毒技术: 虚拟现实 对于未来技术的展望可能只是一种近乎飘渺的幻想,但是就如同计算机病毒最初的描述出现在科幻小说里,虽然还有许许多多我们目前仍在实现却仍未实现的技术,甚至还有许多我们根本未考虑到的因素。只要技术足够成熟,网络世界中是完全有可能出现类似人工智能的反病毒技术。 未来反病毒的疑难之一就是:我们永远无法写出一个合理的程序来辨识和查杀病毒。病毒掌握了人类所掌握的一切,它同样能辨识和分析反毒程序,并对自身重新编程;而反毒程序要可能同样地对病毒进行探测,再进行自编程。病毒与反毒程序的角逐就变成了自编程能力的实现,而这样的结果只能导致网络空间紧张,甚至崩溃! 我们还可以考虑用另一种方式:人工进入计算网络世界的方法来查杀病毒。人有足够的智能和经验积累来完成对病毒的辨识和杀除,而这就只剩下建立人与计算机之间的“桥”的问题了。 目前的虚拟现实技术重点放在了对人与人的自 查看原帖>>
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-02
一个合格的病毒特征码需要满足以下几个要求:

       1、不能从数据区提取,因为数据区的内容很容易改变,一旦病毒换了一个面具,改变了数据内容,特征码基本就会失效。
       2、在保持特征码的唯一性的前提下,应当尽量使得特征码短小精悍,从而减少检测过程中的时间与空间的复杂度,提高检测效率。

       3、病毒程序的特征码相对一定不能匹配到普通程序,比如选取病毒入口点的二进制代码,就很高几率出现误报的情况。

       4、特征码的长度应当控制在128个字节以内以加快扫描速度。

 

特征码选取的基本方法

       1、计算校验和

       这种方法的特点是简单快速,也是360的杀毒引擎引擎采用的方式。但是采用这种方法,一种特征码只能匹配一个病毒的一个版本,即便病毒的变动很小,也需要重新提取特征码,这造成的后果是会使得特征码库过于庞大,一般用于临时提取特征码(这也是360庞大而缓慢的原因)。所以这种计算校验和的方式不值得一论)

       2、提取特征字符串

       采用这种方式能识别某一类病毒,sbj引擎便是以这种技术为基础的(所以sws安全中心体积比较小)。以目前很流行的filekiler病毒为例,经过我们之前的逆向分析可以知道,病毒最开始会使用"viax"这个字符串来进行解密的操作。因此需要在病毒程序的二进制代码中搜索"viax",相信一般的程序中不会出现"viax"这段字符,因此就可以考虑将这两个字符串或者其中的一个字符串作为filekiller病毒的特征码。
3、提取程序产生的系统调用
这是一种非常新的病毒库引擎杀毒方案,目前只有sbj引擎用于辅助杀毒,sws安全中心在开发sbj引擎时发明了这种方案。这种办法类似于第二种,尽管速度,杀毒准确性在录入合理的情况下轻松碾压其它方式,但是如果不在提取识别码的时候人工审核的话误报率会很高(原因是程序如果进行了非常基本的系统调用那么所有进行这类调用的程序都将成为"病毒"),因此成本高昂,再加上sws安全中心本来就是开源软件,挣不到钱,还不接受捐赠(原来做了个企业版卖钱现在也开了),所以无法维护,还是只能作为辅助使用。
第2个回答  推荐于2017-09-21
  杀毒软件杀毒的基本原理是通过匹配病毒库中的数据和文件代码来检测文件是否被病毒感染的。如果在文件代码中检测到了病毒代码,那就会进行报毒并清除病毒代码(如果能)。
  现在流行的杀毒技术是“虚拟机侦测技术”,把文件放入软件内置的小型虚拟机内模拟运行,检查有没有造成危害。
  除此之外,云技术现在也已经开始快速发展,各种人工查毒服务已经通过云直接开始发展。
第3个回答  2019-01-16
杀毒软件的原理就是误导消费者,打击同行。凡是没有经过杀毒软件公司认证的软件,就认为是有病毒,这样所有公司诞生的新软件,就得向杀毒软件公司交钱。
第4个回答  2020-06-21
杀毒软件主要就是来识别病毒代码。说白了就是代码杀代码。 建议下载一个联想电脑管家体验吧。
相似回答