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

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

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

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

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

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

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

239
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
С другой стороны, загрузочный сектор первым получает контроль после кода
запуска ROM, поэтому его трудно остановить для вставки вируса. Однако
если нам удастся написать вирус загрузочного сектора и снабдить его
хорошей антиопределяющей подпрограммой, он будет почти непобедим.
В следующих трех главах мы исследуем несколько разных вирусов
загрузочного сектора. Сейчас я расскажу вам о двух простейших вирусах -
точнее, о двух моделях, доказавших с годами свою эффективность.
Загрузочные секторы
Прежде всего давайте разберемся, как работает нормальный незаряженный
загрузочный сектор. Так как операции загрузочного сектора скрыты от глаз
пользователя и часто игнорируются компьютерной литературой, мы копнем эту
тему поглубже.
Когда вы подключаете компьютер к электропитанию, процессор начинает
выполнять машинный код в локации F000:FFF0. В этой области верхней памяти
расположена системная BIOS ROM (Basic-Input-Output-System Read-Only-
Memory - основная система ввода и вывода памяти, доступной только для
чтения). Она является первым кодом, выполняемым компьютером.
Этот ROM-код записан на Ассемблере и сохраняется в чипах компьютера
(EPROMS). Обычно этот код выполняет несколько функций.
Во-первых, он проверяет аппаратные средства и выясняет, какие устройства
являются частью компьютера (например, монитор, количество и типы дисков).
А во-вторых, он следит, чтобы эти устройства работали правильно. Знакомой
частью стартового кода является тест памяти. Кроме того, данный код
настраивает таблицу прерываний в нижних 1024 байтах памяти.
Таблица прерываний поставляет векторы прерываний, чтобы все программы,
загружаемые позже, имели доступ к службам BIOS. Стартовый код
инициализирует область данных BIOS, которая начинается в локации памяти
0040:0000Н - сразу над таблицей векторов прерываний.
240
ГЛАВА 6. Инфицирование загрузочного сектора
Когда все эти важные приготовления сделаны, BIOS передает контроль
операционной системе, хранящейся на диске.
А на каком диске? Где именно на диске? Как она выглядит? Насколько
большая? Каким образом ее загружать и выполнять? Если бы BIOS знала
ответы на все эти вопросы, она была бы конфигурирована на одну
единственную операционную систему. И как только новая система (например
OS/2) или новая версия прежней системы (Windows) инсталлировалась бы в
машину, ваш компьютер становился бы грудой бесполезного железа.
Загрузочный сектор обеспечивает посредничество в процессе загрузки
операционной системы. Он работает примерно так. BIOS ничего не знает об
операционной системе, которую вы хотите использовать. Но она знает, что
сначала нужно перейти к дисководу и диску А:, чтобы прочитать первый
сектор на диске (трек О, головку 0, сектор 1) в локации памяти
0000:7С00Н. Если BIOS не находит диск А:, она ищет жесткий диск С: и
пытается загрузить его первый сектор.
(Если она вообще не находит диска, то либо переходит к ROM Basic, либо
генерирует сообщение об ошибке - в зависимости от типа компьютера.)
Некоторые компьютеры позволяют пользователю загружаться сначала с диска
С: и только в случае неудачи опробовать диск А:.
Как только первый сектор (загрузочный сектор) считывается в память, BIOS
проверяет последние два байта и смотрит, содержат ли они значения 55Н и
ААН. Если имеют, то BIOS уверена, что правильный загрузочный сектор
найден. Она передает ему контроль в 0000:7С00Н. С этого момента
загрузочный сектор несет ответственность за загрузку операционной системы
в память и ее последующий старт (независимо от вида и типа операционной
системы).
Таким образом, BIOS (и производителям компьютеров) не нужно знать о том,
какая ОС работает на вашей машине. Каждая операционная система имеет
уникальный формат диска и собственную конфигурацию, свои системные файлы
и т. д. Поскольку каждая операционная система вставляет загрузочный
сектор в первый сектор на диске, она может быть загружена и выполнена.
Так как сектор обычно имеет длину в 512 байтов, загрузочный сектор
является маленькой и грубой программой. Он предназначен для загрузки с
диска другого большого файла или группы секторов
241
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
и последующей передачи контроля этому файлу или секторам. Где находится
данный файл, зависит от операционной системы.
В мире DOS (который мы рассмотрим в качестве легкого примера) большая
часть операционной системы содержалась в трех файлах на диске. Одним из
них был знакомый нам COMMAND.COM. Два остальных были скрытыми файлами
(имели установленный атрибут "hidden"). Эти скрытые файлы располагались
первыми на диске - только в этом случае загрузочный сектор работал
правильно.
Если они размещались где-то в другом месте, DOS не загружалась с диска.
Имена этих файлов зависели от того, что вы использовали: PC-DOS (от IBM)
или MS-DOS (от Microsoft). В случае PC-DOS они назывались IBMBIO.COM и
IBMDOS.COM. В случае MS-DOS это были IO.SYS и MSDOS.SYS. MS-DOS 6.0 и 6.2
Предыдущая << 1 .. 56 57 58 59 60 61 < 62 > 63 64 65 66 67 68 .. 123 >> Следующая