Самый безопасный способ лицензирования программного обеспечения

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

Язык программного обеспечения - VB.net.

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

Спасибо за помощь!

Если в настоящее время не существует программного обеспечения для этого, как я могу его создать?


person Cyclone    schedule 13.08.2009    source источник


Ответы (8)


Поскольку я не уверен, смогу ли я разместить какую-либо регистрационную базу данных, есть ли способ сохранить автономную лицензию?

Нет, безопасного способа сделать это невозможно. Даже если у вас есть регистрационная база данных, ее можно взломать.

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

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

Обфускатор .net - вероятно, самое простое и эффективное решение для вас.

person Unknown    schedule 13.08.2009
comment
Тогда есть ли вообще какой-нибудь способ это сделать? - person Cyclone; 14.08.2009
comment
Есть ли бесплатный обфускатор .net? Я не могу найти загрузку Dotfuscator на их веб-сайте ... - person Cyclone; 14.08.2009
comment
Всегда есть выход, но спросите RIAA и DVD CCA, насколько они эффективны. - person chris; 14.08.2009
comment
Я нашел хороший Phoenix Protector. Это работает хорошо! - person Cyclone; 29.08.2009
comment
@Cyclone: ​​Мне кажется немного ироничным, что вы просите бесплатную программу для подобных вещей. - person hasen; 07.11.2009

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

99,9% компаний не хотят что-то воровать и предпочитают не менять программное обеспечение под свои нужды. Они скорее покупают что-то из коробки, что будет работать.

Имейте в виду, что Fog Bugz from Fog Creek поставляется с полным исходным кодом, и у них нет проблем с продажей там. программное обеспечение, потому что это качественный продукт.

Качество важно, сосредоточьтесь на нем, а не на безопасности.

person David Basarab    schedule 13.08.2009
comment
Хм, значит, вы в основном говорите, что если продукт достаточно хорош и делает то, что он говорит, то достаточное количество людей пойдет вперед и действительно купит его правильным способом, что не имеет значения? Имеет смысл, хорошо, что я не беру за это много. Я знаю, что чем выше цена, тем больше вероятность того, что пользователи не захотят платить. - person Cyclone; 14.08.2009
comment
Вот что я говорю. Именно качество привлечет людей к вашему продукту. Сосредоточьтесь на этом. - person David Basarab; 14.08.2009
comment
Вот чем я сейчас занимаюсь, он почти готов к продаже. У меня есть только одна функция, которая выдает ошибки и в данный момент ничего не делает, но я исправлю это в ближайшее время. - person Cyclone; 14.08.2009
comment
Дело скорее в том, что, скорее всего, никакой разницы не будет. Особенно, если целевая аудитория вашего продукта - это компании, использующие его в коммерческой деятельности, они с гораздо большей вероятностью просто купят лицензию в отношении любых мер защиты, чтобы они были юридически понятны. И если это домашние пользователи или компания из страны, где авторские права в основном беззубые (Россия, Китай ...), то это в любом случае не имеет значения. - person Pavel Minaev; 14.08.2009
comment
В любом случае, думаю, мне не стоит СЛИШКОМ волноваться по этому поводу, вы правы. Если бы мне лично понадобилась копия программного обеспечения, последнее, что я бы сделал, - это поискать нелегальные копии. Я бы сразу пошел и купил лицензию. Этот продукт отлично подходит для офисного использования, поэтому я думаю, что компании, вероятно, тоже будут его использовать и купят. Как вы думаете, сколько денег будет потеряно от пиратских копий за один год? (в процентах) - person Cyclone; 14.08.2009
comment
Этот ответ, вероятно, верен для США, но все еще существуют культуры, в которых компьютерное пиратство не рассматривается как воровство. Даже в Великобритании (мой дом), по моему опыту, многие довольно крупные компании часто используют больше рабочих мест, чем они заплатили. - person MarkJ; 21.08.2009
comment
В идеальном мире, где все платят за вещи, качественный продукт должен быть всем, что вам нужно. Но это не тот мир, в котором мы живем :) - person Razor; 11.09.2013

Прочтите статью Разработка для защиты программного обеспечения и лицензирования; в нем объясняется, как выбрать решение, почему вы должны скрывать свое приложение, и дается ряд советов, как структурировать код, чтобы его было труднее взломать.

Следует помнить, что после того, как ваше приложение запущено на другом компьютере, не существует 100% гарантированного способа предотвратить выполнение. Что вы можете сделать, если будете осторожны, так это поднять планку достаточно высоко, чтобы вашу программу было легче купить, чем взломать ее.

Обязательный отказ от ответственности и плагин: компания, соучредителем которой я являюсь, производит решение для лицензирования программного обеспечения OffByZero Cobalt для .NET, которое изначально поддерживает VB.NET.

person Duncan Bayne    schedule 07.11.2009
comment
Выглядит неплохо. Обязательный раздражающий вопрос: Могу ли я получить бесплатную копию в обмен на копию всего созданного мной платного программного обеспечения? (в основном шучу) - person Cyclone; 08.11.2009

Как правило, невозможно защитить программное обеспечение .NET от взлома. Это слишком просто (особенно с использованием Reflector). Итак, вам нужно выполнить несколько шагов, чтобы иметь возможность в какой-то степени защитить:

  1. Затемнение кода (часто очень нетривиальная задача, поскольку вы не можете скрыть открытые интерфейсы, открытые для ссылки на них).
  2. Если программное обеспечение является компонентом разработки, его можно защитить с помощью встроенного средства лицензирования .NET (с помощью файлов .licx в Visual Studio). В этом помогает одна компания: http://www.infralution.com/
  3. Пользовательский сервер регистрации (не защитит от взлома, но защитит от «нелицензионного» использования).

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

person Dmytrii Nagirniak    schedule 14.08.2009

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

person Cullen Walsh    schedule 13.08.2009
comment
Я знаю это, но я, по крайней мере, хочу, чтобы люди не могли просто размещать копии повсюду. Все, что потребуется сейчас, чтобы кто-то распространял мой скрипт, - это электронное письмо или загрузка на сервер. - person Cyclone; 14.08.2009
comment
Однако вы можете усложнить задачу тем, кто не хочет тратить на попытки более 5 минут. Эти инструменты решают определенный процент проблемы, а не всю проблему. Если 50 человек из 1000 покупают ваше программное обеспечение, потому что им было нелегко просто скопировать его, значит, деньги потрачены не зря. - person Razor; 11.09.2013

с .net? Защитить его очень сложно.

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

Демо? исключить код из загрузки.

в общем, не будь слишком параноиком ...

person Keith Nicholas    schedule 13.08.2009

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

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

Обновление: Чтобы ответить на комментарий Cyclone: ​​Dotfuscator, вероятно, самый известный, поскольку он поставляется с Visual Studio с 2003 года (я думаю; не уверен, ограничен ли он конкретными выпусками VS). При быстром поиске в Google было обнаружено руководство при использовании в Visual Studio 2008, а также некоторые альтернативные варианты.

person STW    schedule 13.08.2009
comment
Вы имеете в виду какой-нибудь обфускатор, который мне следует использовать? - person Cyclone; 14.08.2009
comment
Я использую Visual Basic 2008 Express, он не входит в комплект поставки ›.‹ - person Cyclone; 14.08.2009

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

person Kasper Holdum    schedule 14.08.2009