Лицензирование .NET библиотек
От: Unhandled_Exception Россия  
Дата: 04.09.23 13:12
Оценка:
Всем привет,

Как сейчас принято лицензировать .NET библиотеки? Наверняка есть какой-то кроссплатформенный способ.

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

Спасибо!
Re: Лицензирование .NET библиотек
От: falcoware Россия https://falcoware.com/rus/
Дата: 04.09.23 17:20
Оценка: :)
Здравствуйте, Unhandled_Exception, Вы писали:


U_E>Спасибо!


".net licensing library" набрал куча библиотек.

?? Желаем же, чтобы каждый из вас, для совершенной уверенности в надежде, оказывал такую же ревность до конца, ?? дабы вы не обленились, но подражали тем, которые верою и долготерпением наследуют обетования.Евреям 6:11-12
© Библия Онлайн, 2003-2023.
https://falcoware.com/rus/ — Бесплатные Игры!!!
Re: Лицензирование .NET библиотек
От: rudzuk  
Дата: 04.09.23 20:09
Оценка:
Здравствуйте, Unhandled_Exception, Вы писали:

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


Встречный вопрос: а дотнетовские либы без исходников принято продавать что-ли? Какова общая практика?
avalon/3.0.2
Re: Лицензирование .NET библиотек
От: drVanо Россия https://vmpsoft.com
Дата: 05.09.23 08:40
Оценка:
Здравствуйте, Unhandled_Exception, Вы писали:

U_E>Всем привет,


U_E>Как сейчас принято лицензировать .NET библиотеки? Наверняка есть какой-то кроссплатформенный способ.


А чем .NET библиотека в плане лицензирования принципиально отличается от натива?
Отредактировано 05.09.2023 9:03 drVanо . Предыдущая версия . Еще …
Отредактировано 05.09.2023 8:40 drVanо . Предыдущая версия .
Re[2]: Лицензирование .NET библиотек
От: Unhandled_Exception Россия  
Дата: 05.09.23 09:07
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Встречный вопрос: а дотнетовские либы без исходников принято продавать что-ли? Какова общая практика?


Вполне, равно как и для Делфи. У меня чаще без исходников. Стоимость версии с исходниками в несколько раз выше.
Re[2]: Лицензирование .NET библиотек
От: Unhandled_Exception Россия  
Дата: 05.09.23 09:13
Оценка:
Здравствуйте, drVanо, Вы писали:

V>А чем .NET библиотека в плане лицензирования принципиально отличается от натива?


В прошлом сам .NET предлагал нечто.

Может что-то на смену пришло

Я никогда не покупал все эти DevExpress/Infragistics/etc. Может коллеги покупали и подскажут, как у них обстоит дело с активацией полной версии. Как-то ведь еще надо сделать, чтобы нельзя было из чужого дистрибутива взять DLL-ки и использовать их бесплатно.
Re[3]: Лицензирование .NET библиотек
От: rudzuk  
Дата: 05.09.23 11:46
Оценка:
Здравствуйте, Unhandled_Exception, Вы писали:

UE> R>Встречный вопрос: а дотнетовские либы без исходников принято продавать что-ли? Какова общая практика?


UE> Вполне, равно как и для Делфи. У меня чаще без исходников. Стоимость версии с исходниками в несколько раз выше.


Для дельфей обычно с исходниками продают
avalon/3.0.2
Re[3]: Лицензирование .NET библиотек
От: drVanо Россия https://vmpsoft.com
Дата: 05.09.23 12:39
Оценка:
Здравствуйте, Unhandled_Exception, Вы писали:

U_E>В прошлом сам .NET предлагал нечто.


Хорошо, задам вопрос по-другому: Если вы продаете .NET библиотеку без исходников (я правильно понял?), то чем лицензирование этой библиотеки будет принципиально отличаться от лицензирования библиотеки, написанной например на C++? Или вы не знаете как вам в C# прикрутить проверку лицензии?
Re[4]: Лицензирование .NET библиотек
От: Unhandled_Exception Россия  
Дата: 05.09.23 12:48
Оценка:
Здравствуйте, drVanо, Вы писали:

V>Хорошо, задам вопрос по-другому: Если вы продаете .NET библиотеку без исходников (я правильно понял?),


Все верно.

V>то чем лицензирование этой библиотеки будет принципиально отличаться от лицензирования библиотеки, написанной например на C++? Или вы не знаете как вам в C# прикрутить проверку лицензии?


Принципиально ничем.

