.Net 代码安全保护产品DNGuard HVM使用
前辈人物写的程序啊!
官方网站:http://www.dnguard.net/index.aspx
官方博客:http://www.cnblogs.com/rick/ (很久没更新了)
原文http://www.anqn.com/jiamijiemi/gongjujiqiao/2009-12-22/a09121848.shtml
DNGuard HVM 是一款 .Net 代码安全保护产品,它为您的 .NET 软件产品代码、版权保护提供高强度的保护方案。DNGuard 强大的加密、混淆功能以及 HVM 虚拟机保护功能让您的产品同时受到多重保护,更加稳固您的合法利益不受不法分子的侵害,它可以在不需要对源代码进行任何调整的情况下完美的保护您的源代码不受反编译及破解的侵害。
产品预览:
技术优势:
开发 .NET 软件产品时必须考虑的一个问题是如何保护代码不被逆向破解。通过逆向工程访问代码的技术已经发展很久了,事实上,.NET 程序集包含的 IL 代码和丰富的元数据很容易被破解、非法修改和重新编译。对于想要保护自己知识产权的开发人员来说,这种毫不费力的破解就带来了非常重要的安全问题。
Lutz Roeder 先生的 Reflector ,微软的 ILDASM 和其它 .NET 反编译器都可以轻易查看您程序集的 IL 代码,这样一来,您的源代码就会被别有用心的人学习,并依此将您的软件产品重新编译为个人版,您的知识产权也就无法得到保护。
DNGuard 专业版可以加密程序集的 IL 代码,有效保护您的知识产权。加密后的程序集运行时,由即时编译器(Just-In-Time, JIT)解密并编译;DNGuard 解析引擎确保在任何时候内存中至多存在一个方法,这样可以确保破解者没有任何可能从内存中转储您的程序集源代码。
DNGuard 企业版拥有的 HVM 技术可以将程序集的 IL 代码转化为 HVM 伪代码,并加密伪代码,为您的知识产权提供最好的保护。加密后的程序集运行时,HVM 编译器将伪代码交给即时编译器处理,并帮助即时编译器直接从伪代码编译成本地代码。HVM 解析引擎可以确保在任何时候内存中都不会有 IL 代码存在,这样可以确保破解者没有任何可能从内存中转储您的程序集源代码。
基于代码加密的解决方案:
代码加密技术使用标准加密算法来加密 MSIL 代码,这样反编译器就无法读取源代码,可以阻止破解者逆向破解您的程序集。由于加密后的代码不再包含 MSIL 结构,ILdasm 或其它反编译器都无法转储程序集。在这方面,传统的模糊技术则无法与之相比。然而,.NET 框架只能解析标准的通用语言界面(Common Language Interface, CLI)程序集,这就意味着,加密后的代码最终都会被解密供 .NET 运行库执行。大多数的代码保护工具都是将整个程序集完全加密,并在运行时解密;它们通常使用本地代码装载器封装入口程序集(包含程序入口点的程序集),这样类似于类、方法和其它的元数据信息都不可见,也无法使用标准的 .NET 工具查看。但是,如果程序被执行,本地代码装载器就会解密代码,内存中就会有完全解密的代码供 .NET 运行库解析运行,这就是大多数代码保护工具没有意识到的问题;一旦代码以 MSIL 的形式完整的暴露在内存中,破解者就可能从内存中转储该代码,这样也就带来了安全问题。
DNGuard 与其它代码保护工具有什么不同?
*DNGuard 可以确保您的 MSIL 代码总是处于加密状态,运行时由 .NET 解析引擎解析运行,一次只解析一个方法,您的 MSIL 代码永远不会在内存中完整出现。
*我们的保护工具未使用封装整个程序集的本地代码装载器,这样您还可以用来加密您的 ASP.NET Web 应用程序。
*元数据信息保留完整,可以用标准 .NET 工具查看,因此使用我们的保护工具可以完美的发布第三方支持组件。现在您可以给您的客户提供一个保护过的 .NET 组件,这样他开发自己的应用程序时就不会保留您的 IP 地址了。
HVM 与每一方法保护工具有什么不同?
HVM 是一项虚拟机技术,它负责每次只处理程序代码的一个方法,并且永远不会将方法解密成 MSIL 形式;它只会在 HVM 编译引擎编译前将方法解密成动态伪代码,帮助即时编译器从伪代码直接生成本地代码。HVM 解析引擎可以确保内存中任何时候都不会有完整的 IL 代码驻留。
.Net 代码安全保护产品DNGuard HVM使用的更多相关文章
- DNGuard HVM Unpacker(3.71 trial support and x64 fixed)
DNGuard HVM Unpacker(3.71 trial support and x64 fixed) Gr8 news. Finally got the x64 crash fixed. DN ...
- Unity3D 代码加密保护工具
加密方式 对于Unity3D的保护方式,主要是通过Virbox Protector Standalone对Unity3D程序的整个生成目录进行加密,可以保护Unity的主要代码逻辑不被反编译,最大 ...
- 论try/catch的重要性,我们经常遇到代码出现无法调试的错误,程序退出的时候崩溃。这跟我们代码日常保护的习惯息息相关。
每当构造函数或析构函数中出现溢出,会导致调试非常困难,而使用try/catch来处理构造中的初始化就非常重要了. 如上图,在构造函数中,我们的很多初始化动作会放在这里,但是却忽视了,一旦初始化出错了, ...
- 【安卓安全】ARM平台代码保护之虚拟化
简介:代码的虚拟化即不直接通过CPU而是通过虚拟机来执行虚拟指令.代码虚拟化能有效防止逆向分析,可大大地增加了代码分析的难度和所需要的时间,若配合混淆等手段,对于动静态分析有着较强的防御能力. 背景: ...
- 大型.NET商业软件代码保护技术 技术与实践相结合保护辛苦创造的劳动成果
列举工作以来遇到的各种类型的软件所采用的代码保护技术,只讲原理不涉及技术细节实现,以避免产生法律问题.有些朋友说直接把代码放在Github开源下载,开源可以促进技术交流与进步,然而值钱的代码都积压在硬 ...
- 小试.NET代码保护软件(代码混淆、加密)
有着微软人性化的开发工具VISUAL STUDIO和MSDN详尽的帮助,.NET 的开发效率的确高. 但是由于.NET同JAVA一样都采用中间语言.虚拟机/SDK等诸多特质,而且高等语言的类库编码规范 ...
- JAVA代码保护从入门到放弃
java语言开发的产品,需要部署到客户现场服务器.产生了对代码进行保护的需求,开始研究代码加密方式. 经过研究分析后有两种思路,混淆和加密.两者各自适应不同的情况. 由于大量spring注解功能,并且 ...
- HTML5漫谈(7)——如何保护HTML5应用代码
独家供稿:移动Labs HTML5应用采用的仍然是Javascript(JS).HTML.CSS 等Web语言,因而其代码保护就是这些Web代码的保护,而HTML5应用主要功能一般采用JS实现,因此J ...
- .Net加密保护工具分析介绍
本文主要介绍一些dotNet加密保护工具的原理以及就其脱壳进行简单探讨. remotesoft protector.maxtocode..Net Reactor.Cliprotector.themid ...
随机推荐
- (任寒韬)WebApp群主 - MobileTech 资料
web app : http://www.lightapp.cn/brand/index/4101 https://github.com/jtyjty99999/mobileTech/blob/mas ...
- busybox filesystem ifup
/******************************************************************** * busybox filesystem ifup * 声明 ...
- shell -Z- d等等代表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [ -a FILE ] ...
- 【转】cocos2d-x 3.2 Fast TileMap
概述 在游戏中常常会有丰富的背景元素,如果直接使用大的背景图实现,这会造成资源浪费.TileMap就是为了解决这问题而产生的.Cocos2d-x支持使用Tile地图编辑器创建的TMX格式的地图. Co ...
- 如何在Android开发中让你的代码更有效率
最近看了Google IO 2012年的一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善And ...
- Ruby窗口程序
require 'tk' tkroot=TkRoot.new { title 'hellw word' geometry '300x200' } lb = TkLabel.new(tkroot) do ...
- Zend Framework 入门(4)—页面布局
Zend Framework 的页面布局模块——Zend_Layout——既可以跟 MVC 一起使用,也可以单独使用.本文只讨论与 MVC 一起使用的情况. 1. 布局脚本 在 application ...
- C++ 函数重载与函数匹配
<C++ Primer>笔记,整理关于函数重载与函数匹配的笔记. 函数重载 void func(int a); //原函数 void func(double a); //正确:形参类型不同 ...
- Linux基本命令(5)管理使用者和设立权限的命令
管理使用者和设立权限的命令 命令 说明 命令 说明 chmod 用来改变权限 useradd 用来增加用户 su 用来修改用户 5.1 chmod命令 chmod命令用来改变许可权限.读取.写 ...
- 软件测试技术(六)——白盒测试之控制流覆盖准则+Visual Studio 2013单元测试
一.目标程序 单片机发送的A/D转换结果的整体格式为:[DLE][STX]Message[CHKSUM][DLE][ETX],其中[]括号中的字符为16进制的助记符,并非ASCII码.其中:[DLE] ...