Создатель пробной версии

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

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

Инструмент должен

  1. ограничить время запуска целевого приложения

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

    (Меня не волнует пробная модель)

  2. запустить как шаг после сборки (не требует кода в моем приложении)
  3. не требуется ввод лицензионного ключа, например Application Trial Maker , поскольку я не хочу иметь накладные расходы на управление демонстрационными лицензиями
  4. обеспечить некоторые попытки предотвратить взлом (не только один индикатор, например, использовать файл, реестр и альтернативные потоки данных) и выжить после удаления продукта, к которому он применяется
  5. работать в Windows 7 SP 1 до Windows 10 (время компиляции)
  6. работать в автономном режиме (время компиляции)
  7. исправление приложений для Windows 7 SP 1 до Windows 10 (время выполнения)
  8. работать с приложениями .NET (пожалуйста, также укажите решения только для .NET, так как это моя основная часть)
  9. стоимость менее 100 € (бесплатно / бесплатно / предпочтительнее с открытым исходным кодом)
  10. иметь пожизненную лицензию, без ежегодных затрат

Необязательный:

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

Ответы (1)

Вот некоторые мысли, связанные с вашими требованиями:

  • 2) Не требует кода в моем приложении . Это указывает на то, что вам нужна оболочка для переноса вашего исполняемого файла в другой исполняемый файл. Это, на мой взгляд, облегчит взломщику распаковку и получение исходного исполняемого файла. Это также может запускать программное обеспечение для обнаружения вирусов, поскольку оболочка запускает другую программу из программы.
  • Наличие двух версий программы (комбинация 1), 2) и 3) ), одной демо-версии и одной производственной версии означает, что если кто-то получит производственную версию, он сможет свободно ее распространять. Хоть и законно, но все равно незащищено
  • 4) Выживание после деинсталляции . Для меня это указывает на то, что вам либо в вашей оболочке, либо в вашем модуле лицензионного кода необходимо создать что-то вроде идентификатора компьютера из Application Trial Maker. В противном случае чистая оболочка должна была бы зависеть от чего-то вроде даты установки/создания или даты загрузки (где вы каждую ночь создаете версию, действительную только для заданного диапазона дат (но тогда они могут загрузить новую демо-версию...))

Основываясь на этом и некоторых чтениях Application Trial Maker, я бы предложил следующее, чтобы получить подходящее решение:

  • Используйте Application Trial Maker, но оберните его так, чтобы единственное изменение, которое вам нужно в вашем коде, — это простое включение в ваш основной метод. Сделав это один раз, вы сможете легко включить его в любой свой проект.
    • Если вы настаиваете на сборке одной демо-версии и одной производственной версии, сделайте две сборки Release, в которых вы используете условия для включения или отключения модуляции лицензии.
    • Если вы создаете две версии, вы можете выбрать завершение без бита лицензионного кода.
  • Если вы включаете лицензионный код, вы пытаетесь сделать его немного более автоматическим. Одним из вариантов может быть добавление кнопки в окно лицензии, запускающей HTTP-запрос с идентификатором компьютера, который может вернуть код лицензии. Это в сочетании с возможностью купить вашу программу (где они должны включать идентификатор компьютера) может уменьшить количество хлопот. Однако у вас может/должна быть возможность связать электронные письма с идентификатором компьютера с этой системой, но это также можно сделать несколько автоматическим образом.

Другими словами, я считаю, что программное обеспечение, которое вы запрашиваете, программное обеспечение-оболочка, не существует, и вам необходимо пересмотреть свои требования относительно того, что действительно важно для вас, и что вы можете заставить работать на вас на профессиональном уровне. безопасность. Основываясь на вашей собственной информации, кажется, что изменение конфигурации Application Trial Maker и, возможно, создание небольшой системы для обработки лицензионного кода было бы хорошим решением.