Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/50: Рейтинг темы: голосов - 50, средняя оценка - 4.86
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930

Способ защиты лицензии программы

17.04.2015, 14:12. Показов 9603. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Стоит следующая задача:
Есть программный продукт написанный на .Net 4.
Продажа предполагается по 1 экз. на 1 заказчика.
Необходимо предусмотреть способ защиты от использования копий программы.
Предполагается вариант с ключём, генерируемым программой на основе серийника(?) материнки и процессора ПК, на котором впервые запускается программа. Этот ключ отсылается разработчикам, в ответ приходит лицензионный ключ, с которым программа работает. Стоит заметить, что компьютер вполне может не иметь доступ в сеть, по этому возможность авторизации программы у разработчика при запуске не рассматривается.
Сейчас неважен алгоритм по которому генерируются ключи. Важен сам подход.
Я вижу следующие проблемы данного подхода:
1) При замене железа (например, при выходе из строя или после апгрейда) программа перестаёт работать. Решение - повторный запрос ключа у разработчиков
2) Исходя из первого пункта есть возможность мухлежа. Поскольку разработчики не могут лично проверить действительно ли произведён апгейд первого ПК, или держатели скопипастили программу на другую машину.

Поскольку этот метод защиты - первое, что пришло в голову при постановке задачи, предполагаю, что есть более надёжные варианты. Буду благодарен за идеи.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.04.2015, 14:12
Ответы с готовыми решениями:

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

Как использовать ID для защиты программы?
Каждый компьютер имеет свой уникальный номер сетевой карты (ID), который, в принципе, можно использовать в качестве серийного номера,...

Создание процесса из программы для защиты основного от несанкционированного завершения
Решил написать для своей программы систему защиты от убийства процесса. Хочу создавать из программы процесс, который будет следить за...

30
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
17.04.2015, 22:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от skilllab Посмотреть сообщение
Но вам виднее
Кому-то нравится копипастить, а кому-то работать головой и делать что-то свое. Не важно что это можно сломать
Цитата Сообщение от Psilon Посмотреть сообщение
Даже на плюсах программы ломаются
важна суть - это ваш, собственный труд и мысли, а не вытащенный откуда-то кусок, слепленный с другими такими-же.
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
17.04.2015, 22:51
Цитата Сообщение от insite2012 Посмотреть сообщение
Чем больше будет именно своего, тем будет надежнее.
не всегда это так, но касательно обфускации - популярные обфускаторы снимаются утилитками в автоматическом режиме, своя же систему потребует индивидуального подхода - а это многим нубохакерам не по зубам...
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.04.2015, 23:37
Цитата Сообщение от aquaMakc Посмотреть сообщение
При запуске программы производится сравнение параметров системы с ключём. Всё совпадает - работает. Не совпадает - закатываем истерику и отказываемся работать
ну так пример я же привел - место, где программа проверяет, просто выпилили, и всё. Что помешает сделать это с вашей программой?

Добавлено через 37 секунд
Цитата Сообщение от insite2012 Посмотреть сообщение
Не думаю. Чем больше будет именно своего, тем будет надежнее.
не всегда

Добавлено через 1 минуту
Цитата Сообщение от hepper Посмотреть сообщение
Цитата Сообщение от insite2012 Посмотреть сообщение
важна суть - это ваш, собственный труд и мысли, а не вытащенный откуда-то кусок, слепленный с другими такими-же.
это да
не всегда это так, но касательно обфускации - популярные обфускаторы снимаются утилитками в автоматическом режиме, своя же систему потребует индивидуального подхода - а это многим нубохакерам не по зубам...
так мы для себя делаем для самообразования или для результата? Разные вещи.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
17.04.2015, 23:40
Цитата Сообщение от Psilon Посмотреть сообщение
мы для себя делаем для самообразования или для результата?
Мы - не могу сказать. Лично я - и для того, и для другого. И есть где применить изученное из книг, и есть результат.
0
 Аватар для Serg34
100 / 100 / 33
Регистрация: 20.09.2014
Сообщений: 457
Записей в блоге: 3
13.05.2015, 01:18
Мне лично больше всего нравится скрытая защита:
Пишешь легкую защиту для законопослушных юзеров с сообщениями, Активирована программа или нет,
А для "Исследователей" программ дублируешь проверку уже скрытно, которая при ошибке активации может тормозить процессы или вытворять все, что нашей душе угодно.

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

Он, конечно, может предъявить хакеру, что программа не устанавливает связь между пульсационными составляющими скорости в двух точках пространства в данный момент времени, но тот ничего не поймет.
И на том и разойдутся.

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

Еще мое сообщение по этой теме
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.05.2015, 02:29
Serg34, единственная более-менее стоящая защита на сегодняшний день это VM. Но там с производительностью всё совсем грустно становится
0
 Аватар для kmi
55 / 55 / 14
Регистрация: 26.04.2010
Сообщений: 177
13.05.2015, 14:00
Не знаю, что у вас за прога. Я бы предложил ставить заказчику своё железо.

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

Для более серьёзных решений можно поставлять свой железный сервер с защитой, например, "Соболем". Используйте этот комп как локальный сервер лицензий внутри организации-заказчика. Сам комп может быть очень простым и дешёвым, на нём будет крутиться только ОС и ваша небольшая служба раздачи лицензий. Дороже обойдётся сам электронный замок.

Наконец, можно сделать свой сетевой сервер лицензий, если ваш продукт имеет достаточный масштаб и есть возможность выхода в сеть на стороне заказчика.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.05.2015, 18:55
kmi, проще использовать USB-ключ, написав простенькую прошивку для контроля софта. По крайней мере я не представляю, как её можно изменить, только перезатереть Соответственно можно тупо применить известный RSA - отдаем открытый ключ юзеру, закрытый остается в проишвке флешки. При запуске программа отправляет нашему USBKey открытый ключ, мы этим ключем пытаемся расшифровать какое-нибудь ключевое слово в прошике, если получилось - то ключ валидный. Это конечно менее надежно, чем полностью кастомное решение, но зато дешевле и меньше геморроя пользователю. От программиста требуется только написать прошивку на полторы функции.
0
 Аватар для kmi
55 / 55 / 14
Регистрация: 26.04.2010
Сообщений: 177
13.05.2015, 18:59
проще использовать USB-ключ
Guardant и является USB-ключом. Есть несколько модификаций на разные случаи жизни. Я в своё время даже всю прогу шифровал ключом для защиты от дизассемблирования.
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.05.2015, 20:56
kmi, на соболь ткнул, а на первую ссылку - нет. Позор мне
0
 Аватар для kmi
55 / 55 / 14
Регистрация: 26.04.2010
Сообщений: 177
13.05.2015, 21:47
Бывает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.05.2015, 21:47
Помогаю со студенческими работами здесь

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

Способ защиты документа от сохранения
Здравствуйте, меня интересует вопрос: можно ли защитить документ от сохранения, но можно было бы его редактировать? История: делаю на...

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

Как и где взять программу для защиты двд видеодиска от копирования. Хоть какой нибудь способ?
Собираюсь продавать диски. Мой собственный продукт.

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru