.NET обфускации инструменты / стратегии

голоса
146

Мой продукт состоит из нескольких компонентов: ASP.NET, Windows Forms приложения и службы Windows. 95% или около того кода записывается в VB.NET.

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

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

  • Сериализация / Десериализация . В моем текущем решении, я просто говорю инструменту не запутать любые член классапотому что боль не в состоянии загрузить данныекоторые были ранее сериализованы просто слишком большая.
  • Интеграция с процессом сборки
  • Работа с ASP.NET . В прошлом, я нашелэто проблематично изза изменения .dll имен (вы часто одинкаждой странице) - которые обрабатывают не все инструменты хорошо.
Задан 05/08/2008 в 17:20
источник пользователем
На других языках...                            


31 ответов

голоса
49

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

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

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

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

Ответил 07/08/2008 в 19:15
источник пользователем

голоса
39

Я «Knee Deep» в этом сейчас, пытаясь найти хорошее решение. Вот мои впечатления до сих пор.

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

Reactor.Net - Это гораздо более привлекательной цене , и она работала отлично на моем Standalone исполнимыми. Модуль лицензирования было также приятно и спас бы мне кучу усилий. К сожалению, отсутствует ключевая особенность и является возможность исключить материал из запутывания. Это делает невозможным достижение результата мне нужно (Объединение нескольких сборок вместе, запутать некоторые не-Затемнение других).

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

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

Конфузор - открытый исходный проект , который работает достаточно хорошо (спутать госзакупки, так же , как следует из названия). https://confuser.codeplex.com/
(добавленные jgauffin)

Примечание: ConfuserEx , как сообщается , «сломанный» согласно Выпуск # 498 на их GitHub репо.

Ответил 11/05/2009 в 07:04
источник пользователем

голоса
39

Назад с .Net 1.1 запутывания имеет важное значение: декомпиляция код был легким, и вы могли бы перейти от сборки, к IL, на C # код и он скомпилирован снова с очень небольшим усилием.

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

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

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

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

Ответил 12/08/2008 в 13:19
источник пользователем

голоса
21

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


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

Ответил 05/08/2008 в 17:30
источник пользователем

голоса
18

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

Ответил 05/08/2008 в 17:21
источник пользователем

голоса
10

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

Ответил 07/08/2008 в 11:44
источник пользователем

голоса
8

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

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

Ответил 22/08/2008 в 18:41
источник пользователем

голоса
7

Короткий ответ, что вы не можете.

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

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

Ответил 16/07/2009 в 22:45
источник пользователем

голоса
6

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

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

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

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

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

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

Ответил 16/11/2008 в 20:57
источник пользователем

голоса
5

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

  1. Автоматически исключает тип / члены от запутывания, основанных на правилах. Последовательные типы / поля один из них.
  2. Он может быть интегрирован в процесс сборки с использованием MSBuild.
  3. Поддержка проектов ASP.Net.
Ответил 09/10/2009 в 10:42
источник пользователем

голоса
5

За последние два дня я экспериментировал с Dotfuscator Community Edition выдвинутого (бесплатно загрузить после регистрации основной СЕ, который поставляется в комплекте с Visual Studio).

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

Я пытался запутать реальный проект, который VSTO базируется в Excel, с виртуальной интеграции Земли, много вызовов веб-сервиса и контейнера МОК и Лота отражения. Это было невозможно.

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

Ответил 04/02/2009 в 23:40
источник пользователем

голоса
3

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

Ответил 03/09/2013 в 16:26
источник пользователем

голоса
3

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

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

Ответил 04/05/2011 в 10:43
источник пользователем

голоса
3

Вы можете использовать "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

Версия «Professional» продукт стоит денег, но лучше.

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

Ответил 16/07/2009 в 22:47
источник пользователем

голоса
3

У меня не было никаких проблем с Smartassembly.

Ответил 16/09/2008 в 12:12
источник пользователем

голоса
3

Я недавно пытался конвейер от одного свободного обфускатора в другой свободный обфускатор - а именно Dotfuscator CE и новый Вавилонский обфускатор на CodePlex. Подробнее на моем блоге .

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

Ответил 11/09/2008 в 12:53
источник пользователем

голоса
3

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

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

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

Ответил 10/09/2008 в 22:38
источник пользователем

голоса
2

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

Ответил 16/07/2009 в 22:38
источник пользователем

голоса
2

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

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

Ответил 21/08/2008 в 21:31
источник пользователем

голоса
1

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

Ответил 19/12/2013 в 05:24
источник пользователем

голоса
1

Я должен был использовать защиту запутывания / ресурсов в моем последнем rpoject и нашел Crypto Obfuscator как приятный и простой в использовании инструмент. Вопрос сериализация лишь вопрос настройки в этом инструменте.

Ответил 22/04/2011 в 12:18
источник пользователем

голоса
1

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

Ответил 16/07/2009 в 22:38
источник пользователем

голоса
1

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

Ответил 16/07/2009 в 22:31
источник пользователем

голоса
1

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

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

Ответил 04/04/2009 в 12:28
источник пользователем

голоса
0

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

Ответил 01/12/2010 в 05:49
источник пользователем

голоса
0

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

Ответил 04/04/2009 в 11:53
источник пользователем

голоса
0

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

Ответил 03/01/2009 в 19:56
источник пользователем

голоса
-1

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

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

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

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

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

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

Ответил 06/03/2014 в 04:03
источник пользователем

голоса
-1

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

Ответил 04/09/2009 в 04:21
источник пользователем

голоса
-2

Попробуйте воспользоваться этой услугой http://morpher.com/

Я использовал его для одного проекта.

Ответил 27/12/2013 в 11:22
источник пользователем

голоса
-2

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

Ответил 06/09/2013 в 18:27
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more