Каков наилучший способ создать программу, которая работает только в течение заранее определенного пробного периода (evaluation period)?

StackOverflow https://stackoverflow.com/questions/2481320

  •  21-09-2019
  •  | 
  •  

Вопрос

Мне нужно создать простое приложение, которое не будет работать через 30 дней.

Как я могу это сделать ?

Есть ли способ использовать пробную программу через 30 дней ?

Это было полезно?

Решение

Всегда есть способ воспользоваться пробной программой через 30 дней.

Другие советы

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

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

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

Если вам действительно нужно выполнить пробную версию с ограниченным сроком действия, то я бы рассмотрел возможность записи зашифрованного ключа в реестр (Windows) или точечный файл (Linux).Этот ключ может кодировать дату истечения срока действия.Использование обратимого шифрования позволяет вам вернуть это значение обратно.Использование секретного ключа помогает защититься от того, чтобы кто-то сгенерировал свой собственный (действительный) ключ.Полностью лицензированное приложение могло бы использовать тот же механизм ключа, но с шифрованием значения ключа, которое позволяет использовать его постоянно.

Из моего ответа на внедрение-сроков-истечения-срока-действия-в-приложении/1871218#1871218:

Вероятно, самый удобный для пользователя способ сделать это - отслеживать количество дней, в течение которых пользователь пользовался вашим программным обеспечением.Например, при каждом запуске вашей программы вы могли бы записывать дату в зашифрованный файл (если только дата уже не существует в файле).Затем, как только в файле будет больше, скажем, 30 дат, сообщите пользователю, что пришло время купить полную версию.

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

Также имейте в виду, что ваша схема не обязательно должна быть совершенной, просто сделайте ее достаточно прочной, чтобы пользователям не было удобно ее ломать.

Попросите программу запросить ключ с вашего сервера при первом запуске и проверять его действительность при каждом запуске программы и каждые 24 часа.

Другой вариант - использовать компилятор на стороне сервера при загрузке приложения.Это может "внедрить" лицензионный ключ в двоичный файл.Вы можете сделать это, используя константу в отдельном файле.Затем это можно связать с другими предварительно загруженными файлами.Этот метод медленнее, но его сложнее взломать, поскольку хакеру потребуется декомпилировать программу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top