Инструменты / стратегия запутывания .NET [закрыто]

Мой продукт состоит из нескольких компонентов: ASP.NET, Windows Forms App и Windows Service. Примерно 95% кода написано на VB.NET.

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

То, что я знаю, я должен искать до сих пор:

  • Сериализация / Десериализация . В моем текущем решении я просто говорю инструменту не запутывать никакие члены данных класса, потому что боль невозможности загружать данные, которые были ранее сериализованы, просто слишком велика.
  • Интеграция с процессом сборки
  • Работа с ASP.NET . В прошлом я находил это проблематичным из-за изменения имен .dll (у вас часто есть по одному на страницу) - что не все инструменты обрабатывают хорошо.
5.08.2008 16:20:37
Несколько дубликатов: google.com/…
John Rasch 16.07.2009 21:37:49
Michał Ziober 16.07.2009 21:39:28
См. Agile.net .NET Obfuscator для альтернативного решения для запутывания вашего кода. В частности, проверьте его функцию виртуализации кода.
sutton bernard 5.01.2016 13:44:24
Смотрите хороший список обфускаторов от ArmDot до Xenocode здесь на SO: stackoverflow.com/a/60054/1480104
Artem Razin 16.05.2019 15:20:43
30 ОТВЕТОВ
РЕШЕНИЕ

Возвращение к .Net 1.1 было необходимо: запутывание кода было легко, и вы могли перейти от сборки к IL, к коду C # и снова скомпилировать его без особых усилий.

Теперь с .Net 3.5 я совсем не уверен. Попробуйте декомпилировать сборку 3.5; то, что вы получаете, очень далеко от компиляции.

Добавьте оптимизацию от 3.5 (намного лучше, чем 1.1) и то, как анонимные типы, делегаты и т. Д. Обрабатываются с помощью рефлексии (это кошмар для перекомпиляции). Добавьте лямбда-выражения, «магию» компилятора, такую ​​как синтаксис Linq и var, и функции C # 2 yield(что приводит к появлению новых классов с нечитаемыми именами). Ваш декомпилированный код заканчивает длинный путь от компилируемого.

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

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

44
12.08.2008 12:19:13
Совершенно не согласен. Подписание не может заменить запутывание. Подписание направлено на взлом вашего кода. Но если вам, что скрывать свои идеи, алгоритмы и т. Д., Запутывание является единственным способом.
Shrike 10.07.2009 14:54:24
Я не думаю, что подписание может заменить запутывание, это только усложняет взлом. Запутывание не может скрыть вашу идею - если они захотят скопировать то, что они сделают, в любом случае, и запутывание даже не сделает это намного более трудным. В частности, поскольку алгоритмы - это все операторы, запутывание не оказывает на них большого влияния - обычно их проще всего извлечь.
Keith 10.07.2009 15:10:48
Запутывание может не стоить того, если вы говорите о команде, у которой много ресурсов, но затуманивание отлично подходит для защиты от «среднего» разработчика, который ничего не хочет, кроме как использовать Reflector для открытия вашей сборки и сохранения исходного кода. как проект и внесение коррективов. У запутывания есть свое место, и полностью исключать его - неправильное отношение. Это слой защиты.
Vince Panuccio 16.10.2013 06:02:36
Когда вы декомпилируете, источник находится в грязном состоянии, но логически он все равно следует тем же путям. Не существует компилятора «волшебного» вуду. Я знаю, потому что я недавно потерял хранилище и использовал отражатель для восстановления исходного кода. Запутывание - это только боль в «поддержке», если она не является частью вашего процесса сборки. Это добавляет накладных расходов, но все ли мы пишем приложения с интенсивными вычислениями? Нет, это слабый слой защиты для слабого атакующего.
Vince Panuccio 20.10.2013 09:32:20
Какой ужасный ответ. Вы на самом деле пытались декомпилировать в последнее время? Декомпиляторы стали лучше , а не хуже. Отражатель дает почти оригинальное качество, без комментариев, конечно.
BlueRaja - Danny Pflughoeft 21.06.2016 04:53:07

Я использую smartassembly. В основном, вы выбираете dll, и он возвращает его запутанным. Кажется, работает нормально, и у меня до сих пор не было проблем. Очень, очень прост в использовании.

