Заказ работы

Заказать
Каталог тем
Каталог бесплатных ресурсов

Защита коммерческого программного обеспечения

1. Постановказадачи

Ознакомиться с простейшими методами защитыпрограмм от использования их незарегистрированными пользователями. Изучить ихдостоинства и недостатки.

2. Теоретические сведения

Простейшим способом проверки легальностикопии программного обеспечения является следующий способ. У пользователязапрашивается пароль (функция Password()), и если введенкорректный пароль (функция Password() возвращает 1), топользователю разрешается продолжить работу с программой; иначе ¾ доступ запрещается:

if(!Password())

  {

  pError(“Access denied!”);

  abort();

  }

Этот участок транслируется вследующий код:

CALL Password

OR AX,AX

JZ continue

PUSH offsetstr_access_denied

CALL pError

. . .

continue: 

                  . . .

Ветвь кода после метки «continue»¾ ветвь нормального продолжения работыпрограммы.

Защитныймеханизм может быть легко взломан заменой одного байта. Поменяв JZ на JMP,злоумышленник получает работоспособную копию программы. Независимо от алгоритмафункции Password() совершается безусловный переход на веткунормального выполнения программы.

Простейшим методом защитыявляется применение оптимизирующего компилятора. В оптимизированном исполняемомфайле нарушается «логический» порядок вызова команд и использования регистров.Это затрудняет процесс понимания передачи параметров функций, вызова самихфункций и передачи управления.

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

Наиболее часто используемаяфункция при шифровании пароля ¾ логическая функция«исключающее ИЛИ», или XOR. Шифрование с применением XORчасто применяется для шифровки собственного кода в целях затруднения анализа имодификации кода.

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



Размер файла: 69 Кбайт
Тип файла: doc (Mime Type: application/msword)
Заказ курсовой диплома или диссертации.

Горячая Линия


Вход для партнеров