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

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

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

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

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

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

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 65 66 67 68 69 70 < 71 > 72 73 74 75 76 77 .. 123 >> Следующая

байте ноль. То есть Master Boot Sector нужно лишь сканировать записи
Таблицы разделов, найти этот флаг, рассчитать локацию первого сектора в
активном разделе и затем загрузить его как загрузочный сектор. Логика
этого процесса показана на рис. 16, а код для Master Boot Sector вы
найдете ниже.
Вирус Stoned инфицирует жесткий диск точно так же, как дискету, но вместо
загрузочного сектора операционной системы он перемещает Master Boot
Sector. Маленький секрет программы FDISK заключается в том, что она
всегда начинает первый раздел в цилиндре 0, головке 1, секторе 1. То есть
все секторы на цилиндре О и головке 0 свободны и не используются - кроме
сектора 1 (который содержит Master Boot Sector). Многие вирусы, включая
Stoned, сохраняют свой код именно в этой области. При инфицировании
жесткого диска вирус Stoned записывает оригинальный Master Boot Sector в
цилиндр 0, головку 0, сектор 7, в затем загружает его во время запуска
после того, как сам вирус становится резидентом памяти.
Главная загрузочная запись
.model small .code
Загрузчик выполняется, когда эта программа начинает действие из окна
подсказки DOS. Он читает Таблицу разделов и инсталлирует Master Boot
Sector на диск С:.
ORG 100Н LOADER:
mov ах,201Н ;читаем существующий главный загрузочный сектор mov bx.OFFSET
BUF mov cx,1 mov dx,80H int 13H
mov si,OFFSET BUF + 1BEH mov di,OFFSET PTABLE
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
mov сх,40Н
rep movsb;передвигаем таблицу разделов в новый сектор mov ах,301Н ;и
записываем ее на диск
mov bx.OFFSET BOOT mov cx,1 int 13H
mov ax,4C00H .затем выход в DOS int 21H
BUF. ;область для чтения диска
Master Boot Sector стартует здесь:
ORG 7C00H BOOT: cli
xor ax,ax устанавливаем сегменты и стек mov ds,ax mov es.ax mov ss.ax
mov sp,OFFSET BOOT sti
mov si,OFFSET PTABLE ;находим активный раздел
mov cx,4 SRCH: lodsb
cmp al,80H je ACT_FOUND add si.OFH loop SRCH
mov si.OFFSET NO_OP ;ни одна ОС не найдена
ГЛАВА 6. Инфицирование загрузочного сектора
ERROR:
call DISP_STRING {показываем сообщение об ошибке int 18Н ;олробуем
"основной загрузчик"
ACT_FOUND:
mov dl.al {операционная система найдена
lodsb .устанавливаем регистры на чтение
;ее загрузочного сектора
mov dh.al
lodsw
mov cx.ax
mov bx,OFFSET BOOT mov ax,201H
push cx {передвигаем главную загрузочную запись {сначала в офсет 600HI
mov si.bx mov di,600H mov cx,100H rep movsw pop cx
mov si.OFFSET MOVED - 7C00H + 600H push si
ret ;и прыгаем сюда MOVED:
int 13H {загружаем загрузочный сектор mov si.OFFSET NO_RD jc ERROR
{показываем сообщение, если нельзя читать mov ах,OFFSET BOOT push ax
ret {прыгаем к загрузочному сектору ОС
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Этот код показывает asciiz-строку в ds:si:
DISP_STRING: lodsb or al.al jz DSR mov ah.OEH int 10H DSR: ret
NO_OP DB 'No operating system.'.O ^Операционной системы не имеется"
NO_RD DB 'Cannot load operating system.'.O ;"He могу загрузить ОС"
ORG 7DBEH
PTABLE DB 40H dup (?)
;Таблица разделов находится здесь
DB 55Н.0ААН
END LOADER
Вирус Stoned всегда инфицирует диск в загрузочное время. Если вы вставите
зараженную дискету в дисковод (диск А:) и включите компьютер, Stoned
прыгнет в С: при его загрузке.
Чтобы заразить жесткий диск, вирус должен прочитать существующий Master
Boot Sector и убедиться, что диск еще не заражен. В отличие от Kilroy,
если Stoned уже С:, это делает жесткий диск "не загружаемым". Причина
этого в том, что "оригинальный" сектор является копией Stoned.
В результате образуется бесконечная петля загрузки и выполнения сектора в
цилиндр 0, головку 0, сектор 7!
Чтобы определить себя, Stoned просто проверяет первые четыре байта
загрузочного сектора. Этот вирус стартует с дальнего прыжка (ОЕАН), в то
время как обычные загрузочные секторы ОС стартуют с короткого прыжка
(Е9), a Master Boot Sectors стартует вообще по-другому.
Поэтому дальний прыжок ясно дает понять, что вирус уже здесь.
ГЛАВА 6. Инфицирование загрузочного сектора
Табл. 13. Записи Таблицы разделов
Офсет Размер Описание
0 1 Флаг активности: 0=неактивный раздел, 80Н=раздел загрузки
1 1 Номер головки, где начинается раздел.
2 2 Номер сектора/цилиндра, где начинается раздел. Это значение
используется в вызове к чтению BIOS INT I3H в регистре сх (например,
номер сектора размещается в нижних 6 битах младшего байта, а номер
цилиндра размещается в старшем байте и 2 верхних битах младшего байта.
4 1 Код операционной системы. Для стандартного DOS раздела с более
чем 32 Мгб он равен 6.
5 1 Номер головки, где раздел заканчивается.
6 2 Номер сектора/цилиндра, где раздел заканчивается. Кодируется
как регистр сх в вызове к INT 13Н.
8 4 Абсолютный номер сектора, где раздел начинается - причем,
цилиндр 0, головка 0, сектор 1 будет абсолютным сектором 0.
12 4 Размер раздела в секторах.
Попав на девственный диск, Stoned копирует в себя таблицу разделов и
затем прописывается на диск в цилиндр 0, головку О, сектор 1, выставляя
оригинальный Master Boot Sector в сектор 7. Простой, но очень эффективный
Предыдущая << 1 .. 65 66 67 68 69 70 < 71 > 72 73 74 75 76 77 .. 123 >> Следующая