1.特征码
这是一种最简单也是最直接的方法,特征码就是从病毒中提取的一段字串,杀毒软件利用特征码通过对比找出病毒。
2.广谱特征
相信使用小红伞和金山的朋友对这个词很熟悉。
好了继续我们的话题,病毒为了逃避杀软的查杀开始进化,产生很多变种,像灰鸽子变种啊...机器狗变种啊......
这样的话我们就没办法通过简单的提取一段字串的特征码来找出病毒了,对于这种情况我们采用多段提取特征码的方法来解决,然后在段与段之间增加一些掩码。比如1(X)3(X)5(X)7在出现(X)的地方我们无视不参与比较。
这种方法对变种病毒有一定的查找能力,但是有时候难免出错。
3.行为判定
有些杀毒软件采用了虚拟机技术,虚拟机大家也不陌生吧,也就是一种虚拟的运行环境,在虚拟的环境里运行程序,当病毒进行破坏和传染的时候安全软件就可以发现他。这种技术对未知病毒和变种的查杀很有效,但是目前实现起来难度很大。
4.脱壳
一般制造病毒的时候为了逃避杀软达到隐藏自己的目的都会对病毒进行加壳,杀毒软件要去壳之后才能发现病毒。(补充点:还有解压缩,其实跟脱壳的性质基本一样)
5.启发式扫描
一般病毒感染都会有一定的特征,比如说特定的指令啊,不正常的读写文件啊,或者终结自身程序啊。杀毒引擎就依靠这些行为来判断某些程序是不是病毒了。
总结:特征码扫描准确率高,但是对未知病毒和变种几乎毫无办法。
广谱对变种病毒有一定的效果,缺点是误报稍微高点点,技术成熟的话效果应该不错。
行为判定应该是目前最强大的技术吧,但是实现起来比较困难
脱壳的话我觉得应该不算是一种扫描引擎吧,但是杀软基本都要具备脱壳能力,当然越强越好。
启发式扫描检测变种病毒和比较强,误报也比较低,检测未知病毒稍微弱点。