2

我需要加密ASP.NET页面使用的C#代码。所以,当我编译创建一个DLL文件时,我确实需要加密我的DLL文件。请帮助我如何加密DLL文件...c#dll加密

回答

4

您可能可以做的一件事是将加密的.dll嵌入到另一个要在运行时解密和加载的.dll中。

  • 首先,编译一个包含所有要保护的代码的.dll文件。
  • 其次,以任何你认为合适的方式加密.​​dll。
  • 然后,创建第二个将嵌入式加密的.dll作为资源的.dll文件。
  • 第二个问题,外部.dll在运行时请求一个密钥。
  • 外部.dll会使用密钥解密加密的.dll。
  • 外部.dll然后可以调用System.AppDomain.CurrentDomain静态方法,并使用Load方法加载解密的.dll。
  • 外部.dll然后可能必须在ASP.NET和解密的.dll之间执行一些内部操作。

这种方法有局限性。您需要在启动时每次为该实例提供一个密钥才能让事情运行。有办法来拦截这个。此外,解密后的.dll将存在内存中,一旦提供密钥,就会解密。有很多方法可以阅读。

此方法实际上仅用于保护可能盗取硬盘驱动器的人的代码。这不是控制机器运行代码的任何人的绝对屏障。

+0

我知道这是一个非常古老的问题,但是请您告诉我一些关于如何在内存中读取解密后的dll的资源,我试图通过这种方式来保护我的应用程序许可证 – Vamsi 2011-10-20 09:23:54

0

我不太清楚你的意思是“加密”,但如果你想混淆你的代码有几个工具像Dotfuscator,智能大会等...