Полиморфизм компьютерных вирусов

Полиморфизм (греч. πολυ- — много + греч. μορφή — форма, внешний вид) — техника, позволяющая затруднить обнаружение вируса с помощью скан-строк и, возможно, эвристики. Вирус, использующий такую технику, называется полиморфным.

Полиморфизм заключается в формировании кода вируса «на лету» — уже во время исполнения, при этом сама процедура, формирующая код также не должна быть постоянной и видоизменяется при каждом новом заражении.

Обнаружение по-настоящему полиморфных вирусов с помощью скан-строк невозможно. После появления полиморфизма антивирусные продукты в свою очередь также освоили новые техники: эвристика и эмуляторы кода.

Содержание

История

Первый известный полиморфный вирус был написан Марком Вашбёрном (Mark Washburn). Вирус, который назывался 1260, был создан в 1990 году. Более известный полиморфный вирус был внедрён в 1992 году болгарским взломщиком Dark Avenger (псевдоним), создавшим MtE (Mutation Engine).

Пример кода

Один из самых простых способов реализации полиморфизма — побайтное шифрование основной части вируса операцией xor

    mov cx, code_length
    mov si, offset begin_code
    mov al, xor_key
_loop:
    xor [si+cx], al ;расшифровываем байт
    loop _loop      ;берем следующий байт
    jmp si

    ;...
    ;...
    
begin_code:
    ;тут находится зашифрованная часть тела вируса
    ;именно она ответственна за заражение новых файлов
    ;и формирование новой процедуры расшифровки
    ;при этом эта же часть тела вируса в новом файле должна быть заново
    ;зашифрована, но уже с другим ключом 

Генерация процедуры расшифровки

Новая процедура расшифровки может формироваться с помощью следующих простых действий:

  • какая-либо инструкция заменяется на другую(-ие), но делающую то же самое.

Скажем,

 add eax, 5 

может быть заменена на

 sub eax, −5 
  • перестановка, обмен местами инструкций, порядок следования которых не важен
  • добавление «мусорных команд»

См. также

Ссылки

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home