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

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

Итак, «вакцинация» вновь разрабатываемых программ не представляет особой сложности. А как защитить уже существующую ЕХЕ-программу? Для этого существуют две возможности: либо использовать отдельную программу, которая хранит ключевую информацию и осуществляет проверку по требо¬ванию пользователя (такая программа обсуждается в следующем разделе), либо пристыковать к защищаемой программе небольшой код «вирусного фага» - тогда проверка будет осуществляться автоматически при каждом запуске программы. В этом разделе мы обсудим технику создания и внедрения в за¬щищаемую. Программу антивируса—фага, т.е. небольшой ассемблерной программы, которая использует тот же механизм перехвата управления, что и обычный вирус, но осуществляет нужную защиту программы.
Программа – фаг устанавливается специальной программой-установщиком и к моменту начала своей работы уже должна иметь в своем распоряжении эталонный заголовок файла. Получив управление, фаг проверяет заголовок соответствующего файла и, если обнаружены изменения, сообщает об этом пользователю и удаляет вирус. После окончания работы фаг передает управ¬ление защищаемой программе. Поскольку фаг пишется целиком на ассемблере, его работа протекает очень быстро без заметного замедления загрузки про¬граммы. Если Вы установите такой фаг на большую часть часто используемых программ, Ваш компьютер будет защищен очень надежно.
Чтобы правильно спроектировать фаг, нужно хорошо представлять себе механизм запуска ЕХЕ-программ. Стандартный загрузчик ДОС реализует следующую последовательность действий при запуске программы.
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 без изменения.

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

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

Создание, использование и распространение вредоносных программ для ЭВМ
Описание построения требуемых графиков и диаграмм
Ограничения в применение экспертных систем..
Социальные последствия информатизации
Oболочка Gopher
Выбор системы видеонаблюдения
Планирование в операционной системе UNIX
Неправомерный доступ к компьютерной информации (ст. 272 УК)
WordPad: Отмена и повтор последнего действия
Пристрої виводу інформації
ТИПЫ ЛКС
Реализация кабельной системы
Установка Системы Видеонаблюдения В Офис
Загрузка Mozilla
Обеспеченность Линукс: Важность в сегодняшнем мире
О Windows Vista
Преимущества ЭС перед человеком - экспертом
КОМПЬЮТЕРНАЯ ИНФОРМАЦИЯ КАК ОБЪЕКТ ПРЕСТУПНОГО ПОСЯГАТЕЛЬСТВА
Описание программ SetFag.pas и Fag.asm
Поиск людей (Кто есть Who)
Мой Выбор Система Monitor Crm Для Автоматизации Отдела Продаж
Использование Web для привлечения покупателей
Количество Интернет-Атак На Банки Продолжает Расти
Укротите вашу регистратуру Windows с програмным обеспечением чистки регистратуры
Видеопамять
Рисование прямой линии
"Адские" мифы
Программа 1С Управление Торговлей 8
Интерфейс глобальных сетей
Информатизация общества: социальные условия, предпосылки и последствия
Современное состояние информационной сферы Украины
Описание постановки задачи и блок-схемы алгоритма ее решения
Интегральные схемы
Структура конструкций и поколения ЭВМ
Технология работы данной ЭС
Языки описания сценариев
Табличный процессор Excel 7.0. Основная информация и технические характеристики
Ремонт & обслуживание регистратуры Windows
Причины кибернетики
Открытие документа с Рабочего стола
Работа Internet: организация, структура, методы
Информационное общество: глобальное, европейское, украинское
Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети
История открытия и развитие метода компьютерной томографии
Типы квантовых компьютеров
Максимальная разрешающая способность
ПЛОТТЕРЫ НА ОСНОВЕ ТЕРМОПЕРЕДАЧИ
Протокол Internet (IP)
Электронная почта
СОСТАВ САПР
Методика и практика расследования преступлений в сфере компьютерной информации
Рисование с помощью аэрографа
Компьютеры в учреждениях
Компьютер и инвалиды
Классификация локальной компьютерной сети (ЛКС)