所需工具:


请自行百度下载如下工具:

ConfuserEx、UnConfuserEx、Fixer、ConfuserExStringDecryptor、ConfuserExSwitchKiller、de4dot、ILSpy

 

准备演示项目:


先编写一个小程序(循环输出了一段GUID),并运行,如图:

iOS培训,Swift培训,苹果开发培训,移动开发培训

 

使用ConfuseEx进行混淆:


1.设置目标目录、输出目录及添加要混淆的EXE或DLL,如图。

iOS培训,Swift培训,苹果开发培训,移动开发培训 

2.设置混淆参数,如图:

iOS培训,Swift培训,苹果开发培训,移动开发培训

3.执行混淆,如图:

iOS培训,Swift培训,苹果开发培训,移动开发培训  

4.使用ILSpy查看混淆过后的程序,如图:

iOS培训,Swift培训,苹果开发培训,移动开发培训

可以发现,这时是不能反编译的。

 

ConfuseEx脱壳演示:



1.使用unConfuserEx工具,如图:

iOS培训,Swift培训,苹果开发培训,移动开发培训

2.使用Fixer工具,如图:

iOS培训,Swift培训,苹果开发培训,移动开发培训

iOS培训,Swift培训,苹果开发培训,移动开发培训

3.使用ConfuseExStringDecryptor工具,如图:

iOS培训,Swift培训,苹果开发培训,移动开发培训

iOS培训,Swift培训,苹果开发培训,移动开发培训

4.使用ConfuserEX Switch Killer工具,如图:

iOS培训,Swift培训,苹果开发培训,移动开发培训

iOS培训,Swift培训,苹果开发培训,移动开发培训


5.使用de4dot工具,如图:

iOS培训,Swift培训,苹果开发培训,移动开发培训


6.使用ILSpy查看脱壳后的结果,如图:

iOS培训,Swift培训,苹果开发培训,移动开发培训

 

最后结论


 写到这,可以发现这篇文章是一个矛盾的话题。但是就没有好办法来保护源代码不被轻易破解了吗?

 答案是有的,可参考文章NET DLL 保护措施详解(非混淆加密加壳)

 也可以从www.dllprotect.com下载DEMO验证保护效果。

http://www.cnblogs.com/dengxi/p/7069452.html