Кажется, что прощё сделать софт как SaaS, а хостинг на серверах заказчика сделать только для тех ситуаций, когда это заказчику действительно необходимо и за индивидуальный прайс.
Даже в случае утечки будет сразу ясно, кто это сделал и набутылить.
А полностью защищённый контейнер - это физический сервер, к содержимому файловой системы которого человек со стороны не будет иметь доступ совсем.
Никакие софтовые решения (обфускация, контейнеры, шифрованные виртуалки, передача критичного исполняемого кода по сети) не спасут от тех людей, которые хотят с вами конкурировать или осознанно хотят нарушить соглашения.
В dotPeek есть волшебная кнопка "Export to project" которая появляется, когда нажимаешь ПКМ на нужной сборке.
После экспорта тебе нужно просто открыть этот проект в Visual Studio и собрать заново, предварительно изменив те файлы, которые тебя интересуют.
IDA Pro или ghidra, например, если говорить об ассеблере.
Если это .NET, то ildasm, dotpeek, dnspy, ilspy
Обходить все защиты придётся руками, если они есть.