Глава 2. Форма №2.
Активная защита
Защита проектов My Visual Database базируется на том факте, что для нормальной работы приложения достаточно файла script.dcu, тогда как файл с исходниками script.pas должен оставаться у разработчика. Отсюда следствие:
Если в проекте нет скриптов, то его невозможно защитить.
Беззащитными остаются формы и отчёты: их легко модифицировать штатными средствами My Visual Database, даже если вы исключите из комплекта поставки файл проекта *.vdb, который лишь указывает, где находятся остальные файлы. База данных SQLite так же не имеет встроенных механизмов защиты. Отсюда второе следствие:
Всё, что вы хотите защитить, должно находиться в скриптах.
На практике в большинстве случаев будет достаточно ограничить количество запускаемых экземпляров копий программы, привязав лицензию к аппаратной части компьютера. С помощью скриптов мы можем узнать MAC-адрес сетевой карты и серийный номер жёсткого диска. Этих сведений хватит для формирования идентификатора рабочего места (HardwareKey). С помощью несложного (но надёжного на предмет взлома) алгоритма HardwareKey преобразуется в RegistrationKey, который передаётся конечному пользователю в процессе регистрации. Для Shareware проектов это необходимо сделать до истечения пробного периода, для коммерческих проектов - до начала эксплуатации.
RegistrationKey и сведения о владельце можно хранить в файле settings.ini, чтобы не заморачиваться с реестром. Впрочем, с файлом settings.ini тоже могут возникнуть заморочки, например, если вы будете использовать инсталлятор и размещать проект в папке Program Files.
Процедура проверки ключа регистрации вычисляет хэш строкового выражения, которое включает в себя HardwareKey и секретное слово:
Скачать книгу "Визуальное программирование" с исходниками проектов: https://docs.google.com/document/d/1lU4 … uxfULXjcM/
Визуальное программирование:
блог и
телеграм-канал.