C#程序采用AOT发布,真的可以避免被反编译?

上次跟大家分享过,C#程序反编译与篡改代码的教程《C#程序发布时,一定要好好的保护,不然你会后悔的!》,根据这个教程,我们都知道C#程序发布后必须进行加密混淆,不然就是相当于源码直接暴露

随着.Net 7的发布,Native AOT也成为亮点之一,大家都非常关注AOT能否解决被反编译的问题,今天我们就一起来看看。

一、演示项目

先创建一个演示项目,方便后续验证能否反编译。

1.1、创建控制台项目:ConsoleAppAot

C#程序采用AOT发布,真的可以避免被反编译?_第1张图片

项目名:ConsoleAppAot

C#程序采用AOT发布,真的可以避免被反编译?_第2张图片

1.2 选择框架.Net 7

C#程序采用AOT发布,真的可以避免被反编译?_第3张图片

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

// See https://aka.ms/new-console-template for more informationint 
num1 = 1;
int num2 = 2;
Console.WriteLine(num1 + num2);
Console.Read();

C#程序采用AOT发布,真的可以避免被反编译?_第4张图片

1.4 项目修改为Aot发布方式

右键项目=》编辑项目文件,添加Aot发布方式。

true

C#程序采用AOT发布,真的可以避免被反编译?_第5张图片

1.5 运行效果

图片

二、采用ILSpy、dnSpy进行反编译

2.1 采用win-x64发布

C#程序采用AOT发布,真的可以避免被反编译?_第6张图片

2.2 发布的文件

从发布后的文件,我们可以看到exe有接近3M,这是因为AOT是通过ilc.exe来加载托管的DLL,然后把这个DLL编译成.Obj文件,所以导致exe文件超大。

C#程序采用AOT发布,真的可以避免被反编译?_第7张图片

2.3 反编译结果

ILSpy反编译:

C#程序采用AOT发布,真的可以避免被反编译?_第8张图片

dnSpy反编译:

C#程序采用AOT发布,真的可以避免被反编译?_第9张图片

通过以上反编译工具查看,采用Aot发布确实能有效解决反编译的问题。

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

- End -

推荐阅读

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

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

  • 一个基于NetCore可视化编辑CMS系统

  • 推荐一个数据可视化大屏幕报表开源系统

  • 盘点10个Web开发人员必备的最佳开发工具推荐

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