是否可以签署或以其他方式保护托管 (.NET) DLL 不被修改?我正在寻找可能的解决方案来检测 DLL 的更改并防止它们被 .NET 运行时加载。我不介意是否有人可以在 Reflector 或 ILSpy 中加载 DLL - 只要修改后的 DLL 无法执行,我就可以接受。
我对这个主题进行了一些搜索,但大多数文章/讨论都建议混淆,这不是我要找的。我认为对 DLL 进行数字签名可以实现这一点,但与同事的交谈让我怀疑这一点,而且我在这方面的知识也很肤浅。
如有任何建议,我们将不胜感激。
最佳答案
Signing a DLL不会阻止其他人反编译然后修改您的 DLL。它所做的是防止他们这样做然后将结果作为原始结果传递。换句话说,如果调用者决定信任它,修改后的 DLL 将执行,但任何期望它具有您的公钥 token 的代码都会拒绝它。
关于.net - 是否可以防止 DLL 被修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12809219/