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

Шторы - calon.by

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

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


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

Восьмибитные чипы
Модуль
Компьютер и инвалиды
Как работает вирус
Протокол управления передачей (TCP) и протокол пользовательских дейтаграмм (UDP)
Структура функционирования сети
Популярно Про Ddos-Атаки
Программа 1С Зарплата И Управление Персоналом 8
Проблемы, возникающие при созданииЭС
Отправка и получение файлов
Глобальная сеть Internet
Архитектура системы и реализация основных функций
Ваш подросток безопасно использует интернет?
Восстановление Windows
Новое Решение На Рынке Soa
Использование комментариев
ЛАЗЕРНЫЕ (СВЕТОДИОДНЫЕ) ПЛОТТЕРЫ
Хищение компьютерной информации
Поиск адреса по доменному имени
Обзор Windows Vista
Изменение механизма входа в систему
Появление IBM PC
Специфика трудовой деятельности в постиндустриальном, информационном обществе
Кибернетика – наука ХХ века
Понятие компьютерных преступлений
Компьютер в медицине
Время создавать защиту
Выпущена Версия Mobile Forex 2.15: Новый Подход К Надежности И Удобству
WordPad: Выделение текста гарнитурой шрифта
Бесплатный софт для всех!
Hесанкционированный доступ к информации, хранящейся в компьютере
Жесткие диски
Концентраторы Fast Ethernet NetGear
Краткий обзор модулей COSMOS/M
Глобальная настройка параметров печати
Шина EISA
Монтаж фильма
ЭВМ И ИНТЕЛЛЕКТ
Технология сценариев
Уничтожение компьютерной информации
СОЗДАНИЕ ДОКУМЕНТА
ПРОЯВЛЕНИЕ НАЛИЧИЯ ВИРУСА В РАБОТЕ НА ПЭВМ
Как выбрать жесткий диск
Поочередное построение дочерних вершин
Периферийные устройства ПК
Управление доступом к файпам и каталогам
Кластеры
Способы совершения компьютерных преступлений
Черный Баннер - История его обнаружения
Геометрические объекты в GEOSTAR
Аналоговые вычислительные машины (АВМ)
Установка Системы Видеонаблюдения В Офис
Что такое сжатые диски
Загрузка в альтернативном режиме
Безопасность Данных