Инструменты/стратегия запутывания .NET
Мой продукт состоит из нескольких компонентов: ASP.NET, приложения 9X_.net-framework Windows Forms и службы Windows. Примерно 9X_dot-net 95% кода написано на VB.NET.
По соображениям 9X_vulnerabilities интеллектуальной собственности мне необходимо 9X_cybersecurity запутать код, и до сих пор я использовал 9X_obfuscation версию dotfuscator, которой уже более 5 9X_web-security лет. Думаю пора переходить на инструмент 9X_web-security нового поколения. Я ищу список требований, которые 9X_vulnerabilities я должен учитывать при поиске нового обфускатора.
Что 9X_dot-net я знаю, что я должен искать на данный момент:
- Сериализация/Десериализация. В моем текущем решении я просто говорю инструменту не запутывать любые члены данных класса, потому что боль от невозможности загрузить данные, которые ранее были сериализованы, просто слишком велика.
- Интеграция с процессом сборки
- Работа с ASP.NET. В прошлом я обнаружил, что это проблематично из-за изменения имен .dll (у вас часто есть по одному на страницу), с чем не все инструменты справляются хорошо.
Ответ #1
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Мы испробовали несколько обфускаторов. Ни 9X_dot-net один из них не работает с большим клиент-серверным 9X_dot-net приложением, использующим удаленное взаимодействие. Проблема 9X_secure в том, что клиент и сервер совместно используют 9X_security некоторые dll, и мы не нашли ни одного обфускатора, который 9X_.net мог бы это обработать.
Мы пробовали DotFuscator 9X_web-security Pro, SmartAssembly, XenoCode, Salamander 9X_vulnerability и несколько небольших приложений, названия 9X_vulnerabilities которых ускользнули от меня.
Честно говоря, я убежден, что запутывание — это большой хак.
Даже проблемы, которые 9X_obfuscation он решает, не совсем реальная проблема. Единственное, что 9X_cybersecurity вам действительно нужно защищать, — это 9X_dot-net строки подключения, коды активации и тому 9X_secure подобное. Вся эта чепуха о том, что другая 9X_.net компания собирается реконструировать всю 9X_dot-net вашу кодовую базу и создать из нее конкурирующий 9X_vulnerability продукт, — это нечто из кошмара параноидального 9X_security менеджера, а не реальность.
- Я предоставил информацию о своем опыте использования нескольких существующих обфускаторов. И мое мнение основано на э ...
Ответ #2
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Я сейчас по колено в этом, пытаюсь найти 9X_.net-framework хорошее решение. Вот мои впечатления на 9X_web-security данный момент.
Xenocode. У меня есть старая лицензия 9X_web-security на Xenocode2005, которую я использовал для 9X_cybersecurity обфускации моих сборок .net 2.0. Он отлично 9X_secure работал на XP и был достойным решением. Мой 9X_vulnerabilities текущий проект - .net 3.5, и я использую 9X_dot-net Vista, служба поддержки посоветовала мне 9X_web-security попробовать, но версия 2005 года даже не 9X_web-security работает в Vista (вылетает), поэтому теперь 9X_dotnet я должен купить PostBuild2008 по невероятной 9X_web-security цене. 1900 долларов. Это может быть хороший 9X_cybersecurity инструмент, но я не собираюсь выяснять. Слишком 9X_.net дорого.
Reactor.Net - это гораздо более привлекательная 9X_obfuscation цена, и он отлично работал с моим автономным 9X_dotnet исполняемым файлом. Модуль лицензирования 9X_.net-framework тоже был хорош и сэкономил бы мне кучу усилий. К 9X_.net-framework сожалению, в нем отсутствует ключевая функция, а 9X_.net-framework именно возможность исключать данные из обфускации. Это 9X_obfuscation делает невозможным достижение нужного мне 9X_security результата (объединить несколько сборок 9X_.net вместе, затемнить некоторые, не затемнить 9X_.net-framework другие).
SmartAssembly. Я скачал Eval для этого, и он 9X_dotnet работал безупречно. Я смог добиться всего, чего 9X_cybersecurity хотел, и интерфейс был первоклассным. Цена 9X_dot-net по-прежнему высока.
Dotfuscator Pro - не удалось найти цену 9X_.net на веб-сайте. В настоящее время ведутся 9X_obfuscation переговоры о получении цитаты. Звучит зловеще.
Confuser - проект 9X_.net с открытым исходным кодом, который работает 9X_security довольно хорошо (чтобы запутать людей, как 9X_web-security следует из названия).
Примечание. Согласно 9X_obfuscation Issue #498 в репозитории GitHub, ConfuserEx "сломан".
- Я не использовал .NET Reactor, когда был написан этот пост, но теперь вы можете исключить части ваш ...
Ответ #3
Ответ на вопрос: Инструменты/стратегия запутывания .NET
В .Net 1.1 обфускация была очень важна: декомпиляция 9X_secure кода была простой, и вы могли перейти от 9X_cybersecurity ассемблера к IL, к коду C# и снова скомпилировать 9X_vulnerabilities его с минимальными усилиями.
Теперь с .Net 9X_.net 3.5 я совсем не уверен. Попробуйте декомпилировать 9X_vulnerability сборку 3.5; то, что вы получаете, очень 9X_security далеко от компиляции.
Добавьте оптимизации 9X_secure из 3.5 (намного лучше, чем 1.1) и то, как 9X_dot-net анонимные типы, делегаты и т. д. обрабатываются 9X_.net-framework отражением (это кошмар для перекомпиляции). Добавьте 9X_vulnerability лямбда-выражения, «магию» компилятора, такую 9X_dot-net как Linq-синтаксис и var
, и функции C#2, такие 9X_dotnet как yield
(что приводит к новым классам с нечитаемыми 9X_.net именами). Ваш декомпилированный код оказывается 9X_dot-net далеко не компилируемым.
Профессиональная 9X_web-security команда, располагающая большим количеством 9X_obfuscation времени, все еще может выполнить обратный 9X_vulnerabilities инжиниринг, но то же самое можно сказать 9X_.net и о любом обфусцированном коде. Код, который 9X_obfuscation они получили из этого, будет неподдерживаемым 9X_cybersecurity и, скорее всего, будет очень глючным.
Я бы 9X_security порекомендовал подписывать ваши сборки ключом 9X_obfuscation (это означает, что если хакеры могут перекомпилировать 9X_.net-framework одну, они должны перекомпилировать все), но 9X_vulnerabilities я не думаю, что обфускация того стоит.
- Какой ужасный ответ. Вы действительно пробовали декомпилировать в последнее время? Декомпиляторы стали лучше, а н ...
Ответ #4
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Если вы ищете бесплатную версию, вы можете 9X_.net попробовать DotObfuscator Community Edition, которая 9X_vulnerability поставляется с Visual Studio или Eazfuscator.NET.
Since June 29, 2012, Eazfuscator.NET 9X_vulnerabilities стал коммерческим. Последняя бесплатная 9X_.net доступная версия — 3.3.
Ответ #5
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Я использую smartassembly. По сути, вы выбираете 9X_obfuscation dll, и она возвращает ее запутанной. Кажется, он 9X_vulnerability работает нормально, и до сих пор у меня 9X_web-security не было проблем. Очень, очень прост в использовании.
- Smartassembly совершенно бесполезен. Взломщик помещает ваше приложение в DumbAssembly, и вся "защита" удаляется щелчком мыши: http://www.woodmann.com/ ...
Ответ #6
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Я пробовал почти все обфускаторы на рынке 9X_secure и SmartAssembly, на мой взгляд, лучший.
- На данный момент безопасный просмотр в Google помечает сайт woodmann как небезопасный. Кроме того, на сайте Вудмана есть целая статья о том, что он ранее страдал от заражения вредоносным ПО, поэтому я действительно не хочу перемещаться по ...
Ответ #7
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Я также использую SmartAssembly. Я обнаружил, что 9X_.net-framework Ezrinz .Net Reactor намного лучше подходит 9X_web-security для приложений .net. Он запутывает, поддерживает 9X_dot-net Mono, объединяет сборки, а также имеет очень 9X_secure хороший модуль лицензирования для создания 9X_dot-net пробной версии или привязки лицензии к конкретной 9X_dot-net машине (очень легко реализовать). Цена также 9X_obfuscation очень конкурентоспособна, и когда мне нужна 9X_vulnerability была поддержка, они были быстрыми. Eziriz
Для ясности, я 9X_vulnerabilities просто клиент, которому нравится продукт 9X_vulnerabilities и никак не связанный с компанией.
- +1 для Эзириза. У меня были отличн ...
Ответ #8
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Короткий ответ: вы не можете.
Существуют 9X_dotnet различные инструменты, которые затруднят 9X_dot-net чтение вашего кода - некоторые из них были 9X_obfuscation указаны в других ответах.
Однако все это 9X_.net усложняет чтение - они увеличивают количество 9X_web-security требуемых усилий, вот и все. Часто этого 9X_web-security бывает достаточно, чтобы отпугнуть случайных 9X_.net-framework читателей, но тот, кто полон решимости покопаться 9X_cybersecurity в вашем коде, всегда сможет это сделать.
- если (усилия. Требуется> codeFromScratch.Costs) DoNoReverseEngineer();<p><spa ...
Ответ #9
Ответ на вопрос: Инструменты/стратегия запутывания .NET
У нас есть многоуровневое приложение с интерфейсом 9X_vulnerabilities asp.net и winform, которое также поддерживает 9X_obfuscation удаленное взаимодействие. У меня не было 9X_vulnerabilities проблем с использованием какого-либо обфускатора, за 9X_web-security исключением типа шифрования, который генерирует 9X_.net-framework загрузчик, который может быть проблематичным 9X_web-security во всевозможных неожиданных отношениях и, на 9X_obfuscation мой взгляд, просто не стоит того. На самом 9X_vulnerabilities деле мой совет был бы больше похож на «Избегайте 9X_web-security шифрования обфускаторов типа загрузчика, таких 9X_.net как чума». :)
По моему опыту, любой обфускатор 9X_.net будет отлично работать с любым аспектом 9X_security .net, включая asp.net и удаленное взаимодействие, вам 9X_.net просто нужно познакомиться с настройками 9X_vulnerability и узнать, как далеко вы можете продвинуть 9X_web-security его в каких областях вашего кода. И найдите 9X_dotnet время, чтобы попытаться провести обратный 9X_.net инжиниринг того, что вы получаете, и посмотреть, как 9X_security это работает с различными настройками.
Мы 9X_.net-framework использовали несколько в течение многих 9X_dot-net лет в наших коммерческих приложениях и остановились 9X_.net-framework на обфускаторе Spices от 9rays.net, потому 9X_cybersecurity что цена подходящая, он выполняет свою работу 9X_web-security и у них есть хорошая поддержка, хотя мы 9X_dotnet действительно не нуждались в поддержке в 9X_.net-framework течение многих лет, но честно говоря, я 9X_.net не думаю, что действительно имеет значение, какой 9X_vulnerability обфускатор вы используете, проблемы и кривая 9X_.net-framework обучения одинаковы, если вы хотите, чтобы 9X_vulnerabilities он работал правильно с удаленным взаимодействием 9X_obfuscation и asp.net.
Как уже упоминали другие, все, что 9X_vulnerabilities вы на самом деле делаете, - это что-то вроде 9X_vulnerability висячего замка, не позволяя в остальном 9X_vulnerability честных людей и / или затрудняя простую 9X_.net перекомпиляцию приложения.
Лицензирование 9X_web-security обычно является ключевой областью для большинства 9X_cybersecurity людей, и вам определенно следует использовать 9X_secure какую-то систему сертификатов с цифровой 9X_obfuscation подписью для лицензирования. Ваша самая 9X_secure большая потеря будет из-за случайного обмена 9X_.net-framework лицензиями, если у вас нет умной системы, люди, которые 9X_.net-framework нарушают систему лицензирования, никогда 9X_dot-net не собирались покупать.
Очень легко зайти 9X_secure слишком далеко и оказать негативное влияние 9X_obfuscation на ваших клиентов и ваш бизнес. Делайте 9X_.net-framework то, что просто и разумно, и не беспокойтесь 9X_vulnerability об этом.
Ответ #10
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Crypto Obfuscator решит все ваши проблемы и сценарии. Это:
- Автоматически исключает типы / члены из обфускации на основе правил. Сериализованные типы / поля - одно из них.
- Его можно интегрировать в процесс сборки с помощью MSBUild.
- Поддерживает проекты ASP.Net.
9X_vulnerability
- fyi @logicnp напи ...
Ответ #11
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Последние два дня я экспериментировал с 9X_web-security расширенной версией Dotfuscator Community 9X_obfuscation Edition (ее можно бесплатно загрузить после 9X_.net регистрации базовой версии CE, которая поставляется 9X_.net-framework вместе с Visual Studio).
Я думаю, что причина 9X_.net-framework того, что все больше людей не используют 9X_security обфускацию по умолчанию, заключается в том, что 9X_vulnerability это серьезная проблема по сравнению с риском. В 9X_cybersecurity небольших тестовых проектах мне удавалось 9X_.net-framework запустить запутанный код с большими усилиями. Развертывание 9X_cybersecurity простого проекта через ClickOnce было хлопотным, но 9X_vulnerability достижимым после подписания манифестов вручную 9X_security с помощью mage. Единственная проблема заключалась 9X_.net-framework в том, что при ошибке трассировка стека 9X_.net возвращалась запутанной, и CE не имеет упакованного 9X_.net деобфускатора или осветлителя.
Я попытался 9X_cybersecurity запутать реальный проект, основанный на 9X_.net-framework VSTO в Excel, с интеграцией Virtual Earth, множеством 9X_.net вызовов веб-сервисов, контейнером IOC и 9X_obfuscation множеством размышлений. Это было невозможно.
Если 9X_.net обфускация действительно является критическим 9X_.net-framework требованием, вы должны проектировать свое 9X_security приложение с учетом этого с самого начала, тестируя 9X_vulnerabilities запутанные сборки по мере продвижения. В 9X_web-security противном случае, если это довольно сложный 9X_dotnet проект, вы столкнетесь с серьезной болью.
Ответ #12
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Недавно я попытался направить вывод одного 9X_.net бесплатного обфускатора в другой бесплатный 9X_cybersecurity обфускатор, а именно Dotfuscator CE и новый 9X_.net обфускатор Babel на CodePlex. Подробнее 9X_dotnet on my blog.
Что касается сериализации, я перенес этот 9X_cybersecurity код в другую DLL и включил ее в проект. Я 9X_vulnerabilities рассудил, что в любом случае там нет секретов, которых 9X_cybersecurity нет в XML, поэтому запутывание не требуется. Если 9X_.net-framework в этих классах есть какой-либо серьезный 9X_web-security код, использование разделяемых классов в 9X_cybersecurity основной сборке должно охватывать его.
Ответ #13
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Вы должны использовать все самое дешевое 9X_dotnet и наиболее известное для вашей платформы 9X_dotnet и закругляться на этом. Обфускация языков 9X_dotnet высокого уровня — сложная проблема, потому 9X_obfuscation что потоки кодов операций VM не страдают 9X_vulnerabilities от двух самых больших проблем, присущих 9X_.net потокам нативных кодов операций: идентификации 9X_obfuscation функций/методов и псевдонимов регистров.
Что 9X_vulnerabilities вы должны знать об реверсировании байт-кода, так 9X_web-security это то, что тестировщики безопасности уже 9X_obfuscation стали стандартной практикой просматривать 9X_.net-framework чистый код X86 и находить в нем уязвимости. В 9X_secure необработанном X86 вы не обязательно можете 9X_security даже найти допустимые функции, не говоря 9X_dot-net уже о том, чтобы отслеживать локальную переменную 9X_secure во время вызова функции. Практически ни 9X_obfuscation при каких обстоятельствах реверсоры исходного 9X_secure кода не имеют доступа к именам функций и 9X_cybersecurity переменных, если только они не просматривают 9X_secure код Microsoft, для чего MSFT услужливо предоставляет 9X_web-security эту информацию общественности.
"Dotfuscation" работает 9X_secure главным образом путем скремблирования имен 9X_dotnet функций и переменных. Вероятно, лучше сделать 9X_vulnerabilities это, чем публиковать код с информацией об 9X_security уровне отладки, где Reflector буквально 9X_.net отказывается от вашего исходного кода. Но 9X_dot-net все, что вы делаете сверх этого, скорее 9X_dot-net всего, приведет к убывающей отдаче.
Ответ #14
Ответ на вопрос: Инструменты/стратегия запутывания .NET
У меня не было проблем со Smartassembly.
9X_dotnet
Ответ #15
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Вы можете использовать «Dotfuscator Community 9X_vulnerabilities Edition» - он по умолчанию входит в Visual 9X_security Studio 2008 Professional. Вы можете прочитать 9X_obfuscation об этом здесь:
http://msdn.microsoft.com/en-us/library/ms227240%28VS.80%29.aspx
http://www.preemptive.com/dotfuscator.html
"Профессиональная" версия 9X_dot-net продукта стоит денег, но лучше.
Вам действительно 9X_secure нужно обфусцировать код? Обычно в декомпилированном 9X_security приложении нет ничего плохого, если только 9X_vulnerability оно не используется в целях безопасности. Если 9X_security вы беспокоитесь о том, что люди «украдут» ваш 9X_obfuscation код, не беспокойтесь; подавляющее большинство 9X_secure людей будут смотреть на ваш код с целью 9X_web-security обучения. В любом случае, для .NET не существует 9X_dotnet полностью эффективной стратегии обфускации 9X_vulnerability - кто-то с достаточными навыками всегда 9X_.net сможет декомпилировать / изменить ваше приложение.
Ответ #16
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Избегайте реактора. Это совершенно бесполезно 9X_vulnerability (и да, я заплатил за лицензию). Xenocode 9X_dotnet был лучшим из тех, с которыми я столкнулся, и 9X_web-security для которого я тоже купил лицензию. Поддержка 9X_dot-net была очень хорошей, но она мне не нужна, просто 9X_web-security работала. Я протестировал все обфускаторы, которые 9X_web-security смог найти, и пришел к выводу, что xenocode, несомненно, был 9X_web-security самым надежным и выполнял лучшую работу 9X_dotnet (а также возможность отправить процесс вашего 9X_obfuscation .NET exe в собственный exe, который я больше 9X_vulnerabilities нигде не видел).
Между реактором и ксенокодом 9X_dotnet есть два основных различия. Во-первых, Xenocode 9X_.net действительно работает. Во-вторых, скорость 9X_vulnerability выполнения ваших сборок ничем не отличается. С 9X_cybersecurity реактором это было примерно в 6 миллионов 9X_obfuscation раз медленнее. У меня также сложилось впечатление, что 9X_web-security на реакторе работал один человек.
Ответ #17
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Я обнаружил, что Agile.Net обеспечивает 9X_security довольно хорошую защиту для вашей сборки 9X_.net .Net, поскольку предлагает не только обфускацию, но 9X_vulnerabilities и шифрование. Загрузите бесплатный маршрут.
http://secureteam.net/NET-Code-Protection.aspx
http://secureteam.net/downloads.aspx
- Eazfuscator сказал, почему не использовать кодировку MSIL ...
Ответ #18
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Я запутывал код в одном и том же приложении, начиная 9X_web-security с .Net 1, и это было большой головной болью 9X_.net-framework с точки зрения обслуживания. Как вы упомянули, проблемы 9X_obfuscation сериализации можно избежать, но очень легко 9X_dot-net сделать ошибку и запутать то, что вы не 9X_secure хотели запутывать. Легко сломать сборку 9X_secure или изменить шаблон обфускации и не иметь 9X_secure возможности открывать старые файлы. Кроме 9X_web-security того, может быть трудно выяснить, что пошло 9X_security не так и где.
Мы выбрали Xenocode, и если 9X_vulnerabilities бы я снова сделал выбор сегодня, я бы предпочел 9X_dot-net не запутывать код или использовать Dotfuscator.
Ответ #19
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Here's a document from Microsoft themselves. Надеюсь, что это поможет ... это с 2003 9X_obfuscation года, но, возможно, все еще актуально.
Ответ #20
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Мы используем SmartAssembly в нашем клиенте 9X_obfuscation Windows. Прекрасно работает.
Есть и дополнительные 9X_.net-framework проблемы. Распечатка имен ваших классов 9X_web-security в файлах журнала / исключениях должна быть 9X_obfuscation деобфусцирована. И, конечно, не может создать 9X_dotnet класс по его имени. Так что неплохо было 9X_.net бы взглянуть на своего клиента и посмотреть, какие 9X_obfuscation проблемы можно решить, запутав его.
Ответ #21
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Все зависит от языка программирования, который 9X_web-security вы используете. Прочтите статью: Obfuscated code
Ответ #22
Ответ на вопрос: Инструменты/стратегия запутывания .NET
бесплатный способ - использовать dotfuscator 9X_secure из Visual Studio, иначе вам придется пойти 9X_dotnet и купить обфускатор, например Postbuild 9X_.net (http://www.xenocode.com/Landing/Obfuscation.aspx)
Ответ #23
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Мне пришлось использовать защиту от обфускации 9X_vulnerabilities / ресурсов в моем последнем rpoject, и я 9X_cybersecurity нашел Crypto Obfuscator хорошим и простым в использовании 9X_dot-net инструментом. Проблема сериализации - это 9X_vulnerabilities только вопрос настроек этого инструмента.
Ответ #24
Ответ на вопрос: Инструменты/стратегия запутывания .NET
Есть хорошая версия с открытым исходным 9X_vulnerability кодом под названием Obfuscar. Вроде нормально 9X_vulnerability работает. Типы, свойства, поля, методы могут 9X_.net-framework быть исключены. Оригинал находится здесь: https://code.google.com/p/obfuscar/, но 9X_cybersecurity поскольку он, кажется, больше не обновляется
-
9
-
12
-
5
-
4
-
4
-
35
-
2
-
3
-
4
-
15
-
14
-
7
-
24
-
9
-
29
-
7
-
19
-
8
-
7
-
4
-
16
-
7
-
9
-
10
-
5
-
5
-
7
-
4
-
4
-
6
-
24
-
11
-
2
-
7
-
2
-
6
-
4
-
3
-
4
-
4
-
2
-
4
-
5
-
1
-
1
-
9
-
2
-
5
-
4
-
2