网上百度一下Dotfuscator Professional Edition 4.96 下载,会找到很多链接链接地址。
安装后,首先对应设置一下
把DisableStringEncryption设为NO,
1:即启用字符串加密;检查DisableControlflow、DsiableRenaming也为NO,即保证控制流和混淆功能打开,其他默认。如下图:
2:Rename选项勾选“useenhancedoverloadinduction”(使用增强模式),注意:不要勾选下方的“Donotsuppressonserializabletypes”,即序列化类型的变量不加密,否则编译后可能异常;“RenamingScheme”选择“Unprintable”(不可打印字符,即乱码),也可以选择其他如小写字母、大写字符、数字的方式,如下图:
3:String Encryption选项include里勾选需要字符串加密的工程文件EXE、DLL等,点击Build,之后就可以啦:
点击这个播放按钮即可生成:
报错了, 报错信息如下:
- Could not find a compatible version of ildasm to run on assembly F:\xxx\bin\gumuweb.dll. This assembly was originally built with .NET Framework v4.0.30319.
- Build Error.
这个可能是你的.Net Framework 可能在4.0或者以上,所以你要配置一下相关信息
要混淆不同的.Net Framework版本需要在Settings,Project Properties,添加配置如下。
其中ILASM和ILDASM后面必需要加上对应版本的版本号,然后文件引用对应的版本文件即可。
ILASM_v4.0.30319
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe
ILDASM_v4.0.30319
C:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\ildasm.exe
正常大部分用户的对应信息都是在以上位置,我以前电脑安装的是vs2015也是在以上位置,另外一台电脑安装的vs2019,以上位置就不对了,所以你对应去C:\Program Files (x86)\Microsoft SDKs\Windows\这个位置找下,我找到了,位置如下:
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe
这个时候头头一晕,浪费了小半个小时,以为版本不一样了,文件名可以更改一下成对应的版本,结果报错了,最后不断尝试和百度,最后发现这个后面的版本号必须跟ILASM_的版本号对应,不能改。
记住,记住、记住、Name不要改就用上面的,你后面对应的文件版本不一样没有关系。
终于成功了!
被混淆的文件同级会有一个Dotfuscated这样的文件夹,点击进去就能发现已经被混淆的dll文件。
加密后的效果 如下:
有兴趣的朋友可以去看下vs2019自带的跟网上下载的混淆区别