【.NET8】nativeAOT初体验——杜绝反编译神器

前言:VS2022需要更新到17.8.0版本或以上,并且开发环境需要有.NET 8 SDK,可以去微软官方下载。

为了效果差异,我先创建一个.net 6环境的webapi项目

然后创建一个类库项目,并输出一条信息。这个类库项目会被.net 6项目和后面的.net 8项目引用。

在.net 6的项目里面引用类库项目,并调用输出。

.net 6程序发布以后,并在根目录下运行。发布以后,可以看到,目标文件夹里面有很多被引用的dll文件。而反编译工具基本上也都是根据dll文件来进行反编译的。

接着,咱创建一个.net 8的webapi aot程序,记得是带有AOT标记的。

该项目只有一个选项——.NET 8,说明暂时只有.net 8才支持AOT

使用这种创建的程序,多了一个http后缀的文件,可以自行研究它的功能。

在.net 8程序里面,也引用同一个类库项目,并和上面一样做个输出。

对程序进行编译和发布。发布时候需要选择目标平台,例如win-x64,否则可能会报错。当前AOT只支持x64架构。

发布以后的目录比较清爽,没有任何dll文件,就一个exe文件,可以避免被人拿dll文件去反编译了。并且双击可执行程序,可以正常运行。

针对上面的.net 6程序,为了更好地对比,我也换成同样的win-x64配置环境发布,然后再重新发布,依然可以看见发布以后文件特别多:

最后,AOT的另一个功能就是可以不依赖.net框架环境,也可以运行。所以我把它移植到另一台电脑上,另一台电脑并没有安装.net 8环境,双击可执行程序,也可以顺利运行,并且不会提示缺少.net 依赖:

有了AOT神器,就不担心被轻松反编译而导致代码泄露了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值