為數不多的計算機病毒研究理論是 Frederick B. Cohen在1987年提出的,沒有一種算法可以完全檢測所有可能的病毒。 然而,使用不同的殺毒軟件,可能檢查出更多計算機病毒。
有幾種方法殺毒引擎(殺毒軟件)可以使用它來識別惡意軟件:
簽名的檢測(Signature-based detection) :是識別病毒和其他惡意軟件最常見的方法。殺毒引擎(殺毒軟件)同比較文件的內容和數據庫中已知的惡意軟件簽名對比來檢測惡意軟件。
啟發式的檢測(Heuristic-based detection):與基于特征碼的檢測方法通常一起使用。 它通常基于已知惡意代碼特征來檢測惡意軟件。
基于行為學檢測(Behavioural-based detection) :類似于啟發式的檢測,也用在入侵檢測系統 。 主要的區別是,基于行為學檢測檢測惡意代碼本身,而不是硬編碼的特點,它是基于惡意軟件運行時的行為。 很明顯,這種技術能夠檢測(已知或未知)運行后才開始惡意行為的惡意軟件。
沙箱檢測(Sandbox detection:) :是一個基于行為學特定的檢測技術,而不是檢測在運行時行為的狀態,這個程序運行在虛擬環境 ,用日志記錄操作程序執行。 根據操作記錄,殺毒引擎(殺毒軟件)可以確定程序是否惡意。 如果不是,那么,程序在真正的環境中執行。 盡管這種技術已經證明是非常有效的,但鑒于其沉重和緩慢,終端用戶很少用于防病毒解決方案。
數據挖掘技術(Data mining techniques) :是一個檢測惡意軟件最新的方法。 數據挖掘和機器學算法用于嘗試從文件本身中提取給定的一系列文件功能分類文件的行為(如惡意或良性)。