Есть ли хороший способ для шифрования настольного приложения C#

Возможный дубликат:
Защитить код.NET от реверс-инжиниринга?

мы просто разрабатываем приложение с помощью C# winforms, есть ли хороший метод шифрования, чтобы помочь нам предотвратить пиратство? Я видел, что некоторые программы могут нуждаться в аппаратной поддержке для защиты своего программного обеспечения, как это реализовать? Заранее спасибо!

4 ответа

Решение

Хорошо, вы перепутали несколько разных концепций.

Шифрование направлено на то, чтобы не пускать людей в ваши данные.

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

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


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

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

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

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

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

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

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

Вы также можете прочитать это:
Как я могу предотвратить кражу моего кода?
Защита приложения.NET

Я думаю, что вы ищете запутывание?

Защита кода осуществляется обычно через запутывание (ищите Dotfuscator). Лицензионная защита в большинстве случаев лучше обеспечивается сторонними инструментами, такими как FlexLm или Xheo.

Другие вопросы по тегам