使用Dotfuscator加密混淆程序以及如何脱壳反编译

时间:2023-03-08 18:00:04

混淆演示


首先介绍如何使用Dotfuscator对.net程序加密码混淆/加壳 C#或vb.net编写的应用程序或DLL。

这里随便创建了一个C#的命令行控制台程序。程序很简单,对当前的时间进行了AES的加解密并输出。

使用Dotfuscator加密混淆程序以及如何脱壳反编译

接下来使用Dotfuscator对程序进行混淆。

一,运行dotfuscator.exe

使用Dotfuscator加密混淆程序以及如何脱壳反编译

二,添加ConsoleApplication1.exe

使用Dotfuscator加密混淆程序以及如何脱壳反编译

使用Dotfuscator加密混淆程序以及如何脱壳反编译

使用Dotfuscator加密混淆程序以及如何脱壳反编译

三,对混淆选项进行一些配置

使用Dotfuscator加密混淆程序以及如何脱壳反编译

使用Dotfuscator加密混淆程序以及如何脱壳反编译

四,开始混淆。

使用Dotfuscator加密混淆程序以及如何脱壳反编译

五,查看混淆结果。

这里使用ILSPY工具,打开混淆后的程序。如图:

使用Dotfuscator加密混淆程序以及如何脱壳反编译

使用Dotfuscator加密混淆程序以及如何脱壳反编译

可以发现,代码被混淆过了。很乱。

破解演示


这里使用de4dot对刚才混淆过的程序进行脱壳。

使用Dotfuscator加密混淆程序以及如何脱壳反编译

我们再使用ILSPY来反编译这个程序看看破解的结果。

使用Dotfuscator加密混淆程序以及如何脱壳反编译

使用Dotfuscator加密混淆程序以及如何脱壳反编译

可以发现,除了函数名,其它的都成明文了。包括密钥!!!

显然这样来混淆保护没有多大作用。

最后结论


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

答案是有,有兴趣的读者可以参考作者的文章

.NET DLL 保护措施详解(非混淆加密加壳):http://www.cnblogs.com/dengxi/p/5750170.html