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

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

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

Ответ 1

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

Шифрование предназначено для того, чтобы люди не попадали в ваши данные.

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

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


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

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

Ответ 4

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