18
5.08.2008 16:21:56
Смарт-сборка совершенно бесполезна. Взломщик помещает ваше приложение в DumbAssembly, и вся «защита» удаляется одним щелчком мыши: woodmann.com/collaborative/tools/index.php/Dumbassembly
Elmue 6.03.2014 03:37:36
На данный момент безопасный просмотр Google помечает сайт Woodmann как небезопасный. Кроме того, на сайте Вудманна есть целая статья о том, что он ранее страдал от заражения вредоносным ПО, поэтому я не хочу переходить на его сайт, когда Google не доверяет ему.
Brian 10.05.2016 20:19:17

Если вы ищете бесплатную версию, вы можете попробовать DotObfuscator Community Edition, который поставляется с Visual Studio или Eazfuscator.NET .


С 29 июня 2012 года Eazfuscator.NET теперь коммерческий. Последняя бесплатная доступная версия 3.3.

23
29.03.2017 04:13:05

Я попробовал почти каждый обфускатор на рынке, и SmartAssembly - лучший на мой взгляд.

10
7.08.2008 10:44:33
Смарт-сборка совершенно бесполезна. Взломщик помещает ваше приложение в DumbAssembly, и вся «защита» удаляется одним щелчком мыши: woodmann.com/collaborative/tools/index.php/Dumbassembly
Elmue 6.03.2014 03:38:35
На данный момент безопасный просмотр Google помечает сайт Woodmann как небезопасный. Кроме того, на сайте Вудманна есть целая статья о том, что он ранее страдал от заражения вредоносным ПО, поэтому я не хочу переходить на его сайт, когда Google не доверяет ему.
Brian 10.05.2016 20:19:38

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

Мы попробовали DotFuscator Pro, SmartAssembly, XenoCode, Salamander и несколько небольших временных приложений, чьи имена избегают меня.

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

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

50
4.05.2009 18:12:46
Браво Иуда! Единственный способ остаться впереди - это разработать новый, лучший код, не цепляясь за код, который вы уже написали. В итоге вы вкладываете время, усилия и, возможно, даже деньги в то, что не имеет значения. Запутывание не стоит.
David Rutten 4.09.2009 03:29:41
Вот почему мне не нравится эта система репутации, у вас есть 19 голосов, и вы не предоставили ответ. Пользователь не спрашивает ваше мнение о запутывании, он хочет узнать больше о методах запутывания.
backslash17 20.09.2009 22:00:43
Я предоставил информацию о своем опыте, используя несколько существующих обфускаторов. И мое мнение вытекает из этого опыта.
Judah Gabriel Himango 21.09.2009 00:07:03
+1 за «Честно говоря, я убежден, что запутывание это большой взлом». Вы не могли бы сказать это лучше, чем это.
Andrei Rînea 21.10.2010 23:09:21
Очень серьезная потребность в защите вашего кода - продажа дорогих специализированных приложений компаниям, которые будут использовать их для внутреннего пользования всего с несколькими пользователями. Соблазн состоит в том, чтобы полностью изменить код, чтобы разрешить внутренний взлом и модификации для своих собственных целей, избежать контрактов на обслуживание или даже взломать пробные версии, чтобы получить полезные вещи, которые им нужны.
Brady Moritz 7.09.2011 19:38:30

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

Наш выбор был Xenocode, и если бы я сегодня сделал этот выбор, я бы предпочел не запутывать код или использовать Dotfuscator.

2
21.08.2008 20:31:40

Я также использую SmartAssembly. Я обнаружил, что Ezrinz .Net Reactor намного лучше для меня в приложениях .net. Он запутывает, поддерживает Mono, объединяет сборки, а также имеет очень хороший модуль лицензирования для создания пробной версии или привязки лицензии к конкретной машине (очень легко внедрить). Цена также очень конкурентоспособна, и когда мне нужна поддержка, они быстро. Eziriz

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

9
22.08.2008 17:41:21
У меня есть несколько друзей, которые клянутся .Net Reactor - хотя и не на сайте продуктов, есть и полезная группа Google для продукта: groups.google.com/group/net-reactor-users?hl=en
Bittercoder 8.10.2008 10:14:02
+1 для Эзириза. У меня были отличные результаты с этим. Это лучшее, что есть сейчас, ИМО.
Druid 21.09.2009 03:55:13
Реактор .NET отстой. Я сменил компьютер, дважды отправил электронное письмо о файле лицензии и не получил ответа. Вы видите, что лицензия .NET Reactor заблокирована аппаратно.
OrElse 5.05.2011 17:23:35
Это нормально. Как вы ожидаете, что они вам верят? Откуда они знают, что вы действительно изменили свой компьютер и не пытаетесь запустить лицензию вашего друга на вашем компьютере? Для этого аппаратный замок! Если бы его можно было использовать на нескольких компьютерах, аппаратная блокировка была бы бесполезна.
Elmue 6.03.2014 03:43:55
(PS. Мы выбрали Reactor в основном на основе этого ответа SO.)
Chris 25.04.2014 07:29:10

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

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

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

