Безопасность в Дельфи

       

Немного теории


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

Зашифруем "критические" участки кода таким образом, чтобы корректно расшифровать их могли только законные покупатели. Без ключа шифрования программа становится неработоспособной, либо работает только по trial веткам. Теперь алгоритм шифрования становится проверкой законного использования, наличие условного перехода if расшифровалось then … - лишь формальность, избавляющая от неминуемого access violation при исполнении неправильно расшифрованного кода.

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

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

Защищенная с помощью шифрования программа по-прежнему остается уязвимой от атаки следующего рода: кракер приобретает лицензионную копию, запускает, и из дампа памяти получает расшифрованную версию. Поэтому сразу после исполнения расшифрованного кода необходимо его зашифровывать, либо переписывать обратно предварительно сохраненный участок кода. У кракера остается возможность "ловли" таких моментов, получение рабочих кусков программы и последующий их сбор в единое целое, но это уже ручная и достаточно трудоемкая работа. Бороться с такого рода атаками тоже можно - просто сделайте как можно больше зашифрованных участков кода, меняйте их в каждой новой версии программы, предлагаемая технология как раз и автоматизирует процесс создания "вязкой" защиты.



Содержание  Назад  Вперед