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

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


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)

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


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

Описания вирусов

Предыдущая страница Следующая страница
1 ... 69 70 71 72 73 74 75  76 77 78 79 80 81 82 ... 99
        провождению  "улыбающейся  рожицы"  код  ASCII  02  между  двигающимися
        препятствиями код ASCII 254. В процессе анализа вируса я даже поиграл в
        данную игрушку. Дошел аж до 2 уровня...  Вид  игры  выглядит,  примерно,
        так:

                         ю                    ю
                     ю           ю    ю       ю       ю   ю
                   ю     ю  ю         ю   ю    ю     ю
                      ю      ю    ю       ю     ю      ю

Ply.based (Ply.3360,3486,3759,3768,4224,4722,5133,5175)
        Опасные нерезидентные пермутирующие (pemutating) вирусы. Данные  вирусы
        не являются, ни шифрованными, ни  полиморфными  вирусами.  Но  алгоритм
        создания своих вирусных копий очень близок  к  полиморфным  алгоритмам.
        Каждая  ассемблерная  команда  вируса  занимает  не более 3 байт, эти 3
        байта  в  свою  очередь  составляют  некую  вирусную  компоненту.  Если
        ассемблерная  инструкция  занимает  менее 3 байт в компоненте, то вирус
        "разбавляет"  ее  NOP-командами.  Причем в случайный момент времени эти
        NOP'ы  могут  изменять  свое  местоположение  ("плавать") в компоненте.
        Например:

        FB  STI   ->   90  NOP   ->   90  NOP
        90  NOP        FB  STI        90  NOP
        90  NOP        90  NOP        FB  STI

        Вирусы  состоят  из  3  блоков:  основной  блок,  блок  данных  и  блок
        тождественных  вызовов.  Также  в случайный момент времени вирусы могут
        переносить  данные  трехбайтовые  компоненты  из основного блока в блок
        тождественных  вызовов и заменять их на JUMP или CALL в основном блоке.
        И  наоборот  из  блока  тождественных  вызовов  в   основной   блок   в
        первоначальном виде. Например:

        FB        STI          ->     E9 ?? ??  JMP LOC_1
        90        NOP
        90        NOP

        RET_1:                        RET_1:

        E8 ?? ??  CALL LOC_1          B8 00 01  MOV AX,100

        ....................          ....................

        LOC_1:                        LOC_1:

        B8 00 01  MOV AX,100          90        NOP
        C3        RET                 FB        STI
        ??                            90        NOP
        ??                            E9 ?? ??  JMP RET_1

        Таким  образом,  одинаковые  инфицированные  файлы  могут  не совпадать
        ни  в  одном  байте  основного  вирусного  блока. Различные модификации
        вируса могут не заражать следующие файлы: AVP,AVPLITE,AVPVE,BAIT,EICAR,
        EMM386, F-PROT, FV386, FV86, MSAV, MVTOOL10, SCAN, TBSCAN,TBAV,TBCHECK,
        TBCLEAN, TBDISK, TBDRIVER, TBFILE, TBGENSIG, TBKEY,TBLOG,TBMEM,TBSETUP,
        TBSCANX,TBUTIL,VALIDATE,VIRSTOP,VIRUS,VPIC,VSAFE.  Ply.4722, 5133, 5175
        удаляют файл \NCDTREE.

