Native AOT - 不安装运行时运行.NET程序
2023-2-10 09:4:51 Author: dotNet安全矩阵(查看原文) 阅读量:11 收藏

最新的.NET 7 微软给我们带来了 Native AOT 发布模式。是的你没看错,通过该技术我们的 .NET 程序会直接编译为 Native 代码而不再是 IL ,程序运行的时候直接就是机器码,不再需要 JIT 编译。通过 AOT 技术,我们的程序启动会变的非常快并且使用更少的内存,并且运行的时候不需要在机器上安装任何运行时。这项技术有两个亮点,第一:生成的本机代码和传统的二进制文件一样不需要.NET运行时支持即可运行,以后用.net 7写的工具可以运行在很多老旧的windows系统版本上,第二:dnspy等反编译工具无法逆向这样的exe

.NET 7 Native AOT技术编译一个控制台程序,关键需要在发布时配置csproj文件<PropertyGroup>标签内增加

<Project Sdk="Microsoft.NET.Sdk">    <PropertyGroup>        <OutputType>Exe</OutputType>        <TargetFramework>net7.0</TargetFramework>        <ImplicitUsings>enable</ImplicitUsings>        <Nullable>enable</Nullable>    <!--aot发布-->        <PublishAot>true</PublishAot>      </PropertyGroup></Project>

发布生成的ConsoleApp1.exe文件不能被dnspy反编译

.NET 7 AOT 发布的程序会有一些限制,我们编写的时候需要注意

No dynamic loading (for example, Assembly.LoadFile)No runtime code generation (for example, System.Reflection.Emit)No C++/CLINo built-in COM (only applies to Windows)Requires trimming, which has limitationsImplies compilation into a single file, which has known incompatibilitiesApps include required runtime libraries (just like self-contained apps, increasing their size, as compared to framework-dependent apps)

为了更好地应对基于.NET技术栈的风险识别和未知威胁,dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展经过运营团队成员商议一致同意给到师傅们最大优惠力度,只需99元就可以加入我们。

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等,后续还会倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

dotNet安全矩阵知识星球 — 聚焦于微软.NET安全技术,关注基于.NET衍生出的各种红蓝攻防对抗技术、分享内容不限于 .NET代码审计、 最新的.NET漏洞分析、反序列化漏洞研究、有趣的.NET安全Trick、.NET开源软件分享、. NET生态等热点话题、还可以获得阿里、蚂蚁、字节等大厂内推的机会.


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247487205&idx=1&sn=6d2e880ceedf26174c2b881d8fa0d3e8&chksm=fa5aa008cd2d291eb32eca91aa5b2f6e2b4dcc212097e61fafffcdab02489918920affc6207e#rd
如有侵权请联系:admin#unsafe.sh