3.3. Особенности реализации модуля защиты
Разрабатываемый модуль защиты Uniprot будет представлять собой файл типа dynamic link library (DLL) с именем Uniprot.dll.
Для организации взаимодействия модуль защиты предоставляет набор интерфейсов с использованием технологии COM. Для описания интерфейсов используется специальный язык - IDL, по своей структуре очень похожий на С++. В определении интерфейса описываются заголовки входящих в него функций с указанием их имен, возвращаемых типов, входных и выходных параметров, а также их типов. Подробно с предоставляемыми интерфейсами можно будет ознакомиться в разделе 4.2. Интерфейсы, описанные в IDL файле, преобразуются IDL-компилятором (MIDL.EXE) в двоичный формат и записываются в файл с расширением TLB, который называется библиотекой типов. Этот файл будет необходим, например, для использования модуля Uniprot.dll из среды Visual Basic. С процессом подключения TLB файлов в Visual Basic можно ознакомиться в разделе 4.4.2.
Для регистрации модуля в системе необходимо вызвать в нем функцию DllRegisterServer, которая внесет нужные изменения в реестр. Для этих целей можно воспользоваться утилитой regsvr32.exe. Она поставляется вместе с операционной системой, а потому должна находиться на любой машине. Regsvr32 должна загрузить СОМ-сервер и вызвать в нем функцию DllRegisterServer, которая внесет нужные изменения в реестр.
Организация работы с зашифрованными файлами строится на основе механизмов дескрипторов (или описателей файла). Каждому открытому или созданному файлу назначается уникальный (в рамках данного процесса) идентификатор, представляющий собой число в формате short. Этот идентификатор возвращается вызывающей программе, после чего она может проводить над этим файлом набор операций. Все номера открытых файлов хранятся во внутренней таблице модуля, и каждому из них соответствует структура данных, необходимая для работы с ним. В частности, там хранится текущая позиция для чтения данных, алгоритм для шифрования/расшифрования данных. Когда работа с файлом закончена, программа должна закрыть файл с соответствующим идентификатором. Он будет удален из таблицы, и в следующий раз тот же самый идентификатор может послужить для работы с другим файлом. Если файл не будет закрыт, то после завершения программы, использующей модуль защиты, файл будет поврежден, и работа с ним в дальнейшем будет невозможна.
3.4. Защита исполняемых файлов
Одним из средств, входящих в комплект разрабатываемой системы должна стать программа для защиты их от модификации. Было принято решение использовать уже имеющиеся механизмы шифрования, основанные на полиморфный алгоритмах. О преимуществах такого метода говорилось ранее. Во- первых, это большая сложность создания универсального взломщика, а, во-вторых, возможность запрещения запуска программ без наличия соответствующего файла с алгоритмом расшифрования.
Разработанная программа имеет два возможных режима запуска. Первый – для генерации зашифрованного файла из указанного исполняемого модуля. Второй –для запуска защищенного модуля. Рассмотрим шаги, которые выполняет механизм шифрования исходного файла.
Инициализация библиотеки Uniprot.
Чтение исполняемого файла в память.
Запуск исполняемого файла с флагом остановки. То есть программа загружается, но управления не получает.
Чтение частей загруженной программы и поиск ее соответствующих частей в прочитанном файле. Найденные части кода сохраняются отдельно. После чего их места в буфере с прочитанным файлом заменяются случайными значениями.
Генерация алгоритма шифрования и расшифрования.
Запись в зашифрованный файл буфера с прочитанным, а затем измененным файлом. В этот же файл пишутся выделенные фрагменты кода.
Удаление файла шифрования, так как он более не предоставляет интереса.
Теперь рассмотрим шаги, которые выполняет механизм запускающий зашифрованный файл на исполнение.
Поиск соответствующего файла с алгоритмом расшифрования.
Создание временного исполняемого файла и запись в него "испорченного" файла (см. механизм шифрования, пункт 4).
Запуск "испорченного" исполняемого файла с флагом остановки. То есть программа загружается, но управления не получает.
Восстановление "испорченных" мест в памяти. Изначальный код для исправления также хранится в зашифрованном файле.
Передача управления расшифрованному файлу.
Ожидание окончания выполнения запущенной программы.
Удаление временного файла.
Как видно из описания, данная программа достаточна проста в своем устройстве и достаточна эффективна.
ГЛАВА 4. ПРИМЕНЕНИЕ СИСТЕМЫ ЗАЩИТЫ
4.1. Состав библиотеки Uniprot
В состав библиотеки входят следующие компоненты:
Исходные тексты COM модуля Uniprot.dll.
Исходные тексты программы ProtectEXE.exe.
Отдельно собранные файлы, необходимые для подключения Uniprot.dll. Этими файлами являются: export.cpp, export.h, Uniprot.tlb.
Файл reg_uniprot.bat для регистрации COM модуля Uniprot.dll.
Руководство программиста по использованию модуля Uniprot.dll.
Руководство программиста по использованию программы ProtectEXE.exe.
Набор примеров написанных на Visual Basic, демонстрирующих работу с библиотекой Uniprot.
... техники (высокая тактовая частота) применение программных методов также достаточно эффективно и очень часто применяется в средствах вычислительной техники наряду с другими программными средствами защиты информации. Применение криптографических методов в рамках сетевых протоколов позволяет также решать отдельные задачи других направлений обеспечения безопасности. При этом, эти средства могут не ...
... для реализации системы бюджетирования Консультационной группы "Воронов и Максимов". Статья о проблемах выбора системы бюджетирования - в проекте "УПРАВЛЕНИЕ 3000". Бюджетный автомат Если вы решитесь на автоматизацию системы бюджетирования компании, перед вами сразу встанут вопросы: что выбрать, сколько платить, как внедрять. Примеряйте! О ЧЕМ РЕЧЬ В “Капитале” на стр. 44, 45 мы рассказали ...
... проблема, как признание отечественных дипломов за границей, возможность трудоустройства и дальнейшего обучения выпускников ВУЗов в других странах. Таким образом, исследование основных направлений в тенденциях развития высшего образования в Украине и ориентация его на зарубежный опыт является достаточно актуальной темой в сфере развития образовательного процесса в нашей стране. 1. Особенности ...
... отношения к ситуации в образовательном процессе. Именно с этой целью в школе было решено ввести так называемое профильное обучение в старших классах, предусматривающей организацию профильного и предпрофильного обучения по социально-гуманитарному, физико-математическому и общеобразовательному направлениям. Последний призван обеспечить более глубокую универсальную подготовку тем старшеклассникам, ...
0 комментариев