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



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



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



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



Edit:



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



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



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



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



Edit 2:



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



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



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

774   4  

4 ответов:

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

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

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

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

Dotfuscator Community Edition 3.0 на MSDN

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

EDIT:

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

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

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

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

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

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

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

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

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

но я предлагаю вам попробовать Eziriz .NET Reactor. Это стоит всего 179 $(ЕМНИП лучшее соотношение цена/возможности). Он обеспечивает стандартные методы обфускации, такие как переименование символов, шифрование строк, обфускация потока управления. В качестве хорошего бонуса он создает собственное приложение запуска для вас, которое будет содержать вашу основную сборку и все сторонние ссылки, зашифрованные и загруженные по требованию. Кроме того, он предоставляет некоторые возможности лицензирования.

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

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

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

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

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

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

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

Comments

    Ничего не найдено.