Насколько хороший Общественный Выпуск Dotfuscator? Что такое “достаточно хороший obfuscator”? [закрытый]

Я планирую выпустить одну маленькую, утилиту по низкой цене. Так как это - больше хобби, чем бизнес, я запланировал использовать Общественный Выпуск Dotfuscator, который поставляется с VS2008.

Насколько хороший это?

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

Править:

Я проверил оценку на количестве коммерческого obfuscators, и они стоят много. Действительно ли это стоит того?

Коммерческие версии то, что, намного лучше защищая от инженерного анализа?

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

Это происходит много?

Редактирование 2:

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

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

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

57
задан 15 revs, 2 users 100% 29 March 2010 в 12:37
поделиться

4 ответа

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

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

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

Preemptive Dotfuscator Editions Comparison

Dotfuscator Community Edition 3.0 на MSDN

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

РЕДАКТИРОВАТЬ:

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

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

Попытка остановить компьютерное пиратство обсуждалась до тошноты как здесь (переполнение стека), так и во всем Интернете.

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

Это часто случается?

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

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

49
ответ дан 24 November 2019 в 19:44
поделиться

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

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

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

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

11
ответ дан 24 November 2019 в 19:44
поделиться

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

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

Хорошо иметь следующие функции:

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

Взгляните на наш продукт Crypto Obfuscator , который поддерживает все это.

8
ответ дан 24 November 2019 в 19:44
поделиться

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

5
ответ дан 24 November 2019 в 19:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: