Как я могу защитить свои сборки .NET от декомпиляции? - PullRequest
64 голосов
/ 19 марта 2010

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

Защита от декомпиляции все еще остается сложной задачей. Я все еще ищу быстрый, простой и безопасный способ сделать это. Я не хочу запутывать свой код, поэтому имена моих методов будут a, b, c или около того. Reflector или другие инструменты вообще не должны распознавать мое приложение как сборку .NET. Я уже знаю о некоторых инструментах, но они очень дорогие. Есть ли другой способ защитить мои приложения?

EDIT:

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

Ответы [ 13 ]

0 голосов
/ 27 апреля 2019

Помимо сторонних продуктов, перечисленных здесь, есть еще один: NetLib Encryptionizer. Однако это работает не так, как обфускаторы. Обфускаторы модифицируют саму сборку с помощью встроенного в нее «двигателя» деобфускации. Encryptionizer шифрует библиотеки DLL (управляемые или неуправляемые) на уровне файлов. Таким образом, он не изменяет DLL, кроме как для ее шифрования. «Движок» в данном случае - это драйвер режима ядра, который находится между вашим приложением и операционной системой. (Отказ от ответственности: я из NetLib Security )

0 голосов
/ 20 февраля 2018

Я знаю, что это старая версия, но Themida - самое передовое программное обеспечение для защиты от взлома, которое я когда-либо использовал.
Хотя оно и не бесплатное.

0 голосов
/ 19 июня 2013

Если кто-то должен украсть ваш код, это, вероятно, означает, что ваша бизнес-модель не работает. Что я имею в виду под этим? Например, я покупаю ваш продукт, а затем прошу поддержки. Вы слишком заняты или считаете, что мой запрос недействителен и является пустой тратой времени. Я декодирую ваш продукт, чтобы поддержать мой относительный бизнес. Ваш продукт становится более ценным для меня, и я расставляю приоритеты, чтобы решить бизнес-модель использования вашего продукта. Я перекодирую и переименую ваш продукт, а затем выхожу и делаю деньги, которые вы решили оставить на столе. Есть причины для защиты кода, но, скорее всего, вы смотрите на проблему с неправильной точки зрения. Конечно же. Ты "кодер", а я деловой человек. ;-) Ура!

пс. Я тоже разработчик. то есть "кодер"

...