Стратегии пробной версии/лицензирования

Я написал утилиту для фотографов, которую я планирую продать в Интернете довольно дешево (10 долларов США). Я бы хотел, чтобы пользователь попробовал программное обеспечение в течение недели или около того, прежде чем запрашивать лицензию. Поскольку это персональный проект, и программное обеспечение не очень дорого, я не думаю, что покупка услуг профессиональных поставщиков лицензий будет стоить того, и я катаюсь самостоятельно.

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

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

Приложение находится в .NET 2.0, если это имеет значение.

Ответы

Ответ 1

РЕДАКТИРОВАНИЕ: вы можете сделать вашу текущую схему лицензирования значительно сложнее взломать, сохранив информацию реестра в локальном органе безопасности (LSA). Большинство пользователей не смогут удалить вашу ключевую информацию оттуда. Поиск LSA на MSDN должен предоставить вам необходимую информацию.

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

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

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

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

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

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

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

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

Ответ 2

Не так много смысла делать сложные схемы защиты. В основном одна из двух вещей будет:

  • Ваше приложение недостаточно популярно, и никто не трескает его.

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

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

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

Ответ 3

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

Ответ 4

Попробуйте Shareware Starter Kit. Он был разработан моей Microsoft и может иметь некоторые другие функции, которые вы хотите.

http://msdn.microsoft.com/en-us/vs2005/aa718342.aspx

Ответ 5

Если вы планируете продолжить разработку своего программного обеспечения, вы можете рассмотреть модель выкупа:

http://en.wikipedia.org/wiki/Street_Performer_Protocol

По сути, вы разрабатываете усовершенствования программного обеспечения, а затем запрашиваете определенное количество пожертвований до их выпуска (без DRM).

Ответ 6

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

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

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

Таким образом вы можете хранить уникальный id-сервер и отказываться генерировать дату истечения более одного или двух раз. Не уверен, что использовать как уникальный идентификатор, но должен быть какой-то способ получить что-то полезное из Windows.

Ответ 7

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

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

Конечно, удаление обоих ключей и повторная установка приложения снова запустит время оценки.

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

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

Ответ 8

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

Ответ 9

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

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

Кроме того, рассмотрите вопрос о цене вашего приложения на сумму 20 долларов США (или 19,95 доллара США). Если у вас уже нет установки для микроплатежей (например, в магазине iPhone или XBoxLive или что-то еще), у людей, как правило, есть отвращение к покупке вещей в Интернете ниже определенной ценовой точки (что составляет около 20 долларов США в зависимости от типа приложения), и люди предполагают подсознательно, если что-то недорого, это не должно быть очень хорошо. Вы действительно можете повысить коэффициент конверсии с более высокой ценой (до определенной точки).

Ответ 10

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

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