如何保护.net中的dll文件(防止破解、反编译dll)
来源:互联网 发布:python generator send 编辑:程序博客网 时间:2024/06/09 15:09
.net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行。中间语言很容易被反编译,所以研究下如何有效的保护dll文件。
我大致的方法为 :强签名+混淆+加密。
强签名
强命名程序集,可以确保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果签名也会不同。
强签名很简单,本站另一文章已经详细进行了讲解,请参考:http://www.cn-web.com/shtml/article/net/fxsj/2009/06/16/913.shtml
注:未签名的主程序可以引用已签名或未签名的程序集;而已签名的主程序不能引用未签名的程序集。(上述文章有相应解决办法)
混淆
混淆就是对编译生成的MSIL中间代码进行模糊处理,最简单的混淆是名称混淆,即将 命名空间名、类名、方法名、字段名等统统换成特殊符号或其它符号,目的就是让人看到晕为止,但是并不改变程序执行逻辑。
我这里使用的Dotfuscator进行混淆。
Dotfuscator混淆方法:
1.创建新工程,如下图所示:
2.选择要混淆的dll、exe文件,如下图所示:
3.在属性里选择Library属性(很重要,因为我这里要混淆的是dll文件,如果不选中,混淆后将不能被正确调用!),如下图所示:
4.选择bulid标签,点击bulid按钮进行混淆。
我们也可以选择其它标签进行加密字符串、增加水印等操作,我这里加密工作用另外的方法,所以没有选择操作。
OK,混淆完成后,我们可以用Reflector.exe来反编译下混淆后的dll文件,可以对比源码看下效果。加密接下来我们继续对混淆过的dll文件进行加密处理,进一步保护dll文件。
我使用的加密工具是MaxtoCode。
打开软件后,切换到中文,可以看到非常简单,添加上dll文件后,直接点击执行加密就可以。其他选项比如:加密字符串、强名称等都很简单,大家一试就知道,而且MaxtoCode的帮助做的非常友好,一看就会使用。加密后的dll文件比先前大了一倍,用Reflector.exe反编译后,发现dll文件加密的更彻底,因为主体函数内容都隐藏了。通过以上三步,使您的dll文件可免于一般人的破解,当然,不可能绝对防止被破解。
.net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行。中间语言很容易被反编译,所以研究下如何有效的保护dll文件。
我大致的方法为 :强签名+混淆+加密。
强签名
强命名程序集,可以确保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果签名也会不同。
强签名很简单,本站另一文章已经详细进行了讲解,请参考:http://www.cn-web.com/shtml/article/net/fxsj/2009/06/16/913.shtml
注:未签名的主程序可以引用已签名或未签名的程序集;而已签名的主程序不能引用未签名的程序集。(上述文章有相应解决办法)
混淆
混淆就是对编译生成的MSIL中间代码进行模糊处理,最简单的混淆是名称混淆,即将 命名空间名、类名、方法名、字段名等统统换成特殊符号或其它符号,目的就是让人看到晕为止,但是并不改变程序执行逻辑。
我这里使用的Dotfuscator进行混淆。
Dotfuscator混淆方法:
1.创建新工程,如下图所示:
2.选择要混淆的dll、exe文件,如下图所示:
3.在属性里选择Library属性(很重要,因为我这里要混淆的是dll文件,如果不选中,混淆后将不能被正确调用!),如下图所示:
4.选择bulid标签,点击bulid按钮进行混淆。
我们也可以选择其它标签进行加密字符串、增加水印等操作,我这里加密工作用另外的方法,所以没有选择操作。
OK,混淆完成后,我们可以用Reflector.exe来反编译下混淆后的dll文件,可以对比源码看下效果。
加密
接下来我们继续对混淆过的dll文件进行加密处理,进一步保护dll文件。
我使用的加密工具是MaxtoCode。
打开软件后,切换到中文,可以看到非常简单,添加上dll文件后,直接点击执行加密就可以。其他选项比如:加密字符串、强名称等都很简单,大家一试就知道,而且MaxtoCode的帮助做的非常友好,一看就会使用。
我使用的加密工具是MaxtoCode。
打开软件后,切换到中文,可以看到非常简单,添加上dll文件后,直接点击执行加密就可以。其他选项比如:加密字符串、强名称等都很简单,大家一试就知道,而且MaxtoCode的帮助做的非常友好,一看就会使用。
加密后的dll文件比先前大了一倍,用Reflector.exe反编译后,发现dll文件加密的更彻底,因为主体函数内容都隐藏了。
通过以上三步,使您的dll文件可免于一般人的破解,当然,不可能绝对防止被破解。
- 如何保护.net中的dll文件(防止破解、反编译dll)
- 如何保护.net中的dll文件(防止破解、反编译dll)
- 如何保护.net中的dll文件(防止破解、反编译dll)
- 如何保护.net中的dll文件(防止破解、反编译dll)
- 如何保护.net中的dll文件(防止破解、反编译dll)
- 如何保护.net中的dll文件(防止破解、反编译dll)
- 保护.net中的dll文件方法(防止破解、反编译dll)
- 保护.net中的dll文件方法(防止破解、反编译dll)
- 保护.net中的dll文件方法(防止破解、反编译dll)
- 如何保护.net中的dll文件(防止破解、反编译dll)(转)
- 如何保护.net中的dll文件(防破解、反编译)
- 如何保护.net中的dll文件(防破解、反编译)
- 如何保护.net中的dll文件(防破解、反编译)
- 如何保护.net中的dll文件(防破解、反编译)
- 如何保护.net中的dll文件(防破解、反编译)
- 如何保护.net中的dll文件(防破解、反编译)
- 如何保护.net中的dll文件(防破解、反编译)
- 【转】如何保护.net中的dll文件(防破解、反编译)
- 图的基本术语
- std string 的常用使用
- 关于BREW你问我答, 期望TX们提建议
- RMON简介
- 用Android模拟器运行嵌入式GUI FTK
- 如何保护.net中的dll文件(防止破解、反编译dll)
- quick sort
- select 语句
- Assistant entertainment actor broadcast Tsui Hark film hindered by the 3D technology
- 每个栏目取不同的一条信息
- 智能化运动人体行为监控系统软件
- 联发科vs 高通:下九流和上九流的较量
- window对象方法和属性
- 刚上班,懂规矩么,别因为一个动作毁了自己的前途