3
10.09.2008 21:38:59

Я недавно попытался передать вывод одного бесплатного обфускатора в другой бесплатный обфускатор, а именно Dotfuscator CE и новый обфускатор Babel на CodePlex. Больше подробностей в моем блоге .

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

4
11.09.2008 11:53:35
-1, потому что "ты, черт возьми, я слышал, что ты как обфускатор, поэтому я запустил обфускатор на выходе обфускатора ... хочешь узнать больше? Дай мне страницы". Но я считаю второй абзац очень хорошим предложением.
ANeves 17.06.2014 17:28:37

У меня не было проблем со Smartassembly.

3
16.09.2008 11:12:55

У нас есть многоуровневое приложение с asp.net и интерфейсом winform, который также поддерживает удаленное взаимодействие. У меня не было проблем с использованием какого-либо обфускатора, за исключением типа шифрования, который генерирует загрузчик, который может быть проблематичным во всевозможных неожиданных способах и просто не стоит этого, по моему мнению. На самом деле мой совет был бы больше похож на «Избегайте шифрования обфускаторов типа загрузчика, таких как чума». :)

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

Мы использовали несколько лет в наших коммерческих приложениях и остановились на Spices obfuscator с 9rays.net, потому что цена правильная, она справляется со своей задачей, и они имеют хорошую поддержку, хотя нам уже давно не нужна поддержка, но, честно говоря, Я не думаю, что действительно важно, какой обфускатор вы используете, проблемы и кривая обучения одинаковы, если вы хотите, чтобы он работал правильно с remoting и asp.net.

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

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

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

6
16.11.2008 19:57:28

Возможно, вы также захотите взглянуть на новые технологии защиты кода, такие как Metaforic и ViLabs, и новые технологии защиты программного обеспечения от копирования, такие как ByteShield . Раскрытие информации: я работаю на ByteShield.

0
3.01.2009 18:56:59

В течение последних двух дней я экспериментировал с расширенной версией Dotfuscator Community Edition (бесплатная загрузка после регистрации базового CE, поставляемого в комплекте с Visual Studio).

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

Я пытался запутать реальный проект, основанный на VSTO в Excel, с интеграцией с Virtual Earth, множеством вызовов веб-сервисов, контейнером IOC и множеством размышлений. Это было невозможно

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

5
4.02.2009 22:40:14

Я также использую smartassembly. Однако я не знаю, как это работает для веб-приложения. Однако я хотел бы отметить, что если ваше приложение использует условно-бесплатную защиту типов, убедитесь, что оно не проверяет лицензию с логическим возвратом. слишком легко взломать байт. http://blogs.compdj.com/post/Binary-hack-a-NET-executable.aspx

0
4.04.2009 10:53:56

Мы используем SmartAssembly в нашем клиенте Windows. Работает просто отлично.

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

1
4.04.2009 11:28:07

Сейчас я в этом «колено глубоко», пытаясь найти хорошее решение. Вот мои впечатления пока.

Xenocode - у меня есть старая лицензия на Xenocode2005, которую я использовал для обфусцирования своих сборок .net 2.0. Он хорошо работал на XP и был приличным решением. Мой текущий проект - .net 3.5, и я нахожусь на Vista, поддержка сказала мне, чтобы я попробовал, но версия 2005 года даже не работает на Vista (сбои), поэтому я и сейчас должен купить 'PostBuild2008' по невероятной цене 1900 долларов. Это может быть хорошим инструментом, но я не собираюсь это выяснять. Слишком дорого.

Reactor.Net - Это гораздо более привлекательная цена, и она отлично работала на моем автономном исполняемом файле. Модуль «Лицензирование» тоже был приятным и сэкономил бы мне кучу усилий. К сожалению, в нем отсутствует ключевая функция, и это возможность исключить вещи из обфускации. Это делает невозможным достижение нужного мне результата (объединяйте несколько сборок вместе, запутывайте одни, не запутывайте другие).

