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

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

e0fe3c97421318f810911db674a8ddc9.png

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

c3ecf0352c3f95e3757bf42a2d9678a1.png

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

2a3c47fc0c569f887a749ff7a55effb9.png

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

82b0a8af8a56470b6d7e44e1b538236e.png

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

bae145a2001ec8b846484c2a16d19b33.png

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

bd3d6ca61bf076ee6c35552a216cde2d.png

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

f9109d6af5327fb80c46570c66986138.png

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

b2018702c25a43fe8b764f140a15cf97.png

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

fb559c7919900a4dc776856ff7897a99.png

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

f352af47e22f7a192b31201d918c2330.png

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

394ddd24135ec6d8a28009c64e8fbfe8.png

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

73f8f60a07b8d5691572f27ee661a552.png

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

b1a0f482825a0cd5428ab5864114a26e.png

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值