Пробное программное обеспечение / стратегии лицензирования [закрыто]

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

  •  01-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

Решение

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

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

Это мое личное мнение на этот счет.Найдутся громкие люди, которые с этим не согласятся.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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