SmartAssembly - я скачал Eval для этого, и он работал безупречно. Я смог достичь всего, чего хотел, и интерфейс был первым классом. Ценовой пункт все еще немного здоровен.

Dotfuscator Pro - Не удалось найти цену на веб-сайте. В настоящее время в обсуждениях, чтобы получить цитату. Звучит зловеще.

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

Примечание: ConfuserEx, как сообщается, "сломан" в соответствии с проблемой № 498 в репозитории GitHub.

43
20.01.2020 15:11:28
можете ли вы опубликовать, сколько цитата dotfuscator?
Anthony Johnston 20.10.2010 22:02:08
@Anthony Недавно я купил лицензию в начале 2011 года. Стоимость минимальной 1 машины сборки + 1 лицензия разработчика составляла 2475 долларов США. Включает 12 месяцев обновлений и поддержки.
Yoshi 13.04.2011 23:16:44
Когда я писал этот пост, я не использовал .NET Reactor, но теперь вы можете исключить части своего кода из обфускации, используя атрибут System.Reflection.Obfuscation. Есть также некоторые настройки, которые позволяют вам делать такие вещи, как исключение всех методов или всех сериализуемых типов.
benteight 5.05.2011 16:53:20
DotFuscator указал мне 4999 долларов, которые были снижены до 4500 долларов из-за 10% скидки. Это было для лицензий 1 dev! В дискуссиях он был снижен до 2500 долларов, но все еще слишком дорог.
Oliver 29.11.2012 05:23:55
В .NET Reactor появился редактор правил исключения, позволяющий исключить определенные классы, методы или свойства из обфускации. Кроме того, вы можете использовать флажок «Только слияние», чтобы исключить конкретную DLL из обфускации
avitenberg 4.04.2016 16:14:18

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

1
16.07.2009 21:31:20

Вот документ от самих Microsoft. Надеюсь, это поможет ... это с 2003 года, но все еще может быть актуальным.

2
16.07.2009 21:38:16

