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

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

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


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

Уничтожение компьютерной информации
Математические модели
Узнайте правду о ваших малышах занимаясь серфингом привычки
Базовая система классов Java
Софт Можно Скачать С Варезных Сайтов Или Же Приобрести В Интернет-Магазинах
Autodesk — В Softway!
ЦЕЛЬ СОЗДАНИЯ САПР
Совместимость Windows Vista
Операционные системы реального времени для CompactPCI- компьютеров
МЕЖДУНАРОДНЫЙ И ОТЕЧЕСТВЕННЫЙ ОПЫТ БОРЬБЫ И ПРЕДУПРЕЖДЕНИЯ КОМПЬЮТЕРНЫХ ПРЕСТУПЛЕНИЙ И ВНОВЬ ВОЗНИКАЮЩИЕ ПРОБЛЕМЫ
Возможности INTERNET
Области применения МП
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ - ВОПРОС О ВОЗМОЖНОСТИ ЕГО СОЗДАНИЯ
Программа для обмена сообщениями между 2-мя рабочими станциями в сети NetWare
Обзор Ca Recovery Management R12. Новая Версия Продукта
Отличия ЭВМ III поколения от прежних
Как Правильно Выбрать Бумагу
Виды работ при проектировании. Этапы и стадии разработки ЭВМ
Проблемы создания квантовых компьютеров
Предпосылки создания квантовых компьютеров
Открытие документа из папки
Использование нестандартных значков
Средства Защиты Компьютера И Максимальная Его Безопасность
Устройство Netping Cooler Board Поступило На Склад Компании Зао «Лайт Коммуникейшн»
Логическое хранение и кодирование информации
Время создания или изменения файла
Нейронный подход
СОЗДАНИЕ ДОКУМЕНТА
Пристрої вводу
Мышление и информация
Общая характеристика преступлений в сфере технологий
Четырехбитное мышление
Использование буфера обмена
Подсказки програмного обеспечения и программы присоединенного филиала
Создание загрузочной дискеты
Internet и политика
Понятие и концепции информационного общества
Математическая логика в технике
Софт (Программы) Для Counter - Strike
Поддержка драйвера сжатых дисков в MS DOS
Интерфейсы жестких дисков
Примеры комплексов CASE-средств
Аналого-цифровые вычислительные машины (АЦВМ)
Кластеры
Зао «Лайт Коммуникейшн» Сообщает О Начале Производства Устройств Netping Pwr-220 V2 И Netping 2/Pwr-220 V2
Общая характеристика компьютерной томографии
Хищение компьютерной информации
СРАВНЕНИЕ ИСКУССТВЕННОГО И ЕСТЕСТВЕННОГО ИНТЕЛЛЕКТОВ
Накопители на жестких дисках
Средство разработки приложений JAM (JYACC's Application Manager)
Первый взгляд на Windows Vista
Знакомство с элементами среды PowerPoint
Полезные советы - программа Picasa
Что ваш ребенок делает в он-лайн?
Nosy о привычках вашего парня он-лайн?