жизнь, Тут советы по защите есть: https://stackoverflow.com/questions/506282/protect-net-code-from-reverse-engineering Основные - обфускатор, лицензия, приложение-оболочка для запуска. Ещё часть кода может выполняться на сервере. Например, есть какая-то функция, пусть Синуса, она выполняет у тебя на сервере. Клиент отправляет запрос на сервер с числом 0.5 и в ответ получает 0.4794. Такой код сложно взломать, если не учитывать, что каким-то образом получат доступ к твоему серверу. Можно конечно с помощью нескольких запросов и ответов написать интерполирующую или аппроксимирующую функции и понять, что это Синус, поэтому чем сложнее твоя функция, тем сложнее понять, что это. Этот принцип используется в основном в сетевых играх. Но тут надо соблюдать баланс между кол-вом кода, который выполняется на сервер и на клиенте. Ибо зачем нам тратить лишние ресурсы на содержание сервера, если кожаные мешки часть кода могут на своих микроволновках выполнять) + если на каждое действие выполнять запрос, то клиенту придётся ждать ответ(ping)
bylex правильно говорит, лучшая защита от реверса - сервер. Никакой инженер не крякнет твой софт, если основная логика будет находится на сервере, лишь бы была нормальная защита эндпоинтов. Думаю, при продаже софта будет лучше не поскупиться на какую-нибудь картошку на линуксе, которая послужит blackbox'ом, чем рисковать кряком через неделю.