C#程序发布时,一定要好好地保护,不然你会后悔的

上次分享一个C#混淆开源项目《一个对C#程序混淆加密,小巧但够用的小工具》,发现大家都非常感兴趣,但也发现很多人,不了解为什么没有混淆,就会很容易被破解。

所以今天给大家做一个教程:如何通过工具来反编译代码、修改代码来实现软件的篡改,并实现通过.NETReactor进行加密混淆

一、演示项目

先创建一个演示项目,方便后续破解和加密使用。

1.1、创建控制台项目:ConsoleAppRemo

C#程序发布时,一定要好好地保护,不然你会后悔的_第1张图片

1.2、选择框架版本,演示用的是.Net6.0

C#程序发布时,一定要好好地保护,不然你会后悔的_第2张图片

1.3、实现一个功能:2个数字相加

// See https://aka.ms/new-console-template for more information
int num1 = 3;
int num2 = 4;
Console.Write("num1 + num 2 = ");
Console.WriteLine(num1 + num2);
Console.Read();

1.4、运行效果

C#程序发布时,一定要好好地保护,不然你会后悔的_第3张图片

二、采用dnSpy破解

下面一起来看看,通过工具对演示项目,进行反编译和修改代码。

2.1、安装dnSpy

dnSpy是Github开源项目,我们到Github下载就行
C#程序发布时,一定要好好地保护,不然你会后悔的_第4张图片

工具界面:
C#程序发布时,一定要好好地保护,不然你会后悔的_第5张图片

2.2 、打开dll文件

通过菜单:文件,打开ConsoleAppRemo.dll文件。

C#程序发布时,一定要好好地保护,不然你会后悔的_第6张图片

2.3、查看代码

通过反编译的结果看,代码完全暴露出来了。

C#程序发布时,一定要好好地保护,不然你会后悔的_第7张图片

2.4、修改代码

在窗口鼠标右键=》编辑IL指令,打开指令编辑窗口

C#程序发布时,一定要好好地保护,不然你会后悔的_第8张图片

编辑窗口

C#程序发布时,一定要好好地保护,不然你会后悔的_第9张图片

2.5、修改变量把数字改为5,并保存

C#程序发布时,一定要好好地保护,不然你会后悔的_第10张图片

保存效果如下:

C#程序发布时,一定要好好地保护,不然你会后悔的_第11张图片

2.6、导出dll

选择菜单上的保存按钮,模块类型选择dll,并点击确定,覆盖更新dll。

C#程序发布时,一定要好好地保护,不然你会后悔的_第12张图片

通过修改时间,我们就可以看到dll已经被更新了

C#程序发布时,一定要好好地保护,不然你会后悔的_第13张图片

2.7、运行效果

点击exe运行,运行结果已经改变。

C#程序发布时,一定要好好地保护,不然你会后悔的_第14张图片

到这里,可以说是,我们完完全全地破解了程序了。相信大家看到这,就会发现程序发布时,为什么要进行加密和混淆了。

下面我们一起看看,通过.NETReactor加密情况,以及能否破解。

三、.NET Reactor加密

3.1、下载安装

安装过程比较简单,这里就不展示了。

C#程序发布时,一定要好好地保护,不然你会后悔的_第15张图片

下载地址:https://www.eziriz.com/reactor_download.htm

3.2、选择待加密的dll文件

选择需要加密的dll文件

C#程序发布时,一定要好好地保护,不然你会后悔的_第16张图片

3.3、执行加密

点击Protect按钮,进行加密。

C#程序发布时,一定要好好地保护,不然你会后悔的_第17张图片

3.4、加密成功

工具会自动运行,打印加密的情况(工具是收费的,可免费试用14天)。

C#程序发布时,一定要好好地保护,不然你会后悔的_第18张图片

执行成功后,工具会创建文件夹,并把加密的文件放入

C#程序发布时,一定要好好地保护,不然你会后悔的_第19张图片

3.5、检验加密后,我们系统执行情况

拷贝exe文件到Secure文件夹里,并运行,我们的系统可以正常运行

C#程序发布时,一定要好好地保护,不然你会后悔的_第20张图片

3.6、dnSpy查看反编译情况

通过反编译工具打开加密后的dll,我们会发现文件名、代码都已经被混淆、加密。

C#程序发布时,一定要好好地保护,不然你会后悔的_第21张图片

总结

通过加密后,还是能比较好地起到保护的效果。通过工具进行加密混淆,主要的目的是增加阅读难度、增加陷阱让破译需要更多的时间与成本。

另外市面上加密工具很多,下面梳理几个比较常用的:

  • ConfuserEx:免费开源的,比较好,只支持.NET Framework,较久未更新。

  • .NET Reactor:收费,比较好,一直有更新。

  • Dotfuscator:收费,比较难用,中间还会出错。

  • Smart Assembly:收费,只有代码混淆,效果不好。

今天就跟大家,分享到这边了,希望对您有帮助**,欢迎点赞关注转发。**

- End -

推荐阅读

  • 一个界面美观、支持团购、拼团、直播、秒杀等营销功能商城系统

  • 盘点5个C#实用的Word、PPT、Excel、Mail第三方库

  • 盘点5个.Net开发的服务器进程监控、性能监控、任务调度的开源项目

  • 盘点10个.NetCore实用的开源框架项目

  • .Net Core导入千万级数据至Mysql

你可能感兴趣的:(.NetCore,c#,开发语言,加密混淆)