> Можно поподробнее про эвристик, где информацию взять и > прочее. Если не сложно конечно! Потому как алгоритмы, которые используются производителями АВ-ов засекречены и являются их собственной разработкой и интеллектуальной собственностью. А в инете хотя более-менее полной инфы на эту тему я не встречал.
В общем для начала могу посоветовать искать не только подстроки, но и коды операций (то есть сигнатурой является не сами байты, а только некоторые биты из них) - это поможет при борьбе с полиморфиками, которые морфируют изменяя регистры в которых выполняются операции. Кроме того, плавающие сигнатуры, в которых символы собственно сигнатуры разбавлены пустыми инструкциями.
Но это так, модификации сигнатурного анализатора. Для написания эвристического анализатора тебе потребуется как минимум эмулятор процессора. То бишь вместо самого запуска кода нужно посмотреть что будет, если он будет запущен и отслеживать ход исполнения. Для того чтоб он умел ловить вирусы тебе нужно набрать базу вирусов и искать что в них есть одинакового (например, как уже было указано, точка входа в конце файла, или в начале, но там инструкция jmp, всякие системные вызовы типа попытки записать в исполняемый файл), а потом заставить свой эвристик искать то же самое автоматически.
|