«Как защитить код своего .net приложение?» – один из тех вопросов, который можно часто услышать на различных форумах.
Самый распространённый вариант – обфускация. С одной стороны — прост в использовании, а с другой — не достаточно надёжно прячет исходники. Предложу свой вариант, хорошо подходящий для утилит, использование которых предполагается самим автором (либо доверенным лицам), код которых показывать нежелательно.
Защита будет строиться на шифровании сборок симметричным ключом и динамическом их дешифровании в процессе работы приложения. Ключ шифрования будет определяться пользователем на этапе развёртывания и вводиться как пароль при запуске.
Разобьём всё на этапы:
- Предварительные работы
- Ввод пароля
- Дешифровка сборок
- Переопределение загрузки сборок
- Запуск приложения
- Вишенка на торте
- Дополнительные настройки проекта
И отдельным пунктом пойдёт:
- Развёртывание и шифрование сборок