Я бы не стал запутываться: последние синтаксис-сахар , трюки во время компиляции и оптимизация в .Net 3.5 делают простой обратный инжиниринг уже довольно сложным.
Например, каждый раз, когда вы используете ключевое слово yield
, он генерирует класс перечисления со сложной структурой и нечитаемым именем.
Обфускация усложнит реинжиниринг, но этого недостаточно. Либо будет сдерживать основной взлом с копией отражатель , ни удержать или остановить решительный и опытный взломщик.
Я бы подписал все ваши сборки ключами - тогда, если они перевернут одну, они должны перевернуть все.
Я бы взял большую часть реальной логики приложения из веб-проекта и в библиотеки DLL, на которые ссылаются - ваш веб-проект действительно должен быть полностью посвящен пользовательскому интерфейсу. Это облегчает юнит-тестирование базовой логики и упрощает запутывание, если вы решите, что оно того стоит.