Как конвертировать C # в DLL, чтобы скрыть исходный код? - PullRequest
1 голос
/ 05 февраля 2009

Как я могу преобразовать мой код C # в файл DLL таким образом, чтобы пользователь DLL не мог просмотреть мой исходный код?

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

Ответы [ 8 ]

9 голосов
/ 05 февраля 2009

Полагаю, вы ищете обфускатор. Это инструмент, который возьмет скомпилированную DLL и перезапишет код с намерением не де-компилировать его другим пользователем. Visual Studio поставляется с бесплатным Dotfuscator

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

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

4 голосов
/ 05 февраля 2009

запутывание - это то, что вы хотите найти.

В визуальной студии есть бесплатный (ограниченный), который называется Dotfuscator.

Использует причудливые методы, чтобы переименовать код и изменить пути потока, чтобы скрыть его.

1 голос
/ 05 февраля 2009

Если вы разрабатываете настольные приложения, преобразование кода в Dll не скроет его (есть много инструментов для декомпиляции dll или exe-файлов).

но если вы используете Asp.Net, то вы можете скомпилировать свой сайт в Dll, и код не будет виден на страницах aspx, он будет скомпилирован в Dll, вы можете сделать это, щелкнув правой кнопкой мыши по своему проекту в обозревателе решений, затем выберите Опубликовать веб-сайт

Но во всех случаях .Net Exe файлы и DLL будут легко декомпилироваться и снова извлекать исходный код, если только вы не используете инструмент для обфускации вашего кода.

1 голос
/ 05 февраля 2009

Рассмотрите возможность использования обфускатора .

0 голосов
/ 15 января 2013

Эта ссылка может быть полезна для вас .. http://msdn.microsoft.com/en-us/library/3707x96z(v=vs.80).aspx

0 голосов
/ 05 февраля 2009

Я думаю мой ответ на похожий вопрос об обфускации JavaScript также применим и здесь: короче, зачем беспокоиться? На ваш вопрос здесь уже дан ответ («используйте обфускатор»), но я подумал, что не мешало бы выяснить ваши мотивы. Как правило, код, который вы даете людям, «находится в руках врага» - если кто-то захочет его использовать / выяснить, как он работает достаточно плохо, они будут.

0 голосов
/ 05 февраля 2009

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

В Visual Studio встроен стандартный обфускатор. В меню выберите Инструменты / Dotfuscator Community Edition.

0 голосов
/ 05 февраля 2009

вы говорите об ASP.NET? Сайты? скрыть исходники aspx и cs?

если да, см. Мой вопрос:

предварительная компиляция веб-сайта в программе установки и развертывания

:)

...