Насколько хорош Dotfuscator Community Edition? Что такое "достаточно хороший обфускатор"? [закрытый]

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

насколько это хорошо?

Я также мог бы использовать определение "достаточно хороший обфускатор" - какие функции отсутствуют в Dotfuscator Community Edition, чтобы сделать его достаточно хорошим.

Edit:

Я проверил цены на количество коммерческих обфускаторов, и они стоят много. Оно того стоит?

коммерческие версии, которые намного лучше защищают от обратного проектирования?

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

это происходит?

Edit 2:

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

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

какой минимальный набор функций должен иметь обфускатор?

4 ответов


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

кроме того, издание сообщества не делает ничего, чтобы запутать такие вещи, как поток управления в вашем приложение, а также не будет" объединять " код из нескольких сборок в одну сборку. Это функции, которые доступны в" профессиональных " платных версиях.

лучшее сравнение между Community Edition ("бесплатная" версия, которая поставляется с Visual Studio) и "профессиональные", платные издания можно найти, посмотрев на следующие две ссылки:

Упреждающее Сравнение Выпусков Dotfuscator

программы Dotfuscator Сообщество Edition 3.0 на MSDN

ссылка MSDN немного устарела, однако, дает гораздо лучшее объяснение фактических функций, которые доступны в различных выпусках Dotfuscator.

EDIT:

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

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

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

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

это происходит?

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

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


Я думаю, что Dotfuscator Community Edition поставляется с Visual Studio - довольно наивное решение. Он обеспечивает только переименование символов и не запутывает поток управления вообще. И если кто-то решит украл ваш код, его нужно будет только переписать туда все имена, которые довольно легко с небольшим количеством классов.

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

но я предлагаю вам попробовать Eziriz .NET реактор. Он стоит всего $ 179 (AFAIK best price / features ratio). Он предоставляет стандартные методы обфускации, такие как переименование символов, шифрование строк, обфускация потока управления. В качестве хорошего бонуса он создает собственное приложение launcher for you, которое будет содержать вашу основную сборку и все сторонние ссылки, зашифрованные и загруженные по требованию. Кроме того, он предоставляет некоторые возможности лицензирования.

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


как минимум, обфускатор должен иметь:

  1. шифрование строк
  2. символ переименования
  3. обфускация потока управления

хорошо иметь характеристики:

  1. Защита ресурсов
  2. сборка слияния / встраивания
  3. внешний метод вызова скрытие
  4. возможность автоматической подписи запутанных сборок
  5. поддержка спутниковых сборок
  6. "мертвого" кода устранение
  7. сокращение метаданных
  8. анти-декомпилятор (отражатель)
  9. Anti-tamper
  10. Анти-Отладки

взгляните на наши Крипто Обфускатор продукт, который поддерживает все эти.


другой способ обойти обратный инженерный код - это разместить dll, если вы не можете позволить себе обфускаторы, которые добавляют поддержку. И в ваших сборках перед развертыванием скажите компилятору, где их искать, что было старой практикой, чтобы помешать обратному проектированию. Но, как уже было сказано, сосредоточьтесь в основном на разработке отличного продукта и хороших практиках кодирования, тогда вы сможете позволить себе хорошее приложение obfuscator в будущем. Кроме того, постарайтесь не беспокоиться о других взлома кода, потому что большинство хакеров взломать код просто найти способ использовать продукт, не платя за это и не украсть код или учиться для начинающих программистов. Да, я хочу, чтобы JIT поддерживал только c# и vb.net что действительно сократило бы обратное проектирование, но поскольку jit может читать многие из-за того, что .net действительно дружелюбен к языку, это цена. Так что код прочь и заработать немного денег, купить некоторые дополнительные ценные бумаги.