天天看点

.NET代码混淆

本文不提代码开源,只谈代码混淆方法。 

本文使用的代码混淆器是ConfuserEx,网上可以下载的到。参考博文:开源.net 混淆器ConfuserEx介绍 

.Net平台开发的应用程序,大多编译之后,在bin/Debug目录下生成很多.dll文件和一个可执行文件.exe。本文就是对这些.dll文件和.exe文件进行混淆,防止反编译。

ConfuserEx混淆.dll文件和.exe文件方法不尽相同。方法如下: 

首先,下载ConfuserEx软件,打开后如下图所示: 

.NET代码混淆

(一)混淆.dll文件 

比如混淆BLL.dll和DAL.dll文件(这是项目中经常编译出来的文件,它们其实是两个类库)

1.混淆.dll文件 

将待混淆的.dll文件(单个或多个)拖拽进中间方框区域,如下图所示: 

.NET代码混淆

2.选择Settings项,添加混淆规则,如下图: 

.NET代码混淆

3.设置混淆规则 

Protections选择anti ildasm,应该是防止IL反编译。因为Ildasm.exe是微软提供的.NET的IL反编译器。 

.NET代码混淆

所有的.dll文件都设置好混淆规则后,就可以进行下一步了。

4.选择Proect!选项 

点击【Protect!】,就开始混淆了。Finished代表混淆完成并成功。 

.NET代码混淆

以上混淆.dll文件就完成了。 

用ILSpy看一下混淆结果(ILSpy是一个反编译工具) 

.NET代码混淆

用.NET Reflector反编译结果: 

.NET代码混淆

(二)混淆.exe文件 

用ConfuserEx工具混淆.exe与混淆.dll文件唯一的不同在设置项(Settings)那里。 

1.将待混淆的.exe文件拖拽进中间方框区域,然后选择Settings选项卡,添加混淆规则。 

这里与.dll文件设置混淆规则不同,要设置Packer项,压缩打包,且不需要编辑规则! 

.NET代码混淆

2.选择Protect!选项卡,点击【Protect!】

.NET代码混淆

以上混淆.exe文件就完成了。还是通过ILSpy看一下混淆结果

ILSpy反编译结果: 

.NET代码混淆

通过ConfuserEx代码工具,可以很好的混淆.dll文件和.exe文件,实现代码保护。

继续阅读