Главная | Соглашение | Публикация статей

ЗАЩИТА СУЩЕСТВУЮЩИХ ЕХЕ-ФАЙЛОВ
Категория: Статьи

Итак, «вакцинация» вновь разрабатываемых программ не представляет особой сложности. А как защитить уже существующую ЕХЕ-программу? Для этого существуют две возможности: либо использовать отдельную программу, которая хранит ключевую информацию и осуществляет проверку по требо¬ванию пользователя (такая программа обсуждается в следующем разделе), либо пристыковать к защищаемой программе небольшой код «вирусного фага» - тогда проверка будет осуществляться автоматически при каждом запуске программы. В этом разделе мы обсудим технику создания и внедрения в за¬щищаемую. Программу антивируса—фага, т.е. небольшой ассемблерной программы, которая использует тот же механизм перехвата управления, что и обычный вирус, но осуществляет нужную защиту программы.
Программа – фаг устанавливается специальной программой-установщиком и к моменту начала своей работы уже должна иметь в своем распоряжении эталонный заголовок файла. Получив управление, фаг проверяет заголовок соответствующего файла и, если обнаружены изменения, сообщает об этом пользователю и удаляет вирус. После окончания работы фаг передает управ¬ление защищаемой программе. Поскольку фаг пишется целиком на ассемблере, его работа протекает очень быстро без заметного замедления загрузки про¬граммы. Если Вы установите такой фаг на большую часть часто используемых программ, Ваш компьютер будет защищен очень надежно.
Чтобы правильно спроектировать фаг, нужно хорошо представлять себе механизм запуска ЕХЕ-программ. Стандартный загрузчик ДОС реализует следующую последовательность действий при запуске программы.
1) Создается префикс программного сегмента PSP. Обычно для этого ис¬пользуется функция ДОС $26.
2) В некоторую локальную область памяти считываются начальные 28 байт заголовка ЕХЕ-файла, соответствующие структуре данных HeadExeType.
3) Определяется размер загружаемой части файла по формуле
LengExe = (PageCnt-l)*512 + PartPag
4) Определяется файловое смещение загружаемой части:
SeekExe = HdrSize*16
5) Выбирается сегментный адрес StartSeg для размещения программы.
Обычно StartSeg = Segment {PSP) +16, т.е. программа размещается сразу за PSP, который имеет длину 256 байт (16 параграфов).
6) Считывается загружаемая часть программы в непрерывную область памяти длиной LengExe, начинающуюся по адресу StartSeg:0000.
7) Указатель файла устанавливается на начало таблицы перемещения TablOff,
8) Для каждого элемента перемещения (этих элементов ReloCnt):
• считывается элемент как два 16-битных слова IternOfs, ItemSeg;
• вычисляется ReloSeg === StartSeg+ltemOfs, т.е. сегментная часть смещения абсолютного адреса перемещаемой ссылки;
• извлекается слово по адресу ReloSeg:ltemOfs-сегментная часть пере¬мещаемой ссылки;
• к этому слову прибавляется StartSeg (осуществляется так называемая привязка сегмента);
• результат помещается обратно по адресу ReloSeg:ltemOfs.
9) Выделяется память за концом программы в соответствии со значениями
MinMem и МахМет.
10) Инициируются регистры, и запускается программа:
• регистры ES и DS получают значение сегмента, в котором располагается PSP',
• регистр АХ отражает корректность идентификаторов дисков в командной строке (при нормальном запуске содержит 0);
• SS = StartSeg+ReloSS;
• SP = ExeSP;
• CS == StartSeg^ReloCS;
• IP= Exelp;
• содержимое остальных регистров не имеет значения. Регистры сегмента кода CS и указателя инструкций IP обычно иниции¬руются следующими тремя командами:
PUSH StartSeg+ReloCs
PUSH Exelp
RETF
(команда RETF дальнего возврата из подпрограммы извлекает из стека два слова смещение и сегмент адреса перехода и помещает их соответственно в IP и CS).
Таким образом, сразу после получения управления фаг должен сохранить значения регистров АХ и DS и поместить в DS значение собственного сегмента данных. На практике сегмент данных в коротких ассемблерных программах обычно совпадает с сегментом кода, т.е. программа и данные размещаются в одном сегменте. Сегмент стека SS можно не изменять, т.к. программа-установщик фага должна позаботиться о том, чтобы стек не разрушил код самого фага, и соответствующим образом настроить ReloSS и/или ExelP. Обычно в ЕХЕ-программе начальное значение ReloSS таково, что стек раз¬мещается сразу за концом программы, т.е. в том месте, куда программа-установщик помещает "код фага. Длина стека ExeSP как правило более чем достаточна для того, чтобы работа фага со стеком не привела к разрушению кода фага, поэтому в большинстве случаев установщик оставляет начальные значения ReloSS и ExeSP без изменения.

ЗАЩИТА СУЩЕСТВУЮЩИХ ЕХЕ-ФАЙЛОВ

Статьи по теме:

Программа Для Автоматизации Салона Красоты - Бизнес Инструмент Или Напрасная Трата Денег?
Компьютер в сфере образования
Уровни работы сети
Обмен данными : Excel - другие приложения
Моделирование в кибернетике
Информационные технологии в управлении банком
Отличие ЭС от других программных продуктов
Работа с дисками по средствам MS-DOS
Цифровая логика
СОЗДАНИЕ И РАБОТА С ГРАФИЧЕСКОЙ ИНФОРМАЦИЕЙ
Мой Выбор Система Monitor Crm Для Автоматизации Отдела Продаж
Наблюдение компьютера, факты
Файлы
Чтение таблицы FAT
Поколения ЭВМ
Поддержка драйвера сжатых дисков в MS DOS
Процессор
Почтовые псевдонимы
Совершенная Система Цифрового Видеонаблюдения Uniteco Dvs
ПРЕДУПРЕЖДЕНИЕ КОМПЬЮТЕРНЫХ ПРЕСТУПЛЕНИЙ
Восстановление Windows
Свежая Версия Mobile Forex 2.16: Комфортный Мобильный Трейдинг
Консоль восстановления
Порты контроллера НГМД
Носители информации
Элементарные Методы Сортировки
LEP monitors
Восьмибитные чипы
Использование загрузочных дискет Microsoft
Запись фильма с помощью командной строки
История открытия и развитие метода компьютерной томографии
Что ваш ребенок делает в он-лайн?
Правовые аспекты
Устройство и общие принципы работы компьютерного томографа
Панель задач Microsoft Windows XP
Адресация в системе электронной почты
Популярно Про Ddos-Атаки
Возможности стабилизаторов напряжения для защиты персонального компьютера
Рисование прямой линии
Другие отличил NetWare 4.x
Первый взгляд на Windows Vista
Склонность CompactPCI- продуктов к быстрому устареванию
Современное состояние информационной сферы Украины
Хищение компьютерной информации
Оборотная сторона медали Spyware
Электронная почта
Использование нестандартных значков
Численные методы
Условия и предпосылки информатизации
Функции BIOS для работы с дисками
Масштабирование изображения
Конверт
Алее Софтвер Создает Электронный Каталог Для Сзагс
Расследование нарушения правил эксплуатации ЭВМ: системы ЭВМ или их сети
Протокол Internet (IP)