Создать относительно безопасную, но простую систему лицензирования программного обеспечения далеко не просто. Само собой разумеется, что любая система (кроме размещения кода на защищенных серверах) может быть взломана при наличии достаточных ресурсов и времени. Лучшее, что вы можете сделать, - это приложить усилия, необходимые для того, чтобы сделать это больше, чем средняя выгода.
Если вы серьезно относитесь к защите своих собственных программных активов, вам следует подумать об использовании коммерчески проверенной технологии лицензирования, а не обкатывать свои собственные. Тем не менее, давайте посмотрим, как вы могли бы подумать о защите так, как вы описываете.
Во-первых, вы должны понимать, что в эпоху виртуальных машин любой созданный вами файл или запись в реестре можно легко откатить. Без онлайн-компонента для процесса проверки вы не сможете предотвратить этот сценарий.
То, что вы можете сделать, это:
- Сохраните зашифрованное значение количества дней, в течение которого система использовалась, - значение, которое никогда не может отступить назад.
- Сохраните зашифрованный счетчик, который вы уменьшаете до нуля при каждом использовании системы.
- Сохраняет зашифрованное значение последней даты / времени, когда было запущено программное обеспечение.
- Сохранить зашифрованный хеш для трех других значений.
Теперь у вас есть возможность проверить, что эти значения согласованы, и ограничить возможность подделки. Вы также должны посолить эти значения, чтобы их нельзя было легко воспроизвести.