假设我有一个强命名的 .NET 程序集。只有我可以访问私钥。然后我将程序集分发到某个客户端系统。
客户修改程序集有多难?即:他们需要做什么来修改我的程序集?
强命名不会阻止修改程序集,但会防止引用强命名程序集的其他应用程序无意中使用修改后的版本。
这与修改非强类型程序集没有什么不同。唯一真正的区别是他们必须运行强名称实用程序 (sn.exe) 才能使用修改后的程序集。
正如其他人所说,这很容易。
您可以使用的一种技术是使用程序集的公钥(或令牌)来加密程序集中的重要信息(例如算法参数、连接字符串等)。这样,如果公钥已更改或删除,解密将失败,您的程序集将不再正确运行。Crypto Obfuscator等混淆器使用这种技术作为保护的一部分。