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

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

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

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

Eazfuscator.NET MyProgram.exe

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

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

EazFuscator.NET SomeDLLMyProgramUses.dll

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

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

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

Ответы [ 6 ]

6 голосов
/ 21 сентября 2011

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

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

4 голосов
/ 21 сентября 2011

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

2 голосов
/ 17 апреля 2012

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

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

.Net Obfuscator

2 голосов
/ 21 сентября 2011

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

0 голосов
/ 07 декабря 2011

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

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

0 голосов
/ 21 сентября 2011

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

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

...