Как записать метку времени в реестр Windows и Conf в Linux

Я новичок в разработке коммерческого программного обеспечения. Я работаю над разработкой двух версий Java-инструмента.
1) Пробная версия (30 дней бесплатного использования)
2) Полная версия
Как я понимаю, для пробной версии дата начала должна быть записана в реестре или в файле conf. Но я не могу определить, как я могу написать программу на Java, которая запишет временную метку в реестр и файлы conf. Может кто-нибудь, пожалуйста, помогите мне понять, как это сделать.

1 ответ

Решение

Настройки API - это то, что вам нужно.

Но возвращаясь к своей первоначальной цели, реализовать такую ​​систему гораздо сложнее, чем просто записать свою метку времени в системный репозиторий или другое хранилище.

Вы должны быть уверены, что:

  • Вы используете "источник" времени, которому можете доверять

  • Никто не может изменить метку времени, которую вы где-то сохранили - вам нужно каким-то образом подписать ее

  • Вам необходимо периодически обновлять отметку времени и хранить ее в разных местах, чтобы защитить себя от откатов времени (чтобы система могла сказать, что текущее время прошло)

  • В идеальном случае вам нужно проверить лицензию на каком-либо сервере лицензирования.

Даже если вы уверены в своем источнике меток времени, высока вероятность того, что ваша библиотека лицензирования будет декомпилирована с помощью JD-GUI и проверки кода удалена.

Чтобы сделать ваш чек достаточно сильным, вам необходимо:

  • Используйте обфускацию для всех ваших системных модулей (посмотрите на http://proguard.sourceforge.net/)

  • Имейте в виду, что кто-то может просто добавить новую зависимость в путь к классам и повлиять на логику вашей лицензии во время выполнения

  • Поместите вызов метода проверки в разных местах вашей системы

  • Использовать шифрование для всех данных, связанных с лицензией

  • Привязать лицензию к конкретной машине, используя идентификаторы оборудования (ЦП, сетевые устройства и т. Д.)

  • Кодировать дату выдачи в лицензию самостоятельно

  • Лицензионный файл должен быть зашифрован с помощью авторизованного ключа доступа (читайте о публичном / частном шифровании), а сборка вашей системы также должна быть подписана соответствующим ключом, что означает, что вам нужно иметь четко определенный процесс сборки и подписи системы

Другие вопросы по тегам