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

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

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

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

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

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

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

ним. То есть вам не нужен компилятор ресурсов, если только вы не хотите
вставлять окна в интерфейс с помощью менеджера презентаций.
Структура исполнительного файле
Структура OS/2 ЕХЕ-файла в сегментной модели памяти почти идентична
Windows ЕХЕ. Она содержит тот же Новый заголовок и те же структуры
данных. Поле операционной системы в офсете ЗбН в Новом заголовке
используется для разграничения программ для OS/2 и программ для Windows.
Программы для OS/2 имеют 1 в этом байте, а программы для Windows имщот 2.
В принципе, заголовки одинаковы и механизмы для осмотра и модифицирования
их остаются теми же. Благодаря такому сходству вирус Blue Lightening
функционально одинаков с Caro Magnum.
Функциональные вызовы
Как и в Wndows, многие функциональные вызовы OS/2 используют паскалевское
соглашение. Параметры вталкиваются в
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
стек, и функции вызываются с помощью дальнего вызова. В OS/2
функциональные имена и имена модулей другие.
Например, вместо вызова lopen для открытия файла нам нужно вызвать
DosOpen. (DOS здесь не имеет ничего общего с MS-DOS или PC-DOS. В данном
случае подразумевается обобщенный термин Disk Operating System - дисковая
операционная система.)
Параметры вызова для функций OS/2 отличаются от Windows. Например, вызов
lopen выглядит так:
push es
push ds ;толкнуть указатель к имени файла push dx
push 2 юткрыть в режиме чтения/записи ROPEN: call FAR PTR Jopen
Вызов к DosOpen выглядит следующим образом:
push ds ;толкнуть указатель к имени файла push dx
push ds ;толкнуть указатель к индексу
push OFFSET FHANDLE
push ds ;толкнуть указатель к OpenAction
push OFFSET OPENACTION
push 0 ; начальное файловое назначение DWORD
push 0
push 3 .втолкнуть в стек атрибут (например скрытый) push 1 ;FILE_OPEN
push 42 ;OPEN_SHARE_DENYNONE
push 0 ;DWORDO (резервирован)
push 0
ROPEN: call DosOpen юткрыть файл Немного все запутано, верно?
Как и в случае с Windows, мы будем разбираться с вызовами этих функций с
помощью определений в С. Подобные определения можно найти в документации
Developer's Connection. Затем мы найдем эквиваленты в языке Ассемблер.
Выполняя эту задачу, не
ГЛАВА 10. Вирусы для OS/2
забывайте о том, что функции в сегментной и плоской моделях сильно
отличаются друг от друга. В крайнем случае, для использования функций вы
можете написать программу в С, а затем дизассемблировать ее.
Модули, которые OS/2 динамично связывает с программами, отличаются по
именам от своих версий в Windows. Например, lopen обитает в модуле
KERNEL, в то время как DosOpen располагается в модуле DOSCALLS. И,
естественно, с ней ассоциирован другой номер функции. Но на самом деле
это незначительные отличия.
Управление памятью
Поскольку прерывания, включая прерывания DPMI, не используются под OS/2,
мы больше не можем вызывать DPMI и назначать память. Вместо этого нам
придется применять функциональный вызов OS/2. К счастью, такой вариант
гораздо проще, чем использование DPMI. Нам нужно лишь вызвать функцию
DosAllocSeg и назначить сегмент данных. После завершения работы
DosFreeSeg необходимо избавиться от него. Между этими вызовами мы можем
свободно распоряжаться сегментом и делать с ним все, что угодно.
Новые проблемы
В отличие от Windows, OS/2 использует размер файла, сохраненный в старом
DOS ЕХЕ-заголовке. С его помощью она определяет, сколько программ
загружено в память. То есть вирус OS/2 должен модифицировать старый
заголовок, чтобы учесть увеличенный размер файла. Иначе, когда программа
попытается получить доступы к коду и данным, OS/2 отсечет конец файла,
вызвав критическую ошибку.
Преимуществом таких стандартных OS/2-вирус, как Blue Lightening, является
то, что они больше не зависят от FAT файловой системы. Используя функции
DosFindFirst и DosFindNext для поиска файлов и функцию DosOpen для их
открытия, вирус может спокойно инфицировать файлы, которые сохранялись с
помощью HPFS (High Performance File System - файловой системы высокой
эффективности). Вирус может делать свою работу, даже если файлы имеют
длинные имена.
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Исходный код
Наш демонстрационный вирус инфицирует первый сегментный OS/2-EXE, который
находит в текущей директории при условии, что данный файл еще не заражен.
Следующий CMD-файл (OS/2-эквивалент для бат-файла) ассемблирует вирус
правильным образом:
masm/Zi blight,,;
link blight,,,os2286,blight.def
Файл BLIGHT.DEF принимает форму:
NAME BUGHT
DESCRIPTION 'Blue Lightening Virus'
PROTMODE STACKSIZE 5120
Исходный код для вируса приведен в файле BLIGHT.ASM: ;BLIGHT.ASM для
вируса Blue Lightening
;Это OS/2 вирус, инфицирующий другие OS/2 ЕХЕ-файлы в той же директории
.386
Полезные константы:
DATABUF SIZE EQU 4096 ;размер буфера для чтения/записи NB/VHDRSIZE EQU
40Н ;размер нового ЕХЕ-заголовка V1RUS SIZE EQU OFFSET END_VIRUS - OFFSET
VIRUS ;размер вируса
EXTRN DosExit:FAR, DosChgFilePtrFAR, DosFindRrst:FAR EXTRN
DosFindNext:FAR, DosAllocSeg:FAR, DosFreeSeg:FAR EXTRN DosOpen:FAR,
Предыдущая << 1 .. 107 108 109 110 111 112 < 113 > 114 115 116 117 118 119 .. 123 >> Следующая