前辈人物写的程序啊!

官方网站: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使用的更多相关文章

  1. 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 ...

  2. Unity3D 代码加密保护工具

    加密方式   对于Unity3D的保护方式,主要是通过Virbox Protector Standalone对Unity3D程序的整个生成目录进行加密,可以保护Unity的主要代码逻辑不被反编译,最大 ...

  3. 论try/catch的重要性,我们经常遇到代码出现无法调试的错误,程序退出的时候崩溃。这跟我们代码日常保护的习惯息息相关。

    每当构造函数或析构函数中出现溢出,会导致调试非常困难,而使用try/catch来处理构造中的初始化就非常重要了. 如上图,在构造函数中,我们的很多初始化动作会放在这里,但是却忽视了,一旦初始化出错了, ...

  4. 【安卓安全】ARM平台代码保护之虚拟化

    简介:代码的虚拟化即不直接通过CPU而是通过虚拟机来执行虚拟指令.代码虚拟化能有效防止逆向分析,可大大地增加了代码分析的难度和所需要的时间,若配合混淆等手段,对于动静态分析有着较强的防御能力. 背景: ...

  5. 大型.NET商业软件代码保护技术 技术与实践相结合保护辛苦创造的劳动成果

    列举工作以来遇到的各种类型的软件所采用的代码保护技术,只讲原理不涉及技术细节实现,以避免产生法律问题.有些朋友说直接把代码放在Github开源下载,开源可以促进技术交流与进步,然而值钱的代码都积压在硬 ...

  6. 小试.NET代码保护软件(代码混淆、加密)

    有着微软人性化的开发工具VISUAL STUDIO和MSDN详尽的帮助,.NET 的开发效率的确高. 但是由于.NET同JAVA一样都采用中间语言.虚拟机/SDK等诸多特质,而且高等语言的类库编码规范 ...

  7. JAVA代码保护从入门到放弃

    java语言开发的产品,需要部署到客户现场服务器.产生了对代码进行保护的需求,开始研究代码加密方式. 经过研究分析后有两种思路,混淆和加密.两者各自适应不同的情况. 由于大量spring注解功能,并且 ...

  8. HTML5漫谈(7)——如何保护HTML5应用代码

    独家供稿:移动Labs HTML5应用采用的仍然是Javascript(JS).HTML.CSS 等Web语言,因而其代码保护就是这些Web代码的保护,而HTML5应用主要功能一般采用JS实现,因此J ...

  9. .Net加密保护工具分析介绍

    本文主要介绍一些dotNet加密保护工具的原理以及就其脱壳进行简单探讨. remotesoft protector.maxtocode..Net Reactor.Cliprotector.themid ...

随机推荐

  1. BZOJ2337: [HNOI2011]XOR和路径

    题解: 异或操作是每一位独立的,所以我们可以考虑每一位分开做. 假设当前正在处理第k位 那令f[i]表示从i到n 为1的概率.因为不是有向无环图(绿豆蛙的归宿),所以我们要用到高斯消元. 若有边i-& ...

  2. HDU 4612 Warm up (边双连通分量+DP最长链)

    [题意]给定一个无向图,问在允许加一条边的情况下,最少的桥的个数 [思路]对图做一遍Tarjan找出桥,把双连通分量缩成一个点,这样原图就成了一棵树,树的每条边都是桥.然后在树中求最长链,这样在两端点 ...

  3. 【 D3.js 高级系列 — 10.0 】 思维导图

    思维导图的节点具有层级关系和隶属关系,很像枝叶从树干伸展开来的形状.在前面讲解布局的时候,提到有五个布局是由层级布局扩展来的,其中的树状图(tree layout)和集群图(cluster layou ...

  4. JavaScript备忘录-原型

    function Person() { this.name = "fs"; } Person.prototype.sayHello = function () { return & ...

  5. CMake实践(1)

    简介: 目录结构t1/main.cpp; t1/CMakeLists.txt 说明: main.cpp: #include <stdio.h> int main(){    printf( ...

  6. __VA_ARGS__与逗号操作符的巧妙结合

    class Test { public: template<class T> Test& operator,(T t) { //具体操作 return *this; } } Tes ...

  7. HDU 5762 Teacher Bo

    Teacher Bo Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tota ...

  8. SQL合并时间段的问题

    假设表结构如下所示: Tsheets 字段名 字段类型 约束 id CHAR(10) PRIMARY KEY start_date DATE CHECK(start_date<= end_dat ...

  9. 最小化安装CentOS7 + xfce4 +PHP + nginx +mariadb 开发环境

    虚拟机自定义最小化安装,新增用户做为管理员,打开自动获取网络,桥接模式.所有的操作只有命令,不做解释,看不明白的可以自行搜索相关的资料. # 开头的行是注释行,# 开头的空行,我自己装机时做了快照.未 ...

  10. 简易版CSS3 Tab菜单 实用的Tab切换

    今天我们要来分享一款非常简易而又实用的CSS3 Tab菜单,Tab菜单没有非常华丽的动画,但是代码非常简洁易懂,也可以在大部分场合使用,因此也非常实用,如果你需要加入动画效果,也可以自己方便地修改这款 ...