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

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

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

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

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

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

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 90 91 92 93 94 95 < 96 > 97 98 99 100 101 102 .. 123 >> Следующая

структуры. Вы должны понять ее настолько, чтобы суметь:
а) модифицировать структуру, не внося в работу никаких нарушений
(операционная система не должна подозревать о наличии вируса и выявлять
его по ошибкам и сбоям);
б) вставить код в то, что будет выполняться.
Типичным примером неудачи в реализации условия (а) является путаница с
ЕХЕ-заголовком. Когда вирус модифицирует ЕХЕ-заголовок, он должен делать
это правильно, иначе возникнет множество проблем. Файл может быть не
узнан как ЕХЕ-программа, или он будет одержать неверную точку входа, или
его размер будет неправильным, в связи с чем вирус не будет загружен в
память перед выполнением файла. Типичным примером неудачи в реализации
условия (6) является неверная модификация точки входа, при которой первой
выполняется оригинальная ЕХЕ-программа, а не вирус.
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Как же мы можем исследовать структуру файла? Обычно подобные темы
документируются производителями операционных систем или авторами,
собирающими подобную информацию. Если вы предпримите поиск данных, то
найдете все, что вам будет нужно. А если не найдете, то можно провести
несколько грубых атак и собрать информацию по откликам (хотя я не
рекомендую вам этот подход).
Что касается DOS-структур, то лучшей ссылкой является "The MS-DOS
Encyclopedia*. Разработчики Microsoft дают всю необходимую информацию о
Windows. Техническая документация IBM ознакомит вас с тонкостями OS/2 и
т. д. Знание о SYS-файлах мы почерпнем из "The MS-DOS Encyclopedia".
SYS-файл кодируется как прямой двоичный программный файл, очень схожий с
COM-файлом. Однако он начинается в офсете 0, а не в офсете 100Н. В
отличие от СОМ-файла, SYS-файл должен иметь специфическую структуру. Он
обладает заголовком, как и ЕХЕ-файл, но кодирован и ассемблирован в виде
чистого двоичного файла, больше похожего на СОМ-файл. Создается
впечатление, что это кодированная ЕХЕ-программа, в которой группу DB
вставили в начало для определения ЕХЕ-заголовка, а затем ассемблировали
ее как СОМ-файл.
Схема, приведенная нами в шаге втором (она названа рис. 20, хотя на самом
деле это схема), иллюстрирует простой драйвер устройства, который мы
назовем (очень оригинально) DEVICE. Он, практически, ничего не делает. В
его функции входит подача на экран сообщения "Hello". Тем не менее, он
покажет вам основной дизайн драйвера устройства.
Шаг второй: системные возможности
Следующий важный вопрос при создании* вируса можно выразить таю "Какие
системные возможности будут доступны, когда код начнет выполняться?". В
случае вирусов для драйверов устройств этот вопрос очень важный, так как
при первом выполнении драйвера устройств DOS будет загружена лишь
частично. То есть обычное приложение может вызвать только некоторые
функции DOS. Драйверы устройств, работающие под DOS, хорошо
документированы. Кроме того, мы всегда можем предположить, что функция
частной системы доступна на каком-то низком уровне. Для наших примитивных
целей вирус
398
ГЛАВА 8. Инфицирование драйверов устройств
должен открывать и закрывать файлы, а также читать их и записывать в них.
Обычно дескрипторные функции, выполняющие такие операции, доступны на
любых системах.
Рис-схема 20. Простой драйвер устройства DEVJCEASM
DEVICE.ASM - простой драйвер устройства, предназначенный для иллюстрации
структуры. При загрузке он просто объявляет о своем наличии и больше
ничего не делает.
.model tiny .code ORG О
HEADER:
dd -1 ;ссылка на слодощий драйвер устройства
cfcv 0С840Н ;спово атрибута устройства
cXv OFFSETSTRAT указательнаподлрограммустретегии
dw OFFSET INTR указатель на под программу прерывания
db 'DB/ЮЕ' ;имя устройства
RHFTR dd ? указатель на заголовок запроса, заполняемый DOS
Это подпрограмма стратегии. Обычно она принимает значение, переданное ей
в es:bx и сохраняет его в RHPTR для использования в процедуре INTR. Это
значение является указателем на заголовок запроса, применяемый
устройством для определения того, что от него хотят получить.
START:
mov WORD PTR cs:[RHPTR],bx mov WORD PTR cs:[RHPTR+2],es retf
Это подпрограмма прерывания. Она вызывается DOS и говорит драйверу
устройства сделать то-то и то-то. Типовые вызовы включают в себя чтение с
устройства или запись в него, открытие, закрытие и т.д.
INTR
push Ьк push si push di push ds
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
push es push cs pop ds
les di .[RHPTR] ;es:di указывает на заголовок запроса
mov al,es:[di+2] ;получает номер команды
or al.al ;номер команды 0? (инициализация устройства)
jnz INTR1 ;нет, управляют другие команды
call INIT ;да, инициализировать устройство
jmp INTRX ;выход подпрограммы INTR
INTR1:
call NOTJMPLEMENTED ;все другие команды не выполнены INTRX: pop es pop ds
pop di pop si pop bx retf
Подпрограмма инициализации устройства. Она просто изо бражает HELLO_MSG,
используя BIOS-видео и затем осуществляет выход.
INIT:
mov si,OFFSET HELLO_MSG INITLP: lodsb or al.Bl jz INUX mov ah.OEH int 10h
Предыдущая << 1 .. 90 91 92 93 94 95 < 96 > 97 98 99 100 101 102 .. 123 >> Следующая