1. 使用VS2013编译你要打包的措施,会在文件夹中的 ..\bin\Release中
2. 点击VS2013中的TOOLS -> PreEmptive Dotfuscator and Analytics :
打开的界面如下图:
3. 选择需要混淆的文件,一般只需要混淆 *.Dll 或 *.exe文件,
点击界面中的 Inputs -> Inputs框下的 + 号 -> 在你措施中的Release文件夹中选择需要混淆的文件
4. 为了便利下次混淆,建议勾上笼罩已存在的文件,如下图:
5. 然后生存文件
6. 进行混淆,点击生存按钮 右边的 绿色三角形按键 进行混淆
当现实的功效最后呈现 百分百数字时,就暗示已经混淆完毕了
7. 出格注意:
7.1. 如果运行混淆后的代码呈现以下错误,然后措施瓦解:7.1.1. 原因之一:措施缺少组件
因为混淆时只是对Release文件夹中的*.dll , *.exe进行混淆,所以可能会导致部分文件没有拷贝到最终的文件夹中,
解决的要领,,比拟Release文件夹与混淆后的文件夹,检察是否有哪些文件没有从Release中拷贝到混淆后的方针目录中
7.1.2. 原因之二:措施中存在x86, x64的区分
7.2. 混淆后措施能够运行,但有些节目中的数据没有初始化1、则需要考虑措施中是否有一些公用类没有加上public修饰符,而只是使用了默认的修饰符,导致措施不能正常初始化
总结:
Dotfuscator作为一款代码混淆的软件,具有很强的反编译成果,但使用时应注意以下几点:
1、如果你加密的dll、exe里有public类,需要被外部引用的话,那么引用这个public的相关dll、exe也要一起放到Dotfuscator Input 里,同时进行混淆加密,不然外部挪用堕落。
2、如果有public类,但是你不想照着第1点的方法做的话,可以勾选 Library 模式(input 里 展开项目,见下图),或者不选择 rename 选项,仅仅用 control flow 混淆(该种方法下会看见类名、函数名,但是看不到函数体)。
3、如果有public类,但是你也不想凭据我的第一点、第二点的要领做的话,可以在rename选项里排除这些public的类名、要领名、属性名即可:使用 rename exclude 里左侧排除项目,或 右侧 正则排除要领。
固然如果你编写的软件不涉及商业用途的话,本着开源的思想,不保举使用代码混淆器。使用代码混淆器存在必然的危害,在使用前最好做好相关代码备份。