Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Компьютерные вирусы

ро
       просмотреть  код  программы  позволяет  утилита  HackerView;   Также
       возможно  использование  любого  отладчика.  В  данном  случае   для
       изучения кода зараженных приманок использовался дизассемблер Sourcer
       v5.04. Несмотря наотсутствие некоторых полезных опций и  ошибки  при
       дизассемблировании  (достаточно  редкие),  пользоваться   программой
       удобно -упакованная PkLite, она занимает на дискете всего 48  Кбайт.
       Итак,  запускаем  дизассемблер  командой  sr  test-сом.  На   экране
       появилась темно-синяя лицевая страница.  Нажав  клавишу  <а>,  можно
       перейти  на  страницу  опций.  Рекомендуется  установить  опцию  <а>
       -обязательно дизассемблировать фрагмент  программы,  располагающийся
       после команд jmp/ret/iret - это позволяет получить ассемблерный  код
       тех фрагментов программ, в которые нет  явного  перехода  (процедуры
       обработки прерываний, скрытые подпрограммы и такдалее). Нажав Enter,
       вернемся на первую  страницу.  Запустим  процесс  дизассемблирования
       нажатием  клавиши   .   В   зависимости   от   производительности
       компьютера, процесс дизассемблирования длится отнескольких секунд до
       нескольких минут. Для грубой оценки размера листинга можно  принять,
       что один килобайт кода  соответствует  десяти-пятнадцати  килобайтам
       текста.  6740  байт  зараженной  приманкидают  96Кбайт   текста+файл
       test.sdf. Этот очень интересный файл хранит  в  текстовом  виде  как
       опции,  использованные  при  дизассемблировании,  так  и   параметры
       полученного текста  (размещение  фрагментов  кода  и  данных,  место
       расположения  символических  имен  и  -прочее).Если   изменить   эти
       параметры, переименовать файл в test.def и передать  его  Sourcer  в
       командной  строке  в  качестве  параметра,  то  дизас-семблер  будет
       работать в соответствии с новыми инструкциями. Аналогичную  операцию
       проделаем для файла test.exe.
    4.  Займемся  анализом  полученного   листинга.   Поверхностно   изучая
       зараженные приманки, видим:
    -    файлы увеличили свою длину на 1740 байт;
     - в их конце явно видны посторонние коды;
     - изменилось время  создания  файлов,  точнее,  изменилось  количество
       секунд - оно стало равным 60;
     - в начале файла test.com появилась команда jmp;
     - в заголовке файла test.exe изменились значения  полей  ReloCS,ExelP,
       ExeSP, ReloSS, PartPag и PageCnt.
Итак.
 
а) В начале вирусного кода содержится последовательность команд
вида:
 
         call sub_1
sub_1:    pop si
         sub si,3
 
Подобная последовательность символов характерна для  очень  многих  вирусов.
Команда call помещает в стек смещение следующей заней команды. Это  значение
извлекается вирусом при помощи команды pop si (в то  время  как  обычно  это
делается командой  ret)  и  помещается  в  регистр  si.  Скорректировав  эту
величину  на  длинукоманды  call  (3  байта),  вирус  получает   возможность
корректного обращения  к  ячейкам  памяти  относительно  кодового  сегмента:
movcs:Data[si],  хххх.  Не  случайно  DrWeb  всегда  реагирует  на  подобные
команды в начале программ, выдавая предупреждающее сообщение.  Впрочем,  это
не является обязательным признаком присутствия вируса. Например,  устаревшая
пристыковочная  защита  от  несанкционированного  копирования  (НСК)  
также пользуется этим приемом.
б)  Важным  элементом  алгоритма   вируса   является   определение   наличия
собственного резидента в ОЗУ. Вызывая прерывание DOS с <секретной>  функцией
83h, вирус  ждет  реакции  системы.  <Здоровая>  система  не  среагирует  на
провокацию, а <больная> поместит в регистр  dx  число  1990h  (год  создания
вируса?),   чем   и   известит   о   наличии   вируса    в    памяти.    Вот
соответствующийфрагмент вирусного обработчика прерывания INT 21h:
 
      cmp ah,83h
      je loc_9
loc_9:
      mov dx, 1990h
      iret
 
Наличие такой проверки  использует  антивирус-фаг  во  время  детектирования
вирусного кода  в  оперативной  памяти.  Также  антивирус-блокировщик  может
имитировать присутствие  вируса  в  памяти,  предотвращая  его  внедрение  в
программное обеспечение компьютера.
 
в) В случае  отсутствия  вирусного  обработчика  INT  21h  в  памяти,  вирус
пытается  установить  его  и  остаться   в   памяти   резидентно.   Алгоритм
резидентной  записи  кода  вируса  в  память  основанна  прямой  модификации
заголовка блока памяти (МСВ). Подробное описание этого алгоритма  и  методов
борьбы с вирусами, использующими подобный метод инсталляции, можно  найти  в
одном из номеров журнала <Монитор> за 1993 г.
г) Установив свою резидентную копию  в  ОЗУ  (или  обнаружив  наличие  такой
копии), вирус передает управление  оригинальной  программе.  Изучение  этого
момента  чрезвычайно  важно  для  анализа.  В  процессе  заражения   (данный
фрагмент из листинга удален) вирус считывает (в  data_15)  24  байта  начала
программыи  анализирует  первые  два  байта  из  них.   В   зависимости   от
содержимого первого слова ( или нет), вирус выполняет  заражение  жертвы
либо по СОМ-, либо по ЕХЕ-алгоритму,  дописывая  фрагмент  памяти  со  своим
Пред.1617
скачать работу

Компьютерные вирусы

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