Еще один способ, применяемый вирусами для того, чтобы укрыться от обнаружения, - модификация своего тела. Это затрудняет нахождение таких вирусов программами - детекторами - в теле таких вирусов не имеется ни одной цепочки байтов, по которым можно было бы идентифицировать вирус. Такие вирусы называются полиморфными, или самомодифицирующимися.
Примечание. Многие полиморфные вирусы используют шифрование своего кода, меняя параметры этой кодировки при создании каждой копии. Кроме того, они тем или иным способом изменяют и свою стартовую часть, которая служит для раскодировки остальных команд вируса.
В простейших полиморфных вирусах вариации их кода ограничиваются использованием одних регистров компьютера вместо других, добавлением «незначащих» команд и т.д. И программы - детекторы приспособились обнаруживать команды в стартовой части вируса, несмотря на маскирующие изменения в них. Но имеются вирусы с чрезвычайно сложными механизмами самомодификации. В них каждая значащая инструкция передается одним из сотен тысяч возможных вариантов, при этом используется более половины всех команд процессора.
Тем не менее, имеются антивирусные программы - детекторы, способные обнаруживать даже такие сложные полиморфные вирусы. Как правило, они содержат эмулятор (программный эквивалент) процессора, то есть могут интерпретировать программы без их реального выполнения (на настоящем, незараженном компьютере). Такие детекторы интерпретируют анализируемые программы, то есть «выполняют» их на программном эквиваленте процессора, и в ходе этого «выполнения» решают, является ли анализируемая программа вирусом или нет. Эта задача очень сложна (точнее, нерешима), поскольку вирусы не используют каких-то специфических действий, которые не применялись бы другими программами. Однако лучшие детекторы способны отлавливать неизвестные полиморфные вирусы в более чем 80 % случаев при очень малом количестве ложных тревог.
Примером такой программы является Dr.Web из антивирусного комплекта DSAV фирмы «Диалог - Наука».