Как записать метку времени в реестр Windows и Conf в Linux
Я новичок в разработке коммерческого программного обеспечения. Я работаю над разработкой двух версий Java-инструмента.
1) Пробная версия (30 дней бесплатного использования)
2) Полная версия
Как я понимаю, для пробной версии дата начала должна быть записана в реестре или в файле conf. Но я не могу определить, как я могу написать программу на Java, которая запишет временную метку в реестр и файлы conf. Может кто-нибудь, пожалуйста, помогите мне понять, как это сделать.
1 ответ
Настройки API - это то, что вам нужно.
Но возвращаясь к своей первоначальной цели, реализовать такую систему гораздо сложнее, чем просто записать свою метку времени в системный репозиторий или другое хранилище.
Вы должны быть уверены, что:
Вы используете "источник" времени, которому можете доверять
Никто не может изменить метку времени, которую вы где-то сохранили - вам нужно каким-то образом подписать ее
Вам необходимо периодически обновлять отметку времени и хранить ее в разных местах, чтобы защитить себя от откатов времени (чтобы система могла сказать, что текущее время прошло)
В идеальном случае вам нужно проверить лицензию на каком-либо сервере лицензирования.
Даже если вы уверены в своем источнике меток времени, высока вероятность того, что ваша библиотека лицензирования будет декомпилирована с помощью JD-GUI и проверки кода удалена.
Чтобы сделать ваш чек достаточно сильным, вам необходимо:
Используйте обфускацию для всех ваших системных модулей (посмотрите на http://proguard.sourceforge.net/)
Имейте в виду, что кто-то может просто добавить новую зависимость в путь к классам и повлиять на логику вашей лицензии во время выполнения
Поместите вызов метода проверки в разных местах вашей системы
Использовать шифрование для всех данных, связанных с лицензией
Привязать лицензию к конкретной машине, используя идентификаторы оборудования (ЦП, сетевые устройства и т. Д.)
Кодировать дату выдачи в лицензию самостоятельно
Лицензионный файл должен быть зашифрован с помощью авторизованного ключа доступа (читайте о публичном / частном шифровании), а сборка вашей системы также должна быть подписана соответствующим ключом, что означает, что вам нужно иметь четко определенный процесс сборки и подписи системы