Привет
Я реализовал механизм защиты от копирования с моделью Microsoft LicenseProvider и парой открытого и закрытого ключей, чтобы предотвратить копирование программы с одного компьютера на другой. Очень просто.
При запуске файл лицензии должен содержать зашифрованную информацию о компьютере, дату истечения срока действия и имя сборки, для которой предназначен этот файл лицензии.
Но что если кто-то переименует файл лицензии из MyProgramA.exe.lic в MyProgramB.exe.lic? Если обе программы защищены от копирования одним и тем же способом, достаточно просто переименовать файл .lic, чтобы получить действительную лицензию ProgramB.
Вот почему я сохранил имя сборки внутри файла .lic. Имена сборок должны совпадать.
Теперь, что произойдет, если кто-то вместо этого переименует ProgramB в ProgramA? Имена сборок будут совпадать, и лицензия снова будет действительной.
Любые идеи, чтобы сделать это более пуленепробиваемым?
Опять же, это простое проприетарное решение, так что никаких обфускаций и никаких сторонних инструментов, которые, как я знаю, не существует.
Спасибо!