我是 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发布可以有效解决反编译问题。