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

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

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

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

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

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

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 50 51 52 53 54 55 < 56 > 57 58 59 60 61 62 .. 123 >> Следующая

214
ГЛАВА 5. Инфекция ЕХЕ-файлов
эти переменные, добавляя два указателя в таблицу указателей перемещения в
заголовке. При таком подходе вирус не может инфицировать половину всех
ЕХЕ-файлов.
Вирус YeUow Worm обходит это ограничение, самостоятельно выполняя
перемещение ss и cs, а не оставляя это работу для DOS. То есть он не
модифицирует таблицу указателей перемещения и, соответственно, может
инфицировать любой DOS ЕХЕ-файл.
Перемещать эти сегменты напрямую не трудно. Нужно лишь знать, что сегмент
0 в дисковом файле соответствует сегменту PSP+10H в памяти. Так как
сегмент PSP переходит к ЕХЕ-программе регистров ds и es при старте, его
можно использовать для перемещения cs и ss жертвы. Код будет выглядеть
примерно так:
START:
mov [PSP],ds сохранить PSP при старте
mov ах,[PSP] ;получить PSP add ax, 10Н ;добавить 10Н для перемещения
add [HOSTS],ах ;переместить первоначальный ss add [HOSTC+2],ax
;переместить первоначальный cs
Данный процесс не только прост. Он облегчает подпрограмму FILE_OK, потому
что не требует осмотра таблицы указателей перемещения. Кроме того, он
упрощает INFECT, так как нам больше не нужно модифицировать таблицу.
Файловые операции, основанные на FCB
Для файловых манипуляций DOS предоставляет два набора функций прерывания
21Н*. Мы уже рассматривали так называемые дескрипторные (или индексные)
функции. Другим набором являются DOS-функции, основанные на FCB (File
Control Block - файловый блок контроля). Вместо использования дескриптора
эти функции устанавливают особую структуру данных в памяти,
016
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
которая называется файловый блок контроля (см. табл. 8). Затем эти
функции передают указатель к FCB и определяют, к какому файлу им
требуется организовать доступ.
1кбл. 8. Структура файлового блока контроля
Офсет Размер Описание
-7 1 Расширение активно, если это FF. Используется для определения
файлового атрибута.
-6 5 Зарезервировано.
-1 1 Маска файлового атрибута, когда расширение активно.
0 1 Управляет флагом. 0=текущий, 1=А и т.д. (устанавливается
пользователем).
1 8 Имя файла (устанавливается пользователем).
9 3 Расширение имени файла (устанавливается пользователем).
12 2 Номер текущего блока.
14 2 Размер записи.
16 4 Размер файла в байтах.
20 2 Дата файла (иодируется как директорная строка)
22 10 Внутренняя рабочая область DOS.
32 1 Номер текущей записи.
33 4 Номер случайной записи.
Функции, основанные на FCB, достались нам как пережиток от операционной
системы СР/М. В древности, когда машины обладали только 64К RAM, FCB был
единственным способом доступа к файлу. Функции, основанные на
дескрипторе, появились гораздо позже (вместе с DOS 2.0). Они сделали FCB
внутренними функциями DOS. (Когда мы вызываем функцию, основанную на
дескрипторе, DOS все равно выстраивает FCB в своей внутренней памяти.)
Обычно использование функций, основанных на FCB, не эффективно. Функции,
основанные на дескрипторе, гораздо легче и эффективнее. Они позволяют вам
использовать простой доступ к файлу, передачу данных в любое место, в то
время как функции, основанные на FCB, вставляют данные только в область
обмена с
216
ГЛАВА 5. Инфекция ЕХЕ-файлов
диском. Современные функции позволяют вам открывать файлы в любых
директориях, а не только в текущей - еще одна черта, которую не
поддерживали старые функции. Но в каждом правиле имеются исключения.
1. Некоторые хитрые штучки (например, прямая подстройка размера файла)
легче выполнять с помощью функций FCB.
2. Если вирус пытается обойти чекер поведения антивирусной программы, а
большинство чекеров выявляют резидентные вирусы по перехвату функций,
основанных на дескрипторе, то использование функций FCB может оказаться
весьма полезным.
3. Старушка DOS, ностальгируя по дням своей молодости, тоже время от
времени использует функции FCB. Поэтому вирус может прокатиться на ее
спине и остаться незаметным для любого чекера.
Нахождение файлов, пригодных для инфекции
Вирус Yellow Worm перехватывает функции 11Н и 12Н прерывания 21Н, которые
являются функциями FCB по поиску файлов. Вирус выбрал их, потому что DOS
пользуется ими каждый раз, когда мы печатаем "DIR* или "COPY" в командной
строке. Как только пользователь вызывает одну из этих базовых команд DOS,
вирус начинает действовать.
Для применения функций 11Н и 12Н нам нужно установить FCB с "?" на
диапазон поиска файлового имени. Затем мы должны вызвать функцию с
помощью установки ds:dx, чтобы эта пара указывала на FCB. Тогда DOS
установит DTA на новый FCB с именем файла, который будет соответствовать
критериям поиска.
Когда одна из вышеуказанных функций используется вирусом в перехватчике
прерывания 21Н, она сначала передает вызов DOS, используя код:
pushf ; вызов оригинального обработчика int 21Н call DWORD PTR cs:
[OLD_21H]
Когда вызов возвращается, Yellow Worm проверяет то, что вернулось.
Сначала вирус осматривает запись файлового имени в FCB и смотрит,
является ли найденный файл ЕХЕ-файлом. Если да, то вирус вызывает функцию
Предыдущая << 1 .. 50 51 52 53 54 55 < 56 > 57 58 59 60 61 62 .. 123 >> Следующая