Как обустроить мансарду?



Как создать искусственный водоем?



Как наладить теплоизоляцию?



Как сделать стяжку пола?



Как выбрать теплый пол?



Зачем нужны фасадные системы?



Что может получиться из балкона?


Главная страница » Энциклопедия строителя

содержание:
[стр.Введение] [стр.1] [стр.2] [стр.3]

страница - 0

Применение комбинированных защит исполняемого кода

Зыков В. В. (vzyckov@mail.ru) Липецкий государственный технический университет

Введение

В настоящее время можно выделить несколько областей применения защит исполняемого кода. Это защита от копирования, где блоки безопасности исполняемого кода входят в состав более сложной структуры, а так же защита отдельных фрагментов программного кода от изучения. Исследование причин уязвимости данных систем показывает недостаточную защищённость программных блоков контроля легальности запускаемых копий и блоков противодействия основным инструментам отладки и анализа, то есть соответствующие фрагменты исполняемого кода легко доступны для модификации.

Ещё одна сфера применения - это защита программ, распространяемых по сети Internet, в которых существуют два пути возможной работы: бесплатная ограниченная версия и платная полнофункциональная. Существующие системы контроля легальности пути исполнения кода следует признать малоэффективными [1, 2, 3].

В предлагаемой статье рассматривается схема комбинированной защиты исполняемого кода, построенная на основе принципов динамического шифрования. Так же рассматривается возможность расширения данной схемы для решения задач ограничения программной функциональности.


1. Модель функционирования

Определим наиболее важные характеристики модели функционирования защиты. Итак, защита исполняемого кода должна:

-быть комбинированной, то есть иметь черты прекомпилируемых (устанавливаемых до компиляции) и посткомпилируемых (после компиляции) защит;

-соответствовать принципам систем динамического шифрования;

-не вызывать затруднений при установке (имеется в виду, ситуация, когда разработчик программы вынужден переделывать структуру программы из-за её конфликта с защитным комплексом).

Представим приближённую схему подобной защиты в виде структурной схемы с рис. 1.

Исходный код

width=393

т

Ис полняемый

код с защитой

Рис. 1. Комбинированная защита

Воспользуемся понятием метки, под которым будем понимать фрагмент кода, неотличимый от исполняемых кодов программы, но ими не являющийся, и позволяющий однозначно выделять нуждающиеся в защите блоки.

Зададим конечный автомат B = (SB, XB, YB, s0B, 8B, XB), где SB -конечное непустое множество состояний; XB - конечное непустое


множество входных сигналов, которыми служат программные команды; Ув - конечное непустое множество выходных сигналов, которыми служат

действия над программным кодом; s0b g Sb - начальное состояние;

8b : SbxXb - Sb - функция переходов; Xb : SbxXb - У в - функция

Рис. 2. Модель функционирования защиты с использованием меток: x1B - программный код; x2B - метка; x3B - зашифрованный код; y1B -выполнение кода; y2B - переставить фокус на шифрованный фрагмент; y3B - дешифровать код; y4B - переставить фокус на начало кода; y5B -зашифровать код

Конечный автомат B = (SB, XB, Ув, sob, Sb, Хв) обладает памятью на четыре состояния и описывает простейший вариант функционирования защиты фрагмента исполняемого кода. Рассмотрим для него описание одного прохода.

- Sob. Это начальное состояние, в котором находится процесс, пока не

- S1b. В это состояние процесс переходит в случае, когда в состоянии

Sob была обнаружена метка начала защищённого блока, и остаётся в нём до тех пор, пока не будет найден указатель на окончание защищённого блока;

выходов [4]. Граф конечного автомата представлен на рис. 2.

width=374

будет найдена метка начала защищённого блока;




содержание:
[стр.Введение] [стр.1] [стр.2] [стр.3]

© ЗАО "ЛэндМэн"