Я давно хотел написать программу, использующую эвристические алгоритмы распознования заразы. Заодно это хороший повод разобраться с PE-форматом. Если у кого-то есть уже готовые куски кода, пожайлуста, поделитесь.
JCronuz Спасибо за ссылки - хороший материал. А есть что-нибудь из распознования постороннего кода без эмуляции, на основе анализа структуры PE-файла? Например: - Анализ полей PE-формата (раскладки секций и их аттрибутов) - Обнаружение кода путем анализа его правдоподобности - Обнаружение упакованных фрагментов программы и др?
_basmp_ Ну в смысле если код не имеет неизвестных / запрещенных / редких инструкций, то этот код считается настоящим кодом. Делать такой анализ можно для того, чтобы обнаружить все фрагменты кода в программе (если таких фрагмента 2 - один в первой секции, а второй - в другой секции, то скорее всего этот второй - инородная вставка). Или если: 1) Правдоподобный код занимает не всю первую секцию 2) Фрагмент кода только один и он не в первой секции, при этом программа не упакована.
MSoft Не, просто я считаю не хватает нормального эвристика, поскольку большинство заразных внедрений (90%) можно обнаружить, не запоминая его сигнатуру. Вместо улучшения эвристика все антивирусисты составляют сигнатуры для новой заразы, поскольку с сигнатурных баз можно содрать намного больше денег. Поэтому-то сигнатурные базы растут быстрее вирусных эпидемий и через пару лет наши компьютеры превратятся в московскую центральную библиотеку.
ну это ты громко сказал. Ты видимо просто не пользовался нормальными антивирусами с хорошим эмулятором. А использовать то, что ты называешь эвристикой - имхо бред! Будет твой антивирус как авира - на все подряд ругаться, не находя при этом ни одного вируса
Как-то видел статейку об антивирусах, где для распознавания вирусов использовался нейросетевой алгоритм. Вот там результаты были просто потрясающими, если верить написанному.