Могу ли я запутать скомпилированный исполняемый файл / сборку .NET?

Поэтому я пытаюсь запутать свою программу ПОСЛЕ того, как она была скомпилирована. Я почти уверен, что ты это делаешь (?)

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

So if I go:

Eazfuscator.NET MyProgram.exe

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

Еще я попытался вместо этого запутать одну из библиотек DLL, которые использует моя программа:

EazFuscator.NET SomeDLLMyProgramUses.dll

он успешно запутает его, но опять же, когда я запускаю свою программу, вылетает ...

Во-первых, мне интересно, независимо от этой программы EazFuscator, можно ли запутать файлы .DLL и .EXE? и обычно это НЕ должно их ломать?

Примечание: у меня есть некоторые размышления в моей программе, и, возможно, это является причиной проблемы ... но я не уверен на 100%.


person Shai UI    schedule 20.09.2011    source источник
comment
Запутайте исполняемый файл и dll как одну логическую единицу. Это гарантирует, что любые ссылки из исполняемого файла на dll останутся согласованными после переименования всех символов. Я не уверен, что у Eazfuscator есть такая возможность, возможно, вам стоит взглянуть на другой обфускатор под названием Защита кода Agile.net   -  person SecureTeam Software    schedule 06.11.2013


Ответы (6)


Существует версия сообщества Dotfuscator, которую вы можете попробовать.

Как правило, обфускаторы не должны нарушать работу приложений, которые они запутывают. Если вы можете воспроизвести проблему, обратитесь к производителю.

person i_am_jorf    schedule 20.09.2011

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

person Arun    schedule 20.09.2011

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

person Rohan West    schedule 20.09.2011

Да, нам нужно запутать нашу сборку после компиляции. Сборка снова строится обфускатором. Так что нам не нужно беспокоиться о компиляции и сборке.

Я использую FxProtect, бесплатный обфускатор. Также доступна версия Advance Professional, но она не бесплатна. Можешь попробовать...

.Net Obfuscator

person Princi Goel    schedule 17.04.2012

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

Запустите обфускацию исходного кода, а затем скомпилируйте ее в готовый продукт.

person Perception    schedule 20.09.2011

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

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

person Jon Cage    schedule 07.12.2011