保护您的知识产权 - 加密您的 .Net IL 代码!
DNGuard HVM 包含如下组件:
1. DNGuard HVM 命令行工具 .
2. DNGuard HVM 图形界面程序.
3. DNGuard HVM 运行库.
加密保护后的程序集和DNGuard 运行库可以免费自由的分发给任意最终用户。
技术优势
开发 .NET 软件产品时必须考虑的一个问题是如何保护代码不被逆向破解。
通过逆向工程访问代码的技术已经发展很久了,事实上,.NET 程序集包含的 IL 代码和丰富的元数据很容易被破解、非法修改和重新编译。对于想要保护自己知识产权的开发人员来说,这种毫不费力的破解就带来了非常重要的安全问题。
Lutz Roeder 先生的 Reflector ,微软的 ILDASM 和其它 .NET 反编译器都可以轻易查看您程序集的 IL 代码,这样一来,您的源代码就会被别有用心的人学习,并依此将您的软件产品重新编译为个人版,您的知识产权也就无法得到保护。
DNGuard 专业版 可以加密程序集的 IL 代码,有效保护您的知识产权。加密后的程序集运行时,由即时编译器(Just-In-Time, JIT)解密并编译;DNGuard 解析引擎确保在任何时候内存中至多存在一个方法,这样可以确保破解者没有任何可能从内存中转储您的程序集源代码。
DNGuard 企业版 拥有的 HVM 技术可以将程序集的 IL 代码转化为 HVM 伪代码,并加密伪代码,为您的知识产权提供最好的保护。加密后的程序集运行时,HVM 编译器将伪代码交给即时编译器处理,并帮助即时编译器直接从伪代码编译成本地代码。HVM 解析引擎可以确保在任何时候内存中都不会有 IL 代码存在,这样可以确保破解者没有任何可能从内存中转储您的程序集源代码。
DNGuard HVM is not an Obfuscator and therefore doesn't suffer from some of the known limitations of obfuscation tools.
Usage of the Reflection API and dynamic class loading often breaks the application after it has been obfuscated.
Stack dump information sent by the customer containing obfuscated method names makes it extremely difficult to infer the original methods that were called.
DNGuard HVM keeps class, method, and other symbol names unchanged thus enabling the developer to use Reflection API freely without breaking the application, stack dump information contains the original method names.
基于代码加密的解决方案
代码加密技术使用标准加密算法来加密 MSIL 代码,这样反编译器就无法读取源代码,可以阻止破解者逆向破解您的程序集。由于加密后的代码不再包含 MSIL 结构,ILdasm 或其它反编译器都无法转储程序集。在这方面,传统的模糊技术则无法与之相比。
然而,.NET 框架只能解析标准的通用语言界面(Common Language Interface, CLI)程序集,这就意味着,加密后的代码最终都会被解密供 .NET 运行库执行。
大多数的代码保护工具都是将整个程序集完全加密,并在运行时解密;它们通常使用本地代码装载器封装入口程序集(包含程序入口点的程序集)。
这样类似于类、方法和其它的元数据信息都不可见,也无法使用标准的 .NET 工具查看。
但是,如果程序被执行,本地代码装载器就会解密代码,内存中就会有完全解密的代码供 .NET 运行库解析运行.
这就是大多数代码保护工具没有意识到的问题;一旦代码以 MSIL 的形式完整的暴露在内存中,破解者就可能从内存中转储该代码,这样也就带来了安全问题。
DNGuard 与其它代码保护工具有什么不同?
DNGuard 可以确保您的 MSIL 代码总是处于加密状态,运行时由 .NET 解析引擎解析运行,一次只解析一个方法,您的 MSIL 代码永远不会在内存中完整出现。
我们的保护工具未使用封装整个程序集的本地代码装载器,这样您还可以用来加密您的 ASP.NET Web 应用程序。
元数据信息保留完整,可以用标准 .NET 工具查看,因此使用我们的保护工具可以完美的发布第三方支持组件。现在您可以给您的客户提供一个保护过的 .NET 组件,这样他开发自己的应用程序时就会保留您的知识产权。
HVM 技术 和 每一方法 保护工具有什么不同?
HVM 是一项虚拟机技术,它负责每次只处理程序代码的一个方法,并且
永远不会将方法解密成 MSIL 形式;它只会在 HVM 编译引擎编译前将方法解密成动态伪代码,帮助即时编译器从伪代码直接生成本地代码。HVM 解析引擎可以确保内存中任何时候都不会有完整的 IL 代码驻留。
详情