关于Dotfuscator,VS自带了一个社区版的源代码保护工具,不过它只有基本的混淆命名的功能。专业版功能很多,可以混淆流程,密字符串,加入水印,程序签名等。
工具/原料
- Dotfuscator Professional Edition 4.9
方法/步骤
-
登录之后的界面
-
INPUT 选项里选择你需要混淆加密的 DLL、EXE文件
-
把 Disable String Encryption 设为 NO,即启用字符串加密;检查 Disable Control flow、Dsiable Renaming 也为 NO,即保证控制流和混淆功能打开,其他默认
-
Rename 选项勾选“use enhanced overload induction”(使用增强模式),注意:不要勾选下方的“ Do not suppress on serializable types”,即序列化类型的变量不加密,否则编译后可能异常; “Renaming Scheme” 选择“Unprintable”(不可打印字符,即乱码),也可以选择其他如小写字母、大写字符、数字的方式
-
String Encryption 选项 include里勾选需要字符串加密的工程文件EXE、DLL等,点击Build,之后就可以啦:
-
在混淆的时候报错了,错误描述大致如下:
Could not find a compatible version of ildasm to run on assembly C:\xxx.dll This assembly was originally built with .NET Framework v4.0.30319
要混淆不同的.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