Программы – детекторы рассчитаны на обнаружение конкретных вирусов и основаны на сравнении характерной (спецификой) последовательности байтов (сигнатур или масок вирусов), содержащихся в теле вируса, с байтами проверяемых программ. Программы – детекторы нужно регулярно обновлять, так как они быстро устаревают и не могут выявлять новые виды вирусов.
Следует подчеркнуть, что программы – детекторы могут обнаружить только те вирусы, которые ей “известны”, то есть, есть сигнатуры этих вирусов заранее помещены в библиотеку антивирусных программ.
Таким образом, если проверяемая программа не опознается детектором как зараженная, то еще не следует считать, что она “здорова”. Она может быть инфицирована новым вирусом, который не занесен в базу данных детектора.
Для устранения этого недостатка программы – детекторы стали снабжаться блоками эвристического анализа программ. В этом режиме делается попытка обнаружить новые или неизвестные вирусы по характерным для всех вирусов кодовым последовательностям. Наиболее развитые эвристические механизмы позволяют с вероятностью около 80% обнаружить новый вирус.