为数不多的计算机病毒研究理论是 Frederick B. Cohen在1987年提出的,没有一种算法可以完全检测所有可能的病毒。 然而,使用不同的杀毒软件,可能检查出更多计算机病毒。
有几种方法杀毒引擎(杀毒软件)可以使用它来识别恶意软件:
签名的检测(Signature-based detection) :是识别病毒和其他恶意软件最常见的方法。杀毒引擎(杀毒软件)同比较文件的内容和数据库中已知的恶意软件签名对比来检测恶意软件。
启发式的检测(Heuristic-based detection):与基于特征码的检测方法通常一起使用。 它通常基于已知恶意代码特征来检测恶意软件。
基于行为学检测(Behavioural-based detection) :类似于启发式的检测,也用在入侵检测系统 。 主要的区别是,基于行为学检测检测恶意代码本身,而不是硬编码的特点,它是基于恶意软件运行时的行为。 很明显,这种技术能够检测(已知或未知)运行后才开始恶意行为的恶意软件。
沙箱检测(Sandbox detection:) :是一个基于行为学特定的检测技术,而不是检测在运行时行为的状态,这个程序运行在虚拟环境 ,用日志记录操作程序执行。 根据操作记录,杀毒引擎(杀毒软件)可以确定程序是否恶意。 如果不是,那么,程序在真正的环境中执行。 尽管这种技术已经证明是非常有效的,但鉴于其沉重和缓慢,终端用户很少用于防病毒解决方案。
数据挖掘技术(Data mining techniques) :是一个检测恶意软件最新的方法。 数据挖掘和机器学算法用于尝试从文件本身中提取给定的一系列文件功能分类文件的行为(如恶意或良性)。