使用 ConfuserEx 代码混淆工具保护你的.NET 应用程序
前言
.NET 应用如何防止被反编译?这个对于我们.NET 开发而言是一个值得关注和重视的问题,防止应用程序被反编译的手段有很多本文我们主要讲讲如何使用 ConfuserEx .NET 开源免费的代码混淆工具保护你的.NET 应用程序。
ConfuserEx .NET 混淆工具介绍
ConfuserEx 是一个功能强大且广泛使用的.NET 代码混淆工具。它支持多种混淆技术,包括控制流混淆、字符串加密、资源加密等。它具有灵活的配置选项,可以根据不同的需求进行定制。
注意注意:不足的是目前只支持.NET Framework 2.0/3.0/3.5/4.0/4.5/4.6/4.7/4.8,不支持.NET Core 代码混淆,本章.NET 版本代码示例使用的是.NET Fx4.7.2。
三款免费的.NET 混淆工具推荐
需要支持.NET Core 代码混淆的工具可以看下面这篇文章中介绍的几款免费工具。
https://mp.weixin.qq.com/s/hXGRdQjC7NXiGwq84KbEnA
.NET 反编译相关的文章
ConfuserEx .NET 混淆工具安装
GitHub 开源地址:https://github.com/mkaring/ConfuserEx
![](https://static001.geekbang.org/infoq/a1/a1a1097478422f5f351cb7c74a59c3f5.png)
ConfuserEx-GUI.zip 包解压即可使用:
![](https://static001.geekbang.org/infoq/9d/9d68160cbd82a3b3f820f992bbb563ae.png)
![](https://static001.geekbang.org/infoq/22/22b173d0ebc4e09a7d92fe225c5357bd.png)
使用 ConfuserEx 工具混淆.NET Fx .dll 文件
添加需要混淆的.dll 文件
将待混淆的.dll 文件拖拽进中间方框区域(Drag input modules here),如下图所示:
![](https://static001.geekbang.org/infoq/80/8031a480a2a92524c2e530b1b6bb2fe0.png)
设置混淆规则
选择 Settings 项,添加混淆规则,如下图所示:
![](https://static001.geekbang.org/infoq/49/49963090853aac2585a5c88a67364133.png)
设置混淆规则:Protections 选择 anti ildasm,应该是防止 IL 反编译。因为 Ildasm.exe 是微软提供的.NET 的 IL 反编译器。
![](https://static001.geekbang.org/infoq/d5/d5d69dbaa0df2c947e45a02685549f7d.png)
选择 Proect!选项开始混淆
点击【Protect!】,就开始混淆了,Finished 代表混淆完成并成功。
![](https://static001.geekbang.org/infoq/a2/a2b29fc724685f03bfa9937ec6d370af.png)
混淆成功保存的文件目录:
![](https://static001.geekbang.org/infoq/cf/cf9cbecb933ab7da3996c73d3645835a.png)
混淆前后反编译代码对比
混淆之前反编译结果:
![](https://static001.geekbang.org/infoq/86/866a234235438c472d200dfca73570fd.png)
混淆之后反编译结果:
一、用 ILSpy 无法打开:
![](https://static001.geekbang.org/infoq/ba/ba4c929f421684ab1de9baa7637f5c27.png)
二、用.NET Reflector 反编译结果:
![](https://static001.geekbang.org/infoq/9f/9fe51447608c41858d038fd1421dcfd6.png)
使用 ConfuserEx 工具混淆.NET Fx 混淆.exe 文件
添加需要混淆的.exe 文件
![](https://static001.geekbang.org/infoq/bc/bc18fd9c8f0193e4dc5a477329ef6d8a.png)
选择 Settings 选项卡,添加混淆规则
注意:这里与.dll 文件设置混淆规则不一样,需要要设置 Packer,压缩打包,且不需要编辑规则。
![](https://static001.geekbang.org/infoq/b5/b58816f7361d640efe58a2c83285502a.png)
选择 Proect!选项开始混淆
点击【Protect!】,就开始混淆了,Finished 代表混淆完成并成功。
![](https://static001.geekbang.org/infoq/79/79b0149bbb508bc67ff274f3ea6ba288.png)
ILSpy 查看混淆前后的.exe 文件对比
混淆之前:
![](https://static001.geekbang.org/infoq/dc/dc7f889b0f1ca529c2a05c8b0360fdb6.png)
混淆之后:
![](https://static001.geekbang.org/infoq/03/039d531e58d7fe5451b8a3c1c25d3f27.png)
运行混淆后的.exe 文件
![](https://static001.geekbang.org/infoq/1c/1c0addb7b82bc82142679daf1cf68218.png)
![](https://static001.geekbang.org/infoq/5b/5b9a6b44ba3edd032b1dc40e1063401c.png)
文章转载自:追逐时光者
评论