Удалить метаданные из приложений .NET? - PullRequest
2 голосов
/ 28 августа 2008

Возможно ли это? Зависит ли .NET Framework от метаданных в байт-коде? Мне бы хотелось, чтобы приложение, которое я пишу, не работало в отражателе или аналогичном декомпиляторе .NET.

Ответы [ 6 ]

2 голосов
/ 28 августа 2008

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

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

Не беспокойся об этом. Исходный код apache, linux и всего остального свободно доступен в сети, но это не дает Майкрософт больших конкурентных преимуществ: -)

1 голос
/ 28 августа 2008

Это похоже на тот же вопрос, что и:

Как сделать манифест сборки .net закрытым?

Смотрите мой ответ там:

Как сделать манифест сборки .net закрытым?

«Я думаю, что вы говорите о« запутывании ». В сети много статей об этом:

http://en.wikipedia.org/wiki/Obfuscation

«Стандартный» инструмент для запутывания в .NET от Preemptive Solutions:

http://www.preemptive.com/obfuscator.html

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

Вы упомянули ILDasm, смотрели ли вы на .NET Reflector?

http://aisto.com/roeder/dotnet/

Это дает вам еще лучшее представление о том, что люди могут увидеть, если вы выпустите манифест! "

1 голос
/ 28 августа 2008

Я думаю, что вы имеете в виду манифест сборки :

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

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

0 голосов
/ 28 августа 2008

Разве такие решения, как ThinApp от VMware (ранее Thinstall), также не помогли бы защитить ваш код? Это по очень высокой цене, хотя ..

0 голосов
/ 28 августа 2008

Dotfuscator остановит ваш код от возможности декомпиляции http://www.preemptive.com/dotfuscator.html

Редактировать: Я должен был упомянуть, это профессиональная версия, бесплатная версия для сообщества поставляется с visual studio

0 голосов
/ 28 августа 2008

Не думаю, что вы можете удалить метаданные, но вы можете запутать свой код, если хотите защитить свой IP.

...