前言
首先,对于这种托管的代码。没有100%的保护措施,甚至50%概率上的保护措施都没有。在二进制层面尚且没有,可以针对性的对于指令集(Risc-v/Arm64/x64/Loongarch64)反汇编逆向重构。对于托管而言更是没有的。能做的只能是有限度的保护。
概括
20年前,.Net刚诞生的时候有个笑话。有人嘲讽微软做托管代码,是为了方便别人破解。事实证明,托管确实比非托管更容易破解和篡改。MSIL遵循了一整套的ECMA-335的规范,对于这个规范了如指掌的程序开发人员来说,托管代码就像纸糊的一样,戳哪儿哪儿就破。
但是对于现状来说,大部分码农都是在底层拼命的Curd。无暇或者没有能力去研究更高深的技术,所以一般只需要在ECMA-335的规范上面做一点点手脚就可以防住大部分人。
如果再在Roslyn/CLR/JIT/ILC/BootStrap/Obj/Exe上面做点点手脚,那么防住99%的Curd工程师不在话下,除非你的软件有极大的价值值得去破解和逆向。否则基本上无较大问题。
目前市面上流行的.Net加壳软件大致有如下:
Dotfuscator:Visual Stuido自带的,你可以自己去安装使用。安全性低级。
dotNET Reactor:官方宣传:无与伦比的.NET代码保护系统,可完全阻止任何人反编译您的代码。个人认为的安全性中下。
ILProtector:可保护您的 .NET 代码免受逆向工程、反编译和修改。安全性中级。
Axprotect:老外的商用产品,可以保护托管和非托管。安全中级。
EXECryptor:高强度加壳的软件,安全性中上级。
Xenocode Fox:反编译工具,混淆工具,安全性低级。
Vmproject:能够混淆和加密JIT,CLR等内存级的工具,而且它混淆之后的代码执行在非标准体系结构的虚拟机上,非常牛掰。安全性高级。
以上是托管和非托管的加密工具,工具各异,可自行参考。