C#程序发布后必须加密混淆?Native AOT 能否解决反编译问题?

2024-11-22
来源:网络整理

我是 Fun,一位拥有10年.Net开发经验的资深程序员。点击右上角“关注”,每天与您分享开源项目和编程知识。

上次给大家分享了《C#程序反编译和篡改教程》,《当C#程序发布后,一定要好好保护它,否则你会后悔的。》教程与破解。根据这个教程,我们都知道了C#程序,发布后必须进行加密混淆,否则相当于直接暴露源代码。

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

1、示范工程

首先创建一个demo工程,方便后续验证是否可以反编译。

1.1.创建一个控制台项目:

项目名称:

1.2 选择框架.Net 7

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

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

1.4 项目修改为Aot发布方式

反编译小程序后怎么开发_反编译入门_反编译流程

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

true

1.5 运行效果

2.采用与反编译

2.1 使用win-x64发布

2.2 已发表的文件

从释放的文件中我们可以看到exe接近3M。这是因为AOT通过ilc.exe加载托管DLL,然后将DLL编译成.Obj文件,因此exe文件极大。

2.3 反编译结果

反编译:

反编译:

通过以上反编译工具我们可以看到,使用Aot发布可以有效解决反编译问题。

分享