Интернет магазин китайских планшетных компьютеров



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

23 января 2011


Оглавление:
1. Полиморфизм компьютерных вирусов
2. История
3. Пример кода на ассемблере
4. Способы защиты



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

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

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

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

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

Скажем,

 add eax, 5 

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

 sub eax, −5 

а код

 mov ax, bx 

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

 push bx
 pop ax
  • перестановка, обмен местами инструкций, порядок следования которых неважен
  • добавление «мусорных команд»


Просмотров: 3378


<<< Сетевые черви