保护我们的dll
保护我们的dll
1,强命名和序集
可以确保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果签名也会不同。而且可以部署到 GAC 中. 只有强命名的程序集才可以部署到GAC中(GAC:全局程序集缓冲)
步骤:
运行Visual Studio命令提示行,输入:F:\>sn -k App.key (在F盘下生成App.key密钥文件)。
把App.key复制到项目根目录里面,打开项目,修改 AssemblyInfo.cs。加入:
[assembly: AssemblyDelaySign(false)] 不延迟签名 , 若为 true 则延迟签名
[assembly: AssemblyKeyFile("App.key")] //密钥文件 或者在项目右击-属性-签名里面指定
编译解决方案,到现在我们的强命名程序集已经生成了。
接下来部署到 GAC 中:运行Visual Studio命令提示行,输入:gacutil /i 程序所在的绝对路径,例如:C:\>gacutil /i F:\App\App.dll
2,混淆
Dotfuscator( Visual Studio 工具箱中)混淆方法:
1.创建新工程;
2.选择要混淆的dll、exe文件;
3.在属性里选择Library属性(很重要,因为我这里要混淆的是dll文件,如果不选中,混淆后将不能被正确调用!),如下图所示:
4.选择bulid标签,点击bulid按钮进行混淆。
我们也可以选择其它标签进行加密字符串、增加水印等操作,我这里加密工作用另外的方法,所以没有选择操作。
OK,混淆完成后,我们可以用Reflector.exe来反编译下混淆后的dll文件,可以对比源码看下效果。
3,加密
接下来我们继续对混淆过的dll文件进行加密处理,进一步保护dll文件。
我使用的加密工具是MaxtoCode。
打开软件后,切换到中文,可以看到非常简单,添加上dll文件后,直接点击执行加密就可以。其他选项比如:加密字符串、强名称等都很简单,大家一试就知道,而且MaxtoCode的帮助做的非常友好,一看就会使用。
加密后的dll文件比先前大了一倍,用Reflector.exe反编译后,发现dll文件加密的更彻底,因为主体函数内容都隐藏了。
通过以上三步,使您的dll文件可免于一般人的破解,当然,不可能绝对防止被破解。
???企企csvcsvcsvcsvcsvcsv
Copyright © 启程