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

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

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

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

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

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

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 18 19 20 21 22 23 < 24 > 25 26 27 28 29 30 .. 123 >> Следующая

стандартные имена программ на свои имена.
Табл. 3 на стр. 75 показывает, как компаньонский вирус заражает
директорию.
В верхней части таблицы вы видите директорию с неза-раженной программой
FLY. СОМ.
В нижней части представлена директория после заражения. Программа FLY.COM
была переименована в FLY.CON, а вирус устроился в скрытом файле FLY.COM.
Если вы кликните на "FLY* или напечатаете это имя в окне подсказки DOS,
то сначала выполнится вирус.
После завершения своей работы он передаст контроль своей жертве -
FLY.CON.
В качестве примера мы рассмотрим нерезидентский компаньонский вирус
CSpawn. Он должен выполнять две важные вещи:
1) распространяться (заражать другие файлы) и
2) передавать контроль программе-жертве, которую собирается выполнить
пользователь.
74
Директория C:\POND
Имя Расширение Размер #Clu Дата Время
FLY COM 210 1 4/19/04 9:13p
MUSY COM 1984 1 4/19/04 9:13p
PUSY COM 501 1 4/19/04 9:13p
ROKKY COM 4306 1 4/19/04 9:13p
а) Директория с незараженной программой FLY.COM.
Директория C:\POND
Имя Расширение Размер #Clu Дата Время
FLY COM 180 1 10/31/04 9:54a
MUSY COM 180 1 10/31/04 9:54a
FLY CON 210 1 4/19/04 9:13p
PUSY COM 180 1 10/31/04 9:54a
ROKKY COM 180 1 10/31/04 9:54a
MUSY CON 1984 1 4/19/04 9:13p
PUSY CON 501 1 4/19/04 9:13p
ROKKY CON 4306 1 4/19/04 9:13p
б) Директория с зараженной программой HOST1. СОМ.
Атрибуты Normal,Archive Normal,Archive Normal,Archive Normal,Archive
Атрибуты Hidden Archive Hidden,Archive Normal,Archive Hidden,Archive
Hidden,Archive Normal,Archive Normal,Archive Normal,Archive
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Выполнение жертвы
Прежде чем вирус CSpawn начинает инфицировать другие программы, он
выполняет программу-жертву, к которой прикрепился. Эта жертва существует
как отдельный файл на диске, в то время как копия вируса CSpawn,
прикрепленная к программе, обретает новое имя. Перед выполнением
программы-жертвы, CSpawn должен уменьшить количество заимствованной
памяти. Прежде всего он переносит стек. В COM-программе стек всегда
располагается на верху сегмента кода. Это означает, что программа
затребует 64К памяти даже в том случае, если ее длина составляет сотню
байтов.
Для своей работы вирусу CSpawn необходимо несколько сотен байтов для
стека, поэтому мы спокойно перемещаем стек вниз и размещаем его над
окончанием кода. Для этого мы изменяем значение sp:
mov sp,OFFSET FINISH + 10ОН
Далее CSpawn приказывает DOS освободить незатребованную память. Это
делается с помощью функции 4АН прерывания 21Н и установки числа
параграфов (16-байтовых блоков) памяти для их последующего сохранения в
регистре Ьх:
mov ah,4AH
mov bx,(OFFSET FINISH)/16 + 11H int 21H
Когда память высвобождена, вирус выполняет жертву, используя команду ЕХЕС
функции 4ВН для DOS прерывания 21Н. Чтобы правильно вызвать эту функцию,
пара ds:dx должна указывать на имя выполняемого файла (а оно сохраняется
в вирусе в переменной SPAWN NAME). Пара es:bx должна указывать на блок
параметров, который подскажет DOS, где расположены такие переменные, как
командная строка и строка описания конфигурации.
Этот блок параметров показан в табл. 4.
76
ГЛАВА 2. Самовоспроизводство
Там же детально описаны все поля. И, наконец, регистр а1 должен быть
установлен до нуля (это подскажет DOS, что нужно загрузить и выполнить
программу; другие значения позволяют DOS загружать, но не выполнять
программу). Код для указанных действий довольно простой:
mov dx.OFFSET SPAWN_NAME mov bx,OFFSET PARAM_BLK mov ax,4B00H int 21H
DOS загружает и выполняет жертву без последующей суеты с возвратом
контроля вирусу. Естественно, в процессе выполнения жертва может
вовлекать другие регистры (включая стек и сегментные регистры), поэтому
вирус должен провести кое-какую очистку перед дальнейшими действиями.
Табл. 4. Блок контроля функции ЕХЕС
Офсет Размер (байты) Описание
0 2 Сегмент строки описания конфигурации. Он обычно сохраняется в
офсете 2СН в PSP вызываемой программы, хотя программа, вызывающая ЕХЕС,
может изменить его.
2 4 Указатель на командную строку (обычно в офсете 80Н в PSP
вызываемой программы, PSP:80H)
6 4 Указатель на первый (по умолчанию) FCB (обычно в офсете 5СН в
PSP, PSP:5CH)
10 4 Указатель на второй FCB (обычно в офсете 6СН в PSP, PSP:6CH)
14 4 Первоначальная пара ss:sp загружаемой программы (подфункция 1
и 3, возвращаемая DOS)
18 4 Первоначальная пара cs:ip загружаемой программы (подфункция 1
и 3, возвращаемая DOS)
77
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Поиск файлов
Наш компаньонский вирус ищет файлы для инфекции таким же образом, как это
делал Toad2. Он использует функции DOS: Search First и Search Next
(функции 4EH и 4FH прерывания 21Н). Вирус CSpawn предназначен для
инфицирования каждого COM-файла в текущей директории, как только тот
будет выполняться пользователем. Сам процесс поиска следует той логике,
которую мы разбирали в случае Toad.
Подпрограмма поиска выглядит примерно так:
mov dx, OFFSET COM.MASK
Предыдущая << 1 .. 18 19 20 21 22 23 < 24 > 25 26 27 28 29 30 .. 123 >> Следующая