防止.NET中的动态链接

时间:2010-03-19 17:57:58

标签: .net security dll licensing ngen

我想部署附带许可证的应用程序。但是,我想防止我的dll可以在visual studio中轻松引用。

通常的做法是什么?我正在考虑使用应用程序来防止这种情况,然后代码变得依赖于体系结构。我不是针对除Windows之外的任何其他架构/平台,但是,在发布版本之后找到应用程序对我来说似乎是一种解决方法。有没有其他技术可以实现这一目标?

4 个答案:

答案 0 :(得分:3)

您无法发送ngen-ed图像,Ngen.exe 必须在目标计算机上运行。有一个专门的服务,由.NET安装程序安装,负责处理它。无论如何它无助于保护任何东西,原始组件也必须存在。

.NET内置了对许可的支持,但它仅适用于可设计的类。 System.ComponentModel.License是基类声明。 LicFileLicenseProvider是它的具体实现。

你可以购买第三方的东西,加密狗是无与伦比的。无论哪种方式,您的知识产权唯一真正的保护是在法庭上。在可见的地方声明版权,确保您的用户在使用您的代码之前完成明确的许可协议步骤。

答案 1 :(得分:2)

代码访问安全性(CAS)。您可以在一系列继承或方法或程序集中强制执行LinkDemand,这要求所有程序集链接都具有相同的强名称密钥和其他所需的证据。

答案 2 :(得分:0)

如果您使用的是安装程序,则可以在安装过程中使用。 SQL Server执行此操作。

你也可以混淆。它不会阻止链接本身,但它确实很难知道dll的作用,降低了它对其他进程的“有用性”。

答案 3 :(得分:0)

如果您将课程范围更改为朋友

,该怎么办?