Виден ли исходный код через двоичный файл? (С #) - PullRequest
2 голосов
/ 15 января 2011

Я написал программу на c # для Vistual studio 2008.

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

Ответы [ 5 ]

2 голосов
/ 15 января 2011

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

2 голосов
/ 15 января 2011

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

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

1 голос
/ 15 января 2011

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

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

1 голос
/ 15 января 2011

Да.

Вы можете использовать рефлектор для декомпиляции любой сборки .net.http://www.red -gate.com / products / dotnet-development / отражатель /

Существуют инструменты, которые запутывают ваш код.Но это все равно будет видно.Безопасность по неизвестности все равно не работает.

1 голос
/ 15 января 2011

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

...