Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Азбука хакера 3. Компьютерная вирусология - Собейкис В.Г.

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 91 92 93 94 95 96 < 97 > 98 99 100 101 102 103 .. 123 >> Следующая

jmp INITLP INITX:
mov WORD PTR es:[di+14],OFFSET END_DRIVER mov WORD PTR es:[di+16],cs
.здесь указан конец драйвера хог ах,ах ;ах=0 указывает на выполнение и
выход
retn
HELLO_MSG DB 'DEVICE 1.00 Says "Hello!"',ODH.OAH.O
Эта подпрограмма используется для невыполняемых функций.
А АЛ
ГЛАВА 8. Инфицирование драйверов устройств
NOTJMPLEMENTED:
хог ах,ах ;ах=0 указывает на успех и выход
retn
END_DRIVER: ; мет ка для конца драйвера устройства
END STRAT
Шаг третий: стратегия инфекции
Чтобы создать вирус для нового типа исполнительного файла, нам нужно
разработать стратегию инфицирования. Как наш код будет крепиться к
драйверу устройства? Как он будет функционировать и размножаться? Как он
будет выполнять программу-жертву? Здесь нам понадобится творчество. В
отличие от СОМ- и ЕХЕ-файлов, драйверы устройств имеют две точки входа.
То есть имеются два разных места, откуда может начинаться выполнение:
подпрограмма стратегии STRAT и подпрограмма прерывания INTR. Обе
подпрограммы вызываются дальним вызовом и позже прерываются инструкцией
retf. Точки входа этих подпрограмм содержатся в заголовке драйвера
устройства (см. табл. 18).
Из-за двух точек входа драйвер устройства можно инфицировать либо в
подпрограмме STRAT, либо в подпрограмме INTR, либо в обеих подпрограммах.
Чтобы разобраться в процессе инфицирования, мы рассмотрим цели этих
подпрограмм.
INTR выполняет большой объем работы и создает тело драйвера. Она должна
управлять набором функций, которые характеризуют данный драйвер
устройства. Эти функции инициализируют устройство, открывают и закрывают
его, читают и пишут, проверяют статус. Мы не будем копаться в них, потому
что они не имеют отношения к вирусу. Тем не менее, когда DOS хочет
выполнить одну из этих функций, она вызывает драйвер устройства и
передает ему структуру данных, называемую заголовком запроса. Заголовок
запроса содержит номера команд, подлежащие выполнению, и другие данные,
которые нужны для этой функции. (Например, функция чтения должна знать,
где размещаются данные, которые она должна читать.) Заголовок запроса
сохраняется в какой-то локации памяти, выбранной DOS.
Показывая драйверу устройства, где находится заголовок запроса, DOS
сначала вызывает подпрограмму STRAT и передает ей адрес заголовка запроса
в es:bx. Подпрограмма STRAT сохраняет
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
этот адрес в драйвере устройства, и позже он становится доступным для
различных функций в подпрограмме INTR. Таким образом, подпрограмма STRAT
обычно вызывается первой, затем вызывается INTR и выполняются те или
другие желаемые функции.
Вирус драйвера устройства может заражать подпрограмму STRAT или
подпрограмму INTR. Фактически, он может даже отфильтровать какую-то
особую функцию. Некоторые драйверы устройств вызываются так часто, что
без введенного ограничения вирус будет тратить слишком много времени на
поиск файлов.
ЛЬбл. 18. Заголовок драйвера устройства
Офсет Размер Описание
0 4 Указатель на следующий драйвер устройства. Эта область данных
используется DOS для нахождения драйверов устройств в памяти. Она
кодируется в программе до значения 0FFFFFFFF - -1.
4 2 Флаги атрибутов устройства. Говорят DOS, с каким видом
драйвера иметь дело и какие функции поддерживать.
6 2 Офсет точки входа подпрограммы STRAT.
8 2 Офсет точки входа подпрограммы INTR.
10 8 Имя устройства.
Вирус DEVIRUS, который мы сейчас рассмотрим, инфицирует подпрограмму
STRAT. Он добавляет себя к концу драйвера устройства и перенаправляет
указатель подпрограммы STRAT на себя. Закончив свое выполнение, он
прыгает к старой подпрограмме STRAT и, выполнив ее, удаляет себя из
подпрограммы STRAT в памяти, чтобы при повторном вызове STRAT вируса там
не было. Вирус не будет выполняться, пока данное устройство не
перезагрузится с диска.
Мы могли бы создать вирус, инфицирующий подпрограмму INTR. Обычно при
загрузке драйвера устройства DOS вызывает STRAT и затем с помощью функции
0 (инициализация устройства)
лг\п
ГЛАВА 8. Инфицирование драйверов устройств
вызывает подпрограмму INTR. Часть инициализации включает рапорт для DOS о
том, как много памяти нужно для драйвера устройства. Этот рапорт
находится в заголовке запроса как сегментофсет верхней части устройства в
офсете 14 заголовка.
Если вирус не хочет оставаться резидентом, он должен перехватить функцию
0 и расположиться выше сегмента:офсета рапорта в заголовке запроса.
Вирус, который добавляет себя к концу драйвера устройства и не
модифицирует сегмент:офсет отчета для DOS, выполняет это с легкостью. Но
он должен восстановить указатель на INTR в заголовке устройства, иначе
вирус будет вызываться после его удаления из памяти и система почти
наверняка "повиснет*.
Рис. 21. Логика DEVIRUS
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Если вирус, инфицирующий INTR, хочет стать резидентом памяти, он должен
перехватить функцию 0 и модифицировать сег-мент:офсет отчета для DOS. Для
этого он может вызвать реальную подпрограмму INTR (которая помещается в
Предыдущая << 1 .. 91 92 93 94 95 96 < 97 > 98 99 100 101 102 103 .. 123 >> Следующая