Вопрос вот в чем. Если ключ для превращения библиотеки в ее полнофункциональную версию хранится (так или иначе; например, в вызове специального метода лицензируемой библиотеки) в приложении, которое эту библиотеку использует, то это выглядит крайне уязвимо. .NET код смотрится элементарно, и там сразу будет виден ключ. Клиента обфусцировать свое собственное приложение не заставишь.
Re[4]: Лицензирование .NET библиотек
От: Unhandled_Exception Россия  
Дата: 05.09.23 12:49
Оценка: 12 (1)
Здравствуйте, rudzuk, Вы писали:

R>Для дельфей обычно с исходниками продают


Ну да, и я продаю. Тем не менее берут без исходников куда как чаще. Потом приходят за апргрейдами, когда Делфи обновляют. По крайней мере, у меня так.
Re[5]: Лицензирование .NET библиотек
От: drVanо Россия https://vmpsoft.com
Дата: 05.09.23 13:13
Оценка: 12 (1)
Здравствуйте, Unhandled_Exception, Вы писали:

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

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

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

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

P.S. При этом всем вы сами обфусцируете свою библиотеку.
Отредактировано 05.09.2023 13:14 drVanо . Предыдущая версия .
Re[6]: Лицензирование .NET библиотек
От: Unhandled_Exception Россия  
Дата: 06.09.23 15:23
Оценка:
Здравствуйте, drVanо, Вы писали:

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


Спасибо за идеи!

Интересно, гиганты так же делают, или мирятся с тем, что их DLL-ки из чьего-нибудь дистрибутива кто-то может скопировать?
Re: Лицензирование .NET библиотек
От: NWP Россия  
Дата: 09.09.23 08:17
Оценка: 12 (1) -1
Здравствуйте, Unhandled_Exception, Вы писали:

U_E>Спасибо!



1. Активация ключа через интернет с каким-либо идентификатором машины, ответ сервера сохраняется в реестре
2. В compile-time читаешь ответ сервера из реестра и внедряешь в ресурсы конечной сборки клиента. Если ответ сервера в реестре нет — генеришь ошибку компиляции с нужным текстом
3. В run-time проверяешь внедрен ли хеш в какую либо сборку (рекурсивно)

ответ сервера у меня, например, это подпись, соответсвенно в либе — проверка подписи

Ключевые слова для поиска в msdn LicenseManager, файл licx

Upd. Вижу уже, что про решение от Microsoft знаешь, а что не так с ним?
у меня работает на ура.
Re[2]: Лицензирование .NET библиотек
От: drVanо Россия https://vmpsoft.com
Дата: 09.09.23 08:53
Оценка:
Здравствуйте, NWP, Вы писали:

NWP>1. Активация ключа через интернет с каким-либо идентификатором машины, ответ сервера сохраняется в реестре

NWP>2. В compile-time читаешь ответ сервера из реестра и внедряешь в ресурсы конечной сборки клиента. Если ответ сервера в реестре нет — генеришь ошибку компиляции с нужным текстом

Обязательное наличие интернета для коммерческих продуктов это огромный минус для самого продукта (например у многих компаний билдсервера вообще не имеют связи с внешним миром) + гемор на поддержку сервера активации для самого разработчика.
Re[3]: Лицензирование .NET библиотек
От: NWP Россия  
Дата: 09.09.23 10:53
Оценка:
Здравствуйте, drVanо, Вы писали:

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


Ну только не для продукта, а для одноразовой активации. Для компиляции интернет уже не нужен.
А так любая система защиты вступает в противоречие с удобством использования
Re[2]: Лицензирование .NET библиотек
От: Unhandled_Exception Россия  
Дата: 11.09.23 13:40
Оценка:
Здравствуйте, NWP, Вы писали:

NWP>Upd. Вижу уже, что про решение от Microsoft знаешь, а что не так с ним?

NWP>у меня работает на ура.

Я его еще не пробовал. Оно в самом деле кроссплатформенное?

А как с pipelines (Azure devops etc.) вопрос решаешь? Они сейчас популярные стали. Активация на старте и деактивация на выходе?
Re[2]: Лицензирование .NET библиотек
От: Unhandled_Exception Россия  
Дата: 11.09.23 13:44
Оценка:
Здравствуйте, NWP, Вы писали:

NWP>2. В compile-time читаешь ответ сервера из реестра и внедряешь в ресурсы конечной сборки клиента. Если ответ сервера в реестре нет — генеришь ошибку компиляции с нужным текстом


Как это технически делается? Надо править код файла проекта?

И что будет, если ответ сервера из реестра перенести на другую машину?

Спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.