Подтвердить что ты не робот

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

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

так есть ли какое-либо решение для пробной версии программного обеспечения без проверки системной даты и разрешения только 30 дней судебного разбирательства?

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 3

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

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

действия:

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

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

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

  • Теперь вы можете проверить счетчик для истечения пробных дней

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

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

веселит...

ADDED

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

Я не знаю, возможно ли это или нет, но у вас всегда может быть какое-то решение:

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

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

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

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

Ответ 7

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

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

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

Ответ 8

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

Ответ 9

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

Ответ 10

Подумайте также о:

Сохранение DateTime закрытия приложения, в следующий раз, когда вы запустили приложение, вы сможете определить, было ли изменено значение Datetime или нет (по крайней мере, они не могут изменить его до чего-то до закрытия). Пример:

При закрытии приложения

Сохранение времени = > 15:34 03/31/2014 (сохранено)

Следующий запуск приложения:

Проверить дату. Сейчаs > 15:34 03/31/2014. (так что они не могут пойти ниже этого...)

ДОБАВЛЕН:

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

Ответ 11

Вы можете использовать бесплатный проект Libprot. Сайт https://github.com/libprot/trunk.

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

Напишите строку типа:

Компания X | 10.2.2014 | 1.12.2015

где 10.2.2014 - текущая дата, и если системное время меньше, то кто-то изменил системные часы = > мы не должны запускать

1.12.2015 - до каких времен ключ действителен

и название компании, которая купила/загрузила его.

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

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

вы можете добавить на свой сайт PHP/java script для автоматического отправки пробных кодов.