Стоит ли мне беспокоиться об обфускации кода .NET?

Я'уверен, что многие читатели SO использовали Lutz Roeder's .NET reflector для декомпиляции своего .NET кода. Я был поражен, насколько точно наш исходный код может быть реконструирован из наших скомпилированных сборок.

Мне было бы интересно узнать, сколько из вас используют обфускацию, и для каких продуктов?

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

Решение

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

Комментарии (3)

Помните, путаница не шифрование. По моему скромному мнению, если кто-то будет чувствовать стоимость в обратном проектировании Вашего кодекса, они сделают это. That' s верный для управляемого кодекса или собственного кода, запутываемого или нет. Несомненно, путаница удерживает случайного наблюдателя, но Вашему бизнесу на самом деле угрожают такие люди? Каждый.NET метод путаницы I' замеченный ve делает Вашу жизнь как разработчика тяжелее.

Есть услуги, которые предлагают истинное шифрование, такое как SLPS от Microsoft. См. < http://www.microsoft.com/slps/default.aspx>

Комментарии (2)

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

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

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

Комментарии (0)

Никакая новая путаница, но много уловок компилятора с тех пор 1.1

Например, каждый раз, когда Вы используете анонимный тип, Вы получаете IL, который собирает назад с довольно неясным именем. Каждый раз, когда Вы используете урожай, Вы получаете совершенно новый класс, который осуществляет и IEnumerable и IEnumerator (умная оптимизация, нечитабельный кодекс). Каждый раз, когда Вы используете анонимного делегата, Вы получаете новый метод с именем that' s инвалид на каждом.Net языке, который я знаю, но that' s прекрасный в IL.

Комментарии (0)

@Rob Купер

имея некоторые обсуждения с моим менеджер на работе, он сказал его doesn' t запутайте, но делает NGEN на, устанавливают, по-видимому, это должно быть достаточно к остановите Отражатель, продолжающий работать Ваш собрания, но я понятия не имею если это верно и до какой степени, так пожалуйста, don' t берут его в качестве евангелия:)

Этот doesn' t предлагают любой вид защиты от разборки. Сначала я предполагаю, что его довольно возможное извлекает сырые файлы из любого инсталляционного пакета как MSI или файл ТАКСИ.

Но что еще более важно, Ngen работает на машине клиента после того, как собрание было установлено. Ngen просто вынуждает собрание собрать теперь вместо более позднего использования МОНЕТЫ В ПЯТЬ ЦЕНТОВ. Оригинальное собрание остается и не изменено, и это должно остаться, потому что Ngen не мог бы быть в состоянии собрать все собрание.

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

Комментарии (1)

Для меня все просто - если вам нужно защищать интеллектуальную собственность - обфускайте, если нет - не надо.

Это легко сделать с помощью правильных инструментов.

Комментарии (0)

Я думаю, что в какой-то степени мы ВСЕ должны беспокоиться о своем IP :)

Хороший вопрос, но я хотел бы узнать о нем побольше (в настоящее время я не занимаюсь запутыванием).

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

Хороший вопрос :) +1

Комментарии (1)

Мы don' t используют путаницу для " не public" заявления, но мы используем его для общественных доступных заявлений. Запутываемое приложение содержит много очень сложного кодекса, который занял нам непомерное количество времени, чтобы написать и that' s причина, которые позволяют мне думать, что путаница - необходимость - по крайней мере, в этом случае.

Комментарии (0)

Obsfucation ограничен в it' s эффективность, это могло бы держать случайного парня отдельно. Самый эффективный obsfucation делает только самую маленькую сумму кодекса доступной для пользователя. Если Вы можете, заставить Ваш пробег приложения зависеть в большой степени от толстого сервера.

Комментарии (1)

Согласитесь, большинство людей, которые знают, как закодировать даже немного, не должно красть Ваш кодекс!

Комментарии (0)