PM.Wanderer
        Неопасный  резидентный  полиморфный  вирус,   использующий   защищенный
        (виртуальный) режим процессоров  i80386-Pentium.  Для  установки  своей
        резидентной копии в память и переключения в защищенный режим процессора
        (Protected Mode)  использует  документированный интерфейс VCPI (Virtual
        Control  Programm  Interface) драйвера расширенной памяти EMS (EMM386).
        Вирус  заражает  COM  и EXE-файлы при их запуске или открытии (f.4b00h,
        f.3dh  Int  21h).  При  старте   инфицированной   программы,   вирусный
        полиморфный  декриптор  расшифровывает  основное тело вируса и передает
        ему  управление.  Далее основной вирусный код выделяет участок памяти в
        верхних  адресах,  копирует  в  него  собственный  код  и  передает ему
        управление.  Затем  он  восстанавливает  код  инфицированного  файла  в
        программном сегменте (для EXE-файлов также производит настройку адресов
        перемещаемых  элементов)  и  приступает  к  непосредственному внедрению
        в  память своей резидентной копии. Первым делом вирус пытается выяснить
        установлен  ли  в  системе  драйвер  EMS.  Для  этого он получает адрес
        прерывания INT 67h и проверяет наличие строки EM* в заголовке драйвера.
        Далее  вирус  проверяет  не  находится  ли уже в памяти его резидентная
        копия - вызывает функцию AX=0BABAh INT 21h и проверяет ответ AX=0FA00h.
        Если драйвер EMS не установлен в системе или вирусная резидентная копия
	уже находится в памяти, а также в дальнейшем -при отсутствии интерфейса
	VCPI,  вирус  освобождает  ранее  выделенную память и отдает управление
	программе-вирусоносителю, заканчивая тем самым свою "жизнедеятельность"
	в  системе.  Если  же  "условия  флоры"   благоприятствуют,  то   вирус
        "перехватывает"  INT  01  и  трассирует  INT  21h  с  целью  нахождения
        определенной  последовательности  байт,  присутствующих  в оригинальном
        обработчике  INT  21h  MS - DOS  версий  5.00 - 7.00.    Если    данная
        последовательность  обнаружена,  то   вирус   запоминает   адрес   ядра
        обработчика INT 21h, обычно расположенного в области HMA. В  дальнейшем
        вирус  будет  использовать  этот адрес для вызова INT 21h при заражении
        файлов.  Дальнейшие  действия  вируса  -  проверка  наличия  в  системе
        интерфейса  VCPI  и  получение 4-ех адресов страниц памяти. Затем вирус
        получает  адрес  интерфейса  VCPI,  таблицу  страниц и адрес глобальной
        дескрипторной таблицы GDT (Global Descriptor Table),  состоящей из трех
        элементов (первый - дескриптор сегмента кода, два другие - используются
        драйвером VCPI). Вирус записывает в таблицу страниц ссылку на страницы,
        выделенные им драйвером VCPI, получает физический адрес страницы памяти
        сегмента, в котором вирус в данный момент  находится.  Потом   получает
        регистры  глобальной  дескрипторной таблицы GDT и дескрипторной таблицы
        прерываний  IDT  (Interrupt Descriptor Table).  Далее вирус создает три
        собственных  дескриптора  (кода  и  данных)  и   дескриптор   сегментов
        состояния  задачи  TSS  (Task State Segment) в глобальной дескрипторной
        таблице GDT, подготавливает значения для регистров CR3, GDTR,IDTR,LDTR,
        TR  и  адрес  CS:EIP  точки  входа  в  защищенный  режим  и  производит
        переключение  процессора  в защищенный режим работы с наивысшим уровнем
        привилегий - 0.  В  защищенном  режиме  вирус корректирует таблицу GDT,
        создавая в ней два собственных дескриптора сегментов и производит поиск
        дескриптора  TSS.  После  чего  вирус  устанавливает   две   аппаратные
        контрольные  точки  по  командам (Breakpoints)  на  первый  байт   кода
        обработчика INT 21h (адрес 0000:0084h)  и на первый байт кода в BIOS по
        адресу  0FE00:005Bh  (линейный  адрес 0FE05Bh). Обычно в BIOS по адресу
        0FE00:005Bh  находится  команда  перехода  (Near  Jump)  на   процедуру
        перезапуска  компьютера. Затем вирус корректирует дескрипторную таблицу
        прерываний  таким  образом,  чтобы  установить на прерывания: 1 (особый
        случай отладки) и 9  (клавиатура)  собственные дескрипторы обработчиков
        данных  прерываний.  После  этих  приготовлений вирус копирует свой код
        в  страницу  памяти,  полученную  им еще  до входа в защищенный режим и
        производит  переключение  процессора  в   виртуальный   режим   работы.
        Вирусный  обработчик  INT  09  производит  контроль за наличием и (или)
        восстановлением  своих  двух  контрольных  аппаратных  точек.  А также,
        данный  обработчик  отслеживает нажатие на Ctrl-Alt-Del и в этом случае
        "сбрасывает"  все  аппаратные  контрольные  точки.  Вирусный обработчик
        особого случая отладки  проверяет  произошло ли нарушение одной из двух
        "вирусных" контрольных точек по адресу команды.Если управление в данный
        обработчик  попало  из  точки,  находящейся  "на  процедуре"  в  BIOS -
        перезагрузки компьютера, то вирус сбрасывает все аппаратные контрольные
        точки,  так  же,  как  и обработчик INT 09 при нажатии на Ctrl-Alt-Del.
        Если  же нарушение вызвано контрольной точкой оригинального обработчика
        INT  21h,  то  вирус  анализирует значение регистра AX (или AH) с целью
        определения  функции  прерывания  INT  21h  и  в  зависимости  от этого
        предпринимает различные действия. Если AX=0BABAh, то вирус считает, что
        данный вызов исходит от его "собрата",записывает в AX значение 0FACCh и
        возвращает управление  оригинальному обработчику INT 21h. Если AX=3506h
        (получить адрес прерывания INT 06;обычно такой вызов существует во всех
        программах,  написанных  на  языках высокого уровня: C, Pascal,...), то
        вирус пытается найти в пространстве линейных адресов 0-90000h некоторую
        последовательность  байт,   очевидно,   принадлежащих  программе  ADinf
        (Дмитрию  Мостовому - автору ADinf, не удалось найти такую версию ADinf
        от  10.00  до  11.01,  в  которой  данная  последовательность  байт  бы
        присутствовала).  Если данная последовательность будет вирусом найдена,
        то он неким образом модифицирует найденный код,  так,  чтобы управление
        не  попадало  на  вызов какой-то межсегментной процедуры. Если AX=4B00h
        (запуск программы)  или AH=3dh и AL не равно ?Fh (открытие файла только
        на чтение),  то  вирус копирует свой код по адресу 9000:0000h (линейный
        адрес 90000h),переключает процессор в виртуальный режим работы и отдает
        управление  своему  коду,  находящемуся  в пределах первого мегабайта в
        сегменте  9000h.  Вирус  проверяет последние две буквы расширения имени
        файла  и производит создание своей полиморфной копии и заражение файлов
        размером  более  4K.  Причем вирус внедряет свой код в начало COM или в
        середину (сразу  же  за  заголовком) EXE-файлов, запоминая оригинальный
        программный код в конце файлов."Реальный рабочий код" вируса составляет
        3684  байт,  но на практике инфицированные файлы имеют приращение длины
        более 3940 байт.При возникновении любой ошибки в процессе заражения или
        при выходе из  виртуального  режима процессора вирус вызывает INT 21h с
        AX=4B00h для вызова  особого случая исключения и возвращения управления
        оригинальному  обработчику  INT  21h. Вирус в своем теле содержит текст
        "WANDERER,(c) P. Demenuk". По этой строке, видимо,можно сделать выводы,
        что  автором  данного  "шедевра" следует считать московского человека -
        Петра  Деменюка.  Через  три  года  Петя  создал  все-таки  свой  новый
        "великолепный продукт, достойный восхищения...".
        Из  всего  вышесказанного  следует,  что  обнаружить  резидентную копию
        данного  вируса,  находящегося  в  нулевом  кольце  защищенного  режима
        процессора  обычными  способами  невозможно.  Для  обнаружения вируса в
        памяти  необходимо  переключаться  в  защищенный  режим  с   наивысшими
        привилегиями  и  по  таблицам  GDT  или  IDT  производить его поиск. Но
        попытаться  обнаружить  признаки  вируса   в  системе  можно и обычными
        способами.  Для  этого необходимо прочитать линейные адреса двух первых
        аппаратных  контрольных  точек  (0  и  1)  и сравнить их со значениями,
        которые  описаны  выше. На  основании  наличия  определенных  адресов и
        делается  вывод  о  возможности  нахождения вируса PM.Wanderer в памяти
        компьютера.
        Теперь  немного  о  результатах  тестирования. При заражении нескольких
        тысяч  файлов-жертв  вирус  проявил  себя, как "жилец" - все зараженные
        файлы  оказались работоспособными. Здесь надо только сделать поправку -
        файлы  могут  оказаться  неработоспособными  в том случае, если их стек
Предыдущая страница Следующая страница
1 ... 69 70 71 72 73 74 75  76 77 78 79 80 81 82 ... 99
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (16)

Реклама