.Net混淆器很多,大部分收费的,VS的自带的Dotfuscator免费的,但混淆太低,专业版也是收费的。
ConfuserEx这个是开源的,免费,而且混淆能力强。https://github.com/yck1509/ConfuserEx
它这个软件原先是只有命令行,现在有界面了。在Setting里Preset是预写好的混淆能力,其实无需加规则进入,指定混淆级别即可,Normal适用于大多数情况。
https://github.com/yck1509/ConfuserEx/wiki/ 查看他的文档说明。
各种保护规则 (Protection),可以自定义,但需要可能比较麻烦,需要设置模式(Rule Pattern),每个规则 https://github.com/yck1509/ConfuserEx/wiki/Expression-Functions。
我们大多数情况,无需自己设置各种规则,程序有一套预定义集合Preset。Prest级别有Min,Normal,Max,越高混淆越强,但性能越低,兼容性也越差。比如越高的混淆,增加代码流复杂度会影响性能;调用Win32API,只是用于Windows平台,Mono则会失效。
Preset各种级别(Normal,Min,Max)包含哪些保护规则,请看每个Protection的说明(https://github.com/yck1509/ConfuserEx/wiki/Anti-Dump-Protection),如下图,当我们选择Preset为Max时,将包含AntiDump规则,选择Normal的Preset,混淆时则不包含Anit Dump规则。