Как я могу создать ключ продукта для своего приложения C#?

89
задан Community 23 May 2017 в 12:10
поделиться

10 ответов

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

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

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

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

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

редактирование: Я просто хочу добавить, сделать не, инвестируют слишком много времени в это или думают, что так или иначе Ваша замысловатая схема будет отличаться и будет невскрываема. Это не будет и не может быть, пока люди управляют аппаратными средствами и ОС Ваши прогоны программы на. Разработчики пытались придумать еще более сложные схемы этого, думая, что, если они разрабатывают свою собственную систему для него тогда, она будет известна только им и поэтому 'более безопасная'. Но это действительно - программирование, эквивалентное из попытки создать вечный двигатель.:-)

81
ответ дан frankodwyer 24 November 2019 в 07:19
поделиться

Существуют некоторые инструменты и API, доступный для него. Однако я не думаю, что Вы найдете тот бесплатно;)

существует, например, комплект OLicense: http://www.olicense.de/index.php?lang=en

1
ответ дан Frederik Gheysels 24 November 2019 в 07:19
поделиться

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

существуют простые вещи как, "Выберите простое число и добавьте магическое число к нему"

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

Могло бы также стоить считать ответы на этот вопрос также

1
ответ дан Community 24 November 2019 в 07:19
поделиться

Существует опция Microsoft Software Licensing и Защита Сервисы (SLP) также. После чтения об этом мне действительно жаль, что я не мог использовать его.

мне действительно нравится идея заблокировать части кода на основе лицензии. Горячий материал и самое безопасное для.NET. Интересное чтение, даже если Вы не используете его!

MicrosoftВ® Software Licensing и Защита (SLP) Сервисы являются сервисом активации программного обеспечения, который позволяет независимым поставщикам программного обеспечения (независимые поставщики программного обеспечения) принять гибкие условия лицензирования для своих клиентов. Microsoft SLP Services использует уникальный метод защиты, который помогает охранять Ваше приложение и лицензирование информации, разрешающей Вам добираться для маркетинга быстрее при увеличении потребительского соответствия.

Примечание: Это - единственный способ, которым я выпустил бы продукт с чувствительным кодом (таким как ценный алгоритм).

5
ответ дан Peter Mortensen 24 November 2019 в 07:19
поделиться

Я должен признать, что сделал бы что-то довольно безумное.

  1. Находят узкое место ЦП и извлекают его к файл P/Invokeable DLL.
  2. Как действие сборки сообщения, зашифруйте часть файла DLL с ключом шифрования XOR.
  3. Выбор общедоступная/с закрытым ключом схема, включайте открытый ключ в Расположение файла
  4. DLL так, чтобы, дешифруя ключ продукта и XORing эти две половины вместе привели к ключу шифрования для DLL.
  5. В коде DllMain DLL, отключите защиту (PAGE_EXECUTE_READWRITE) и дешифруйте его с ключом.
  6. Делают LicenseCheck () методом, который делает проверку работоспособности лицензионного ключа и параметров, затем контрольные суммы весь файл DLL, бросая нарушение лицензии на также. О, и сделайте некоторую другую инициализацию здесь.

, Когда они находят и удаляют LicenseCheck, за чем будет следовать забава, когда DLL запустится сегментация, дающая сбой .

6
ответ дан Peter Mortensen 24 November 2019 в 07:19
поделиться

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

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

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

8
ответ дан spender 24 November 2019 в 07:19
поделиться

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

А простая логика ключа продукта могла быть должна запуститься с высказывания, что ключ продукта состоит из четырех 5-разрядных групп, как abcde-fghij-kljmo-pqrst, и затем продолжите определять, что внутренние отношения как f+k+p должны равняться a, означая первые цифры 2, 3 и 4 группы должны составить к a. Это означает, что 8xxxx-2xxxx-4xxxx-2xxxx допустим, 8xxxx-1xxxx-0xxxx-7xxxx - также. Конечно, были бы другие отношения также, включая сложные отношения как, если вторая цифра первой группы нечетна, то последняя цифра последней группы должна быть нечетной также. Таким образом, там были бы генераторы для ключей продуктов, и проверка ключей продуктов просто проверит, соответствует ли это всем правилам.

Шифрование обычно строка информации о лицензии, зашифрованной с помощью закрытого ключа (== снабженный цифровой подписью) и преобразованный в Base64. Открытый ключ распределяется с приложением. Когда строка Base64 прибывает, она проверяется (== дешифрованный) открытым ключом и, если найдено допустимая, продукт активируется.

11
ответ дан Peter Mortensen 24 November 2019 в 07:19
поделиться

Кому Вы доверяете?

я всегда считал эту область слишком очень важной для доверия третьему лицу для управления безопасностью во время выполнения приложения. Как только тот компонент взламывается для одного приложения, он взламывается для всех приложений. Это произошло с Осторожный через пять минут, как только они пошли со сторонним решением для лицензии для 3ds Max несколько лет назад... Хорошие времена!

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

  • Название Лицензии - имя клиента (если таковые имеются) Вы лицензируете. Полезный для руководящего развертывания компании - заставляют их чувствовать себя особенными для имения "персонализированного" имени в информации о лицензии, Вы предоставляете их.
  • Дата истечения лицензии
  • Число пользователей для выполнения в соответствии с той же лицензией. Это предполагает, что у Вас есть способ отследить рабочие экземпляры через сайт в выходе сервера путь
  • Идентификационные коды - чтобы позволить Вам использовать ту же систему лицензирования через несколько функций, и через несколько продуктов. Конечно, если это взламывается для одного продукта, это взламывается для всех.

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

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

И так как это - теперь, вероятно, самый важный код в Вашем приложении/компании, на вершине/вместо путаницы рассматривают помещение дешифровать стандартных программ в собственном файле DLL и просто P/Invoke к нему.

Несколько компаний, на которые я работал, приняли обобщенные подходы для этого с большим успехом. Или возможно продукты не стоило взламывать;)

16
ответ дан Peter Mortensen 24 November 2019 в 07:19
поделиться

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

5
ответ дан 24 November 2019 в 07:19
поделиться

Еще один хороший недорогой инструмент для ключей продукта и активаций - это продукт под названием InstallKey . Взгляните на www.lomacons.com

2
ответ дан 24 November 2019 в 07:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: