.net - 是否可以防止 DLL 被修改?

标签 .net code-security

是否可以签署或以其他方式保护托管 (.NET) DLL 不被修改?我正在寻找可能的解决方案来检测 DLL 的更改并防止它们被 .NET 运行时加载。我不介意是否有人可以在 Reflector 或 ILSpy 中加载 DLL - 只要修改后的 DLL 无法执行,我就可以接受。

我对这个主题进行了一些搜索,但大多数文章/讨论都建议混淆,这不是我要找的。我认为对 DLL 进行数字签名可以实现这一点,但与同事的交谈让我怀疑这一点,而且我在这方面的知识也很肤浅。

如有任何建议,我们将不胜感激。

最佳答案

Signing a DLL不会阻止其他人反编译然后修改您的 DLL。它所做的是防止他们这样做然后将结果作为原始结果传递。换句话说,如果调用者决定信任它,修改后的 DLL 将执行,但任何期望它具有您的公钥 token 的代码都会拒绝它。

关于.net - 是否可以防止 DLL 被修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12809219/

相关文章:

.net - 为什么 ORM 不支持 IoC 容器

c# - 始终获取依赖属性的 PropertyChangedCallback - Silverlight

.net - 将 RSA PEM 转换为 XML .net 框架

c#更改相对或绝对uri的文件名

c# - 在代码中保存 SQL Server 登录 (C#)

.net - 创建自定义 CodeAccessSecurityAttribute 会导致编译异常

.net - 是否无法保护 .net 代码(知识产权)?

.net - 找不到非对称 key ——因为它不存在或您没有权限

c# - 避免用户代码调用 C# 中的反射

javascript - electron js如何对源码进行混淆和保护源码