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

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

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

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

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

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

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 80 81 82 83 84 85 < 86 > 87 88 89 90 91 92 .. 123 >> Следующая

данных (например, последний цилиндр, последняя головка и последний
сектор), а затем пометить этот сектор, как BAD (испорченный).
При работе с дискетами всегда сохраняйте оригинальные 20h байтов и
оставляйте их нетронутыми. Там находится загрузочная запись. Если влезете
туда, диск станет "нечитаемым". Кстати, если вы поместите 0 в поле
Sectors/Track, то полностью испортите дискету. В данном случае ни одна
программа на белом свете не сможет прочитать эту дискету. Вы получите
сообщения 'Divide Overflow' или 'Division by O', после чего вашу дискету
можно смело выбрасывать в мусорное ведро...
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Вирус Military Police
В качестве примера мы рассмотрим многоцелевой вирус Military Police
(Военная полиция). Это резидентный вирус, инфицирующий DOS ЕХЕ-файлы,
загрузочные секторы дискет и главный загрузочный сектор жесткого диска.
Вирус очень мощный, поэтому будьте осторожны, выполняя его на своем
компьютере.
1. МР как вирус загрузочного сектора
МР является многосекторным вирусом загрузочного сектора. При старте из
загрузочного сектора он становится резидентом и уменьшает количество
памяти, предоставляемое для DOS. Манипуляция размером памяти производится
в 0:413Н. При выполнении загрузочного сектора вирус пытается заразить
жесткий диск, заменяя оригинальный MBS на свой собственный и с помощью
VIR SIZE+1 вставляя себя в трек 0, головку 0, сектор 2. Оригинальный
главный загрузочный сектор вставляется в сектор VIR_SIZE+2.
Обосновавшись в памяти, вирус Military Police перехватывает прерывание
13Н и инфицирует дискеты в каждом случае, когда те становятся доступными.
На дискетах он размещает свой код в свободной области и отмечает занятые
им кластеры, как "плохие". Далее он может превращаться в обычную TSR-
программу и, находясь в памяти, заражать оттуда ЕХЕ-файлы.
2. МР превращается в TSR
Вирус загрузочного сектора становится резидентом, подстраивая размер
памяти в 0:413Н. В принципе, это легко определяется. Например, выполнение
служебной программы Scandisk покажет пользователю, что не вся ожидаемая
память доступна на диске. В случае 1.4 МГб дискеты вы получите сообщение:
1,457.664 полных байтов памяти 1,287.952 свободных байтов
Если "полные байты памяти" внезапно уменьшились, то причиной является
наличие вируса. Однако вирусу загрузочного сектора не нужно оставаться в
этой области памяти постоянно. Пережив загрузку операционной системы, он
может интегрироваться в DOS и раствориться в ее дебрях. Именно это и
делает МР. Он займ-
ОЛ Q
ГЛАВА 7. Многоцелевые вирусы
ствует штамп времени из системных часов в 0:46СН и ждет ровно DELAYCNT
секунд (в нашем случае: 30). Когда после этой задержки система вызывает
int 13Н, вирус инсталлирует перехватчик прерывания 21Н. Целью
перехватчика является приостановка любого рабочего приложения системы с
помощью функции 4СН int 21Н. Вирус захватывает вызов приложения и
инсталлирует себя в память. По сути, он захватывает PSP приостановленной
программы, ставит себя на ее место и превращает функцию останова (4СН) в
функцию TSR (31Н) - "прервать и остаться резидентом". То есть вирус
становится резидентом под DOS. Затем он может вернуть заимствованную
верхнюю память обратно DOS.
• Bi*jrc _ Верхняя часть г
Си>"шип памяти DOS Смблоая
Ввлшхюм> Функция 4СН
NM Int21H, перехваченная - • Biyjrc
МР
DOS DOS
- шиаг'л
Рис. 19. Вирус Military Police становится TSR (Int Vec Table - таблица
векторов прерывания)
Когда МР перехватывает функцию 4СН int 21h с кодом выхода 0, он получает
PSP текущего процесса с помощью DOS-функции 62Н.
Затем этот сегмент подстраивается таким образом, чтобы вирус мог
выполняться в офсете 100Н PSP, используя офсет, собранный им в верхней
памяти:
О АГ\
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
mov ah,62H ;получаем процесс PSP
int 21 h ;запрашивая приостановку программы add Ьх, 10Н ;
подстраиваемся под PSP
sub bx,7C0H-32*(VIR_SIZE+1) .подстраиваем начальный офоет ; вируса
mov es.bx ;и выставляем его сюда -
Далее вирус перемещается в этот сегмент:
push cs
pop ds ;ds=cs
mov si.OFFSET BBS ; перемещаем вирус в PSP
mov di.si
mov cx,512*(ViR_SIZE+2)
rep movsb
В конечном счете, перехватчики прерываний 13Н и 21Н должны быть
перенесены в новый сегмент. Это трудная задача, потому что векторы
прерываний могут находиться под другими перехватчиками прерываний. Если
они погребены слишком глубоко, то отыскать их будет трудно.
Чтобы передвинуть int 21h, МР сначала проверяет сег-ментюфсет,
сохраненный в таблице векторов прерываний.
Если он соответствует cs:OFFSET int_21H, то МР просто изменяет сегмент на
новое значение.
Если они не соответствуют, МР понимает, что какой-то перехватчик держит
int 21h под контролем.
Вирус надеется, что слоев здесь не слишком много, так как времени между
перехватом int 21h и получением его первой функции 4СН у вируса не
слишком много. Поэтому МР берет значение сегмента в векторе int 21h и
осматривает весь этот сегмент в поисках оригинального указателя cs:OFFSET
Предыдущая << 1 .. 80 81 82 83 84 85 < 86 > 87 88 89 90 91 92 .. 123 >> Следующая