Игорь Гульев - Создаем вирус и антивирус
- Название:Создаем вирус и антивирус
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Игорь Гульев - Создаем вирус и антивирус краткое содержание
Virus Warning!
С этим сообщением, хоть раз в жизни, сталкивался любой пользователь компьютера. Вирмейкеры с упорством маньяков плодят все новые и новые разновидности вирусов. Бытует мнение, что избавиться от них можно лишь с помощью сложных и дорогостоящих новейших антивирусных программ. Это не совсем верно – знание принципов действия и способов внедрения вирусов поможет вовремя их обнаружить и локализовать, даже если под рукой не окажется подходящей антивирусной «вакцины».
В этой книге вы найдете обширный материал, посвященный проблеме защиты информации, рассмотренной с обеих сторон баррикад (как от лица вирмейкера, так и создателя антивирусов).
Создаем вирус и антивирус - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Приложения
В приложениях приведена информация, которая может быть полезна программистам не только при написании вирусов, но и при создании других программ. Описано более 100 различных функций DOS, AMIBIOS и DPMI (в том числе недокументированные).
Приложение А Форматы заголовков EXE-файлов
Формат заголовка обычного EXE-файла
В начале EXE-файла расположена форматированная часть заголовка EXE-файла (Таблица А-1).
Далее следует таблица настройки адресов (Relocation Table), состоящая из длинных указателей (смещение: сегмент) на те слова в загрузочном модуле, которые содержат настраиваемые сегментные адреса. Примечание: элементы таблицы настройки могут быть расположены не по порядку.
Таблица А-1. Формат заголовка обычного EXE-файла
Формат заголовка NE-executable EXE-файла
В состав старого заголовка входят:
– обычный EXE-заголовок (Таблица A-2);
– зарезервированная часть;
– указатель на новый заголовок (если в ЕХЕ-заголовке в начале таблицы перемещаемых элементов – по смещению18h – стоит 40h или больше, то слово, расположенное по смещению 3С^ содержит смещение начала нового заголовка);
– DOS-программа (STUB).
Таблица A-2. Формат обычного EXE-заголовка в NE-executable EXE-файле
В состав нового заголовка входят:
– инфоблок (Таблица A-3);
– таблица сегментов (Таблица A-4);
– таблица ресурсов (Таблица A-5);
Таблица A-3. Формат NE-заголовка
Таблица A-4. Формат таблицы сегментов
Таблица A-5. Формат таблицы ресурсов
– таблица резидентных имен;
– таблица ссылок на модули;
– таблица импортируемых имен;
– таблица входов (Таблицы A-6 и A-7);
– таблица нерезидентных имен.
В заголовке нового стиля содержится вся информация, необходимая для сегментированного исполняемого файла – заголовки таблицы сегментов, ресурсов и имен.
Сразу за заголовком находится таблица сегментов. В ней содержится описание каждого сегмента исполняемого файла.
Таблица ресурсов.Ресурсами являются все основные объекты интерфейса – диалоговые окна, меню, курсоры, растровые изображения, значки и так далее.
Формат таблицы ресурсов(смещения относительно начала входа каждого ресурса). Значения в диапазоне смещений 02-12h повторяются в таблице до тех пор, пока величина по смещению 02h не станет равной нулю. Значения в диапазоне от 0Ah до 12h повторяются столько раз, сколько указано по адресу 04h.
Таблица A-6. Таблица входов перемещаемого сегментаТаблица A-7. Таблица входов фиксированного сегмента
Таблица резидентных имен.В ней содержатся строки, идентифицирующие экспортируемые функции исполняемого файла. Постоянно находятся в памяти и никогда не сбрасываются на диск. Верхний и нижний регистры различаются, ноль в конце отсутствует.
Данные в таблице находятся в виде:
– длина строки (равна нулю, если в таблице нет дополнительных строк);
– строка резидентного имени (первая строка – имя модуля);
– порядковый номер, идентифицирующий строку. Может использоваться в качестве индексного выхода в таблицу.
Таблица ссылок на модули.В ней содержится список смещений имен модулей, хранящихся в таблице импортируемых имен. Каждый вход в таблице есть двубайтное последовательное число.
Таблица импортируемых имен.В ней записаны имена модулей, импортируемых в исполняемый файл. Каждый вход состоит из двух частей – байта длины строки и собственно строки.
Таблица входов.В ней содержатся группы точек входа в исполняемый файл.
Эти группы создаются редактором связей и последовательно пронумерованы (начиная с 1). Каждая группа начинается с двухбайтного заголовка, который содержит число входов в группе (00h – конец таблицы) и дополнительную информацию о сегменте (FFh – перемещаемый, FEh – вход относится к константе, определенной внутри модуля, иначе вход является индексом сегмента). Для перемещаемых сегментов каждый вход состоит из шести байт, а для фиксированных – из трех.
Таблица нерезидентных имен.Содержит имена экспортируемых функций, содержащихся в исполняемом файле. Эти имена не всегда остаются резидентными в памяти. Структура полностью совпадает со структурой таблицы резидентных имен.
Сегменты кода и данных.Если в сегменте кода содержатся вызовы функций, определенных в других сегментах, то для таких вызовов необходимо использовать таблицы перемещений. Они располагаются непосредственно за кодом или данными в сегменте. В двух первых байтах содержится число элементов таблицы.
Таблица содержит:
– тип адресации (только сегмент, только смещение, или и то, и другое);
– тип перемещения (внутренняя ссылка, импортируемый порядковый номер, импортируемое имя);
– номер сегмента или порядковый ID (для внутренних ссылок);
– индекс таблицы ссылок или порядковый номер функции;
– индекс таблицы ссылок или смещение таблицы имен (для импортируемых имен).
Формат заголовка PE-executable EXE-файла
В состав старого заголовка входят:
– обычный EXE-заголовок (Таблица A-8);
– зарезервированная часть;
– указатель на PE-заголовок (если в ЕХЕ-заголовке в начале таблицы перемещаемых элементов – по смещению 18h – стоит 40h или больше, то слово, расположенное по смещению 3С^ содержит смещение начала PE-заголовка);
– DOS-программа (STUB).
В состав нового заголовка входят:
– PE-заголовок (Таблица A-9);
– таблица объектов (Таблица A-10);
– таблицы ресурсов, импортируемых и экспортируемых имен, настройки адресов.Таблица A-8. Формат обычного EXE-заголовка в PE-executable EXE-файле
Таблица A-9. Формат PE-заголовка
Таблица A-10. Формат таблицы объектов
Приложение Б Функции DOS (INT 21h)
DOS, функция 00h
Завершить программу
Вход:
AH=00h
CS – сегмент PSP завершающегося процесса
Описание. Передает управление на вектор завершения в PSP (выходит в родительский процесс). Идентична функции INT 20h (Terminate). Регистр CS должен указывать на PSP. Восстанавливает векторы прерываний DOS 22h-24h (Завершение, Ctrl-Break и Критическая ошибка), устанавливая значения, сохраненные в родительском PSP. Выполняет сброс файловых буферов. Файлы должны быть предварительно закрыты, если их длина изменилась.
Примечание.
Данная функция не рекомендуется к использованию. Для выхода из программы лучше использовать функцию DOS 4Ch.
DOS, функция 01h Считать со стандартного устройства вводаВход:
AH=01hВыход: AL – символ, полученный из стандартного ввода
Читать дальшеИнтервал:
Закладка: