Одна вещь, которую вы можете сделать, это встроить зашифрованную .dll в другую .dll, которая должна быть расшифрована и загружена во время выполнения.
- Сначала скомпилируйте .dll со всем кодомВы хотите защитить.
- Во-вторых, зашифруйте DLL-файл любым удобным для вас способом.
- Затем создайте второй DLL-файл, в который зашифрованный DLL-файл будет встроен в качестве ресурса.
- Пусть второй, внешний, .dll запросит ключ во время выполнения.
- Внешний .dll затем расшифрует зашифрованный .dll с помощью ключа.
- Внешний.Затем dll может вызвать статический метод System.AppDomain.CurrentDomain и загрузить расшифрованный .dll с помощью метода Load .
- Возможно, внешнему .dll придетсясделать некоторое взаимодействие между ASP.NET и расшифрованным .dll.
Существуют ограничения для этого метода.Вам нужно будет предоставить экземпляру ключ каждый раз при запуске, чтобы все заработало.Есть способы перехватить это.Кроме того, расшифрованный .dll будет существовать в памяти, расшифровывается, как только ключ будет предоставлен.Есть способы прочитать это.
Этот метод действительно полезен только для защиты кода от тех, кто может украсть жесткий диск.Это не является абсолютным препятствием для тех, кто контролирует компьютер, на котором будет выполняться код.