бесплатный способ - использовать dotfuscator из Visual Studio, в противном случае вам придется пойти и купить обфускатор, такой как Postbuild ( http://www.xenocode.com/Landing/Obfuscation.aspx ).

1
16.07.2009 21:38:38
я не уверен, что понимаю здесь отрицательный голос, почему бы не дать объяснение?
Russ Bradberry 16.07.2009 21:45:27

Короткий ответ: ты не можешь.

Существуют различные инструменты, которые затруднят чтение вашего кода, некоторые из которых были указаны в других ответах.

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

7
16.07.2009 21:45:02
if (усилия. Требуется> codeFromScratch.Costs) DoNoReverseEngineer ();
Nicolas Dorier 30.10.2009 11:10:08
@NicolasDorier,Operator '>' cannot be applied to operands of type 'System.TimeSpan' and 'decimal'
Saeb Amini 21.11.2012 17:23:37
@Saeb уверен, что может, приведение от TimeSpan к деньгам (десятичным) - это то, чем занимается большинство компаний.
hultqvist 8.09.2014 08:15:38

Вы можете использовать «Dotfuscator Community Edition» - он поставляется по умолчанию в Visual Studio 2008 Professional. Вы можете прочитать об этом по адресу:

http://msdn.microsoft.com/en-us/library/ms227240%28VS.80%29.aspx
http://www.preemptive.com/dotfuscator.html

«Профессиональная» версия продукта стоит денег, но лучше.

Вы действительно хотите, чтобы ваш код был запутан? Как правило, при декомпиляции приложения происходит очень мало ошибок, если только оно не используется в целях безопасности. Если вы беспокоитесь о том, что люди «украдут» ваш код, не беспокойтесь; Подавляющее большинство людей смотрит на ваш код для изучения. В любом случае, для .NET нет абсолютно эффективной стратегии запутывания - кто-то, у кого достаточно навыков, всегда сможет декомпилировать / изменить ваше приложение.

3
28.08.2009 15:34:17
+1 за это. Я испробовал практически все бесплатные .NET-обфускаторы, и Dotfuscator был единственным, который фактически запутывал значительную часть MSIL в моих приложениях ASP.NET.
saille 19.01.2010 03:36:38
@Saille, ты использовал для этого бесплатный Dotfuscator - Community Edition? Я только что поговорил о продажах, и они говорят, что про издание стоит 2000 евро :(
Houman 3.08.2011 10:11:12
Дотфускатор ничего не стоит.
user626528 12.01.2014 05:21:52

Я попробовал демо-версию Eziriz .... Мне понравилось. Но никогда не приносил программное обеспечение.

-1
4.09.2009 03:21:58
как это может быть ответом вики от сообщества?
ΦXocę 웃 Пepeúpa ツ 7.02.2019 12:49:50

Crypto Obfuscator решить все ваши проблемы и сценарии. Это :

  1. Автоматически исключает типы / элементы из запутывания на основе правил. Сериализованные типы / поля являются одним из них.
  2. Его можно интегрировать в процесс сборки с помощью MSBUild.
  3. Поддерживает проекты ASP.Net.
5
9.10.2009 09:42:26
fyi @logicnp написал Crypto.
CAD bloke 30.09.2016 05:26:44
Крипто больше не поддерживается.
Carl 25.11.2016 12:13:13
Я пробовал несколько, «Крипто» показалось очень агрессивным и полезным, но при запуске запутанной DLL в De4dot я получил оригинальный код ... Извините, что испортил вечеринку ....
Dave Gahan 5.02.2018 06:39:08

SmartAssembly отлично, меня использовали в большинстве моих проектов

0
1.12.2010 04:49:21

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

1
28.06.2012 04:57:38
@logicnp, это ваш второй пост в этой теме, посвященный этому продукту. Пожалуйста, сообщите, если у вас есть отношения с разработчиком этого продукта.
H2ONaCl 30.01.2015 05:53:17
Извините, но de4dot может это отменить. Я бы порекомендовал использовать ConfuserEx .
newbieguy 26.08.2015 12:40:24

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

Между реактором и ксенокодом есть два основных различия. Во-первых, Xenocode действительно работает. Во-вторых, скорость выполнения ваших сборок ничем не отличается. С реактором было примерно в 6 миллионов раз медленнее. У меня также сложилось впечатление, что реактор был одним человеком.

3
4.05.2011 09:43:43
.NET Reactor имеет много вариантов. Некоторые из них включают защиту во время выполнения и немного замедляют работу приложения, но это цена дополнительной безопасности, которую вы получаете. Однако я серьезно сомневаюсь, будет ли какое-либо замедление, если вы просто будете использовать .NET Reactor обфускацию, без каких-либо других опций
avitenberg 4.04.2016 16:17:30

Я обнаружил, что Agile.Net обеспечивает довольно хорошую защиту для вашей сборки .Net, потому что она предлагает не только запутывание, но и шифрование. Загрузите бесплатный след.
http://secureteam.net/NET-Code-Protection.aspx http://secureteam.net/downloads.aspx

3
3.09.2013 15:26:53
Eazfuscator сказал, почему нет подписи MSIL: см. Gapotchenko.com/eazfuscator.net/kb/100028
QMaster 3.01.2015 23:28:47

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

-2
6.09.2013 17:27:45

Есть хорошая версия с открытым исходным кодом под названием Obfuscar. Кажется, работает нормально. Типы, свойства, поля, методы могут быть исключены. Оригинал здесь: https://code.google.com/p/obfuscar/ , но, похоже, он больше не обновляется.

1
20.01.2020 15:14:01
Я посмотрел на это сегодня - обратите внимание на дату моего комментария! - и это немного грязно, чтобы начать. Я также потерял большую часть часа, пытаясь заставить его заново подписать сборку, используя файл .pfx. Это бросило неразборчивую, недокументированную ошибку; кажется, вы можете подписать только с помощью .snk.
SteveCinq 7.07.2018 21:55:12

Запутывание не настоящая защита.

Если у вас есть файл .NET Exe, то есть FAR лучшее решение.

Я использую Themida и могу сказать, что это работает очень хорошо.

Единственным недостатком Themida является то, что он не может защитить .NET Dlls. (Он также защищает код C ++ в Exe и DLL)

Themida намного дешевле, чем упомянутые здесь обфускаторы, и является лучшим средством защиты от пиратства на рынке. Он создает виртуальную машину, в которой выполняются критические части вашего кода, и запускает несколько потоков, которые обнаруживают манипуляции или точки останова, установленные взломщиком. Он преобразует .NET Exe в нечто, что Reflector даже не распознает как сборку .NET.

Пожалуйста, прочитайте подробное описание на их сайте: http://www.oreans.com/themida_features.php

-1
6.03.2014 03:47:11