Система защиты от копирования
Комплекс программных (программно-аппаратных) средств, обеспечивающих затруднение нелегального распространения, использования и (или) изменения программных продуктов.
Нелегально – без согласия владельца авторских прав. Нелегальное изменение – для того, чтобы измененный продукт не попадал по действие законодательства о защите авторских прав.
Надежность системы защиты от копирования
Способность противостоять попыткам проникновения в алгоритм ее работы и обхода механизмов защиты.
Любая система защиты от копирования может быть раскрыта за конечное время (т.к. ее команды в момент своего исполнения присутствуют в оперативной памяти в открытом виде).
Надежность системы защиты определяется надежностью ее слабейшего звена.
Принципы создания системы защиты от копирования
- Учет условий распространения защищаемых программных продуктов.
- Учет особенностей защищаемых программных продуктов.
- Учет особенностей пользователей защищаемых программных продуктов.
- Оценка возможных потерь от снятия защиты.
- Учет особенностей «взломщиков».
- Постоянное обновление применяемых средств защиты.
Требования к системе защиты от копирования
|
|
o Некопируемость инсталляционных дисков стандартными средствами операционных систем.
o Невозможность применения стандартных отладчиков.
o Некорректное дизассемблирование (декомпиляция) стандартными средствами.
o Сложность изучения структуры ключевой информации, используемой при проверке легальности запуска программы.
Типовая структура системы защиты от копирования
- Блок проверки ключевой информации.
- Блок защиты программы от изучения (противодействия отладчикам и дизассемблерам/декомпиляторам).
- Блок согласования с защищаемыми структурами (обеспечения правильной работы защищаемых программ и правильного расшифрования защищаемых данных при легальном использовании).
Реализация блока проверки ключевой информации
- В виде отдельного модуля.
Точка входа -> блок проверки -> защищаемая программа
- В виде «навесного» модуля (по технологии компьютерного вируса).
Точка входа -> [ блок проверки, защищаемая программа ]
- В виде нескольких внутренних функций проверки (ФП).
Точка входа -> [ ФП1, ФП2, … ФПN / защищаемая программа ]