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

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

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

Так что, если я пойду

Eazfuscator.NET MyProgram.exe

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

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

EazFuscator.NET SomeDLLMyProgramUses.dll

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

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

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

6 ответов

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

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

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

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

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

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

.Net Obfuscator

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

Запустите запутывание вашего исходного кода, а затем скомпилируйте его в результат.

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

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

Другие вопросы по тегам