保护.net中的dll文件有什么方法
其实.net是微软推出的一种编程框架理论或者说是一种编程标准,它的全称是ASP.NET,是一种建立在虚拟机上并被执行的语言。它直接生成MSIL的中间语言,由解释并映射到本机代码,net编译器JIT并交付给CPU执行。中间语言容易反编译,所以在网络安全环境中要有效保护dll文件,那么保护.net中的dll文件有什么方法呢?
1、强名称
它是MS提供的保护机制,需要使用 sn 这个命令。强名称的作用就是防止程序集被非法修改,当对程序集修改后,必须重新用您的私钥再对程序集加一次强名称,这也是如果含有强名称的程序集在混淆或加密后必须要重新加强名称的原因。如果签名,即使是同名的程序集也会不同。但是要注意的是未签名的主程序可以引用已签名或未签名的程序集,已签名的主程序不能引用未签名的程序集。
2、混淆
混淆是编译的MSIL中间代码的模糊处理,名字混淆是最简单的混淆,即命名空间名、类名、方法名、字段名,都用特殊符号或其他符号代替。网络安全目的是让人头晕,但不改变程序执行逻辑。Dotfuscator混淆方法就是为了避免混淆,先创建新项目,然后选择要混淆的dll和exe文件;在属性中选择库属性,这是非常重要的,因为要混淆的是dll文,如果不选,混淆后就不能正确调用了;最后选择bulid选项卡,然后单击bulid按钮进行混淆,还可以选择其他标签来加密字符串、添加水印等。
3、加密
在对dll文件进行混淆后还要进行加密以进一步保护dll文件,一般都是使用一些加密工具,步骤都是简单容易。例如MaxtoCode,打开软件后,切换到中文,添加dll文件后,只需点击执行加密即可。其他选项,如加密字符串、强名称等,都是很简单的,按照提示和步骤一试就会的。加密的dll文件会是以前的两倍大,用Reflector.exe反编译后,发现dll文件加密的更彻底,因为主要函数的内容都被隐藏了。
通过以上三个步骤,可以防止你的dll文件被普通人破解。当然,也不可能绝对防止被破解。