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

Хорошо... во время...

// During.js
during[fish]();

после...

// After.js
alert("After");
fish++

HTML

<!-- some html -->
<script language="javascript" type="text/javascript">
document.write("<script language='javascript' type='text/javascript' src='before.js'></sc" + "ript>");
document.write("<script language='javascript' type='text/javascript'>during[" + fish + "] = function(){alert('During!' + fish);}</sc" + "ript>");
document.write("<script language='javascript' type='text/javascript' src='during.js'></sc" + "ript>");
document.write("<script language='javascript' type='text/javascript' src='after.js'></sc" + "ript>");
</script>
<!-- some other html -->
<script language="javascript" type="text/javascript">
document.write("<script language='javascript' type='text/javascript' src='before.js'></sc" + "ript>");
document.write("<script language='javascript' type='text/javascript'>during[" + fish + "] = function(){alert('During!' + fish);}</sc" + "ript>");
document.write("<script language='javascript' type='text/javascript' src='during.js'></sc" + "ript>");
document.write("<script language='javascript' type='text/javascript' src='after.js'></sc" + "ript>");
</script>

я склонен согласиться о способе, которым это начинает пахнуть, все же. В частности, почему не мог Вы codegen "во время" в динамично созданный js файл, и вставлять это?

Примечание, что динамично сгенерированный сценарий идет внутренний функция в 1110-секундном document.write.
Протестированный в FF2, IE7

25
задан 5377037 21 October 2018 в 12:55
поделиться

7 ответов

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

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

Чтобы обойти переустановки, вы можете добавить некоторую информацию в любой файл, сохраненный с пробной версией вашего приложения, который является уникальным для этого конкретная версия приложения (возможно, метка времени, когда оно было установлено). Когда пробная версия вашего приложения пытается открыть файл, она проверяет эту подпись и гарантирует, что она была создана с тем же экземпляром, в противном случае отказывается открывать файл. По сути, это лишает возможности просто переустановить приложение и продолжить его использование.

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

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

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

41
ответ дан 28 November 2019 в 20:38
поделиться

У меня есть для вас одно простое решение.

Возьмите 2 переменные для реестра: 1. дата 2. счетчик

шаги:

  1. Установить счетчик = 1

  2. Копировать системную дату на дату

  3. Проверять каждый раз, отличается ли дата от текущей даты, чем копировать эту дату в дату реестра, также увеличьте счетчик на 1. Если дата такая же, ничего не делайте.

  4. Теперь вы можете проверить счетчик на истечение срока пробных дней

Используя этот трюк, если пользователь изменит системную дату на более раннюю дату, чем также это работает.

Для реестра вы можете зашифровать дату и счетчик, чтобы технический специалист не мог распознать вашу логику!

ура ...

ДОБАВЛЕНО

Эта логика не работает, только если пользователь не меняет свидание на каждый день! Опять же, у нас есть решение для этого!

Я не знаю, возможно это или нет, но вы всегда можете найти решение:

  1. подсчитайте общее время пробного периода и сохраните его в реестре.
  2. Теперь подсчитайте общее время каждого запуска и добавьте его в другую переменную. (Я надеюсь, что это можно сделать по таймеру)
  3. Сравните два приведенных выше значения для принятия решения об истечении срока.
5
ответ дан 28 November 2019 в 20:38
поделиться

Вы можете использовать компонент лицензирования. Вы можете сделать его самостоятельно (см. класс LicenseManager ) или купить его у поставщика (например, CryptoLicensing ).

5
ответ дан 28 November 2019 в 20:38
поделиться

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

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

2
ответ дан 28 November 2019 в 20:38
поделиться

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

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

0
ответ дан 28 November 2019 в 20:38
поделиться

Сохраните дату последнего запуска и, если системная дата предшествует этому, истечет срок действия пробной версии.

Единственный надежный метод - это проверить приложение против службы, которую вы размещаете, при условии, что никто не взломал ваш код подключения;)

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

0
ответ дан 28 November 2019 в 20:38
поделиться

Трудно обработать 30 дней без привязки к системной дате / часам. Вы всегда можете вести список дат, когда приложение было запущено, и считать 1 каждый раз, когда оно отличалось от предыдущего. Таким образом, ваш пользователь должен будет устанавливать одну и ту же дату каждый раз, когда запускает ваше приложение.

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

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

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

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

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

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

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

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

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

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

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

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

2
ответ дан 28 November 2019 в 20:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: