Навигация сайта

  • Главная
  • Статьи
  • Учебники
  • Программы
  • Друзья сайта

Изменение собственного кода

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

jmp $+2

mov word ptr OFFS,9090h
OFFS:
mov AL,FFh

В AL будет помещено FFh, несмотря на то что эти инструкции, казалось бы заменяются на 9090h, то есть NOP;NOP. С появлением Pentium'а это не прокатывает. Известно, что конвейер в процессоре Pentium все-таки есть, но трюк не срабатывает.

Гораздо шире применяется модификация файла программы. Придумано много различных способов шифрации. Это и перестановка местами частей вируса, и элементарное A:=A+B, A:=A xor B и т.д., и добавление ничего не значащих команд (мусора), и "раскидывание" свое кода пятнами по файлу и т.п. Выбор достаточно велик, особенно если учесть, что все эти методы можно комбинировать.

 

Техническая поддержка и аудит сайта.