请教.net4.0以上的程序可用的混淆和加壳工具和基本概念

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教.net4.0以上的程序可用的混淆和加壳工具和基本概念相关的知识,希望对你有一定的参考价值。

参考技术A 作为程序员,你是应该自己读一下自己的标题是多么没有逻辑和拗口了。。
1、截止目前(16年4月23日),大版本有4.0
4.5
4.6
.NET4.0及以上是目前比较新、也是开发中比较常用的版本,他们各个版本间不能混用。
即,你用4.5开发的程序,一定要在.NET4.5的环境下运行,各个大版本不兼容。
还有一种版本,作为大版本的更新而发行,如4.6.1
4.6.2,这种版本是和4.6兼容的。
2、加壳(Shell),其实就是根据自己的加密规则,压缩了一下程序。
每次你运行程序的时候,会先解压,然后再运行。原理很简单。
常见的穿山甲,等软件,原理都大同小异。
一般加壳的目的有两个,1是避免反编译,2是限制用户,比如需要注册等。

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

混淆演示


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

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

技术分享

 

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

一,运行dotfuscator.exe

技术分享

二,添加ConsoleApplication1.exe

技术分享

技术分享

技术分享

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

技术分享

技术分享

四,开始混淆。

技术分享

五,查看混淆结果。

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

技术分享

技术分享

 

 

 

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

 

破解演示


 

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

技术分享

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

技术分享

技术分享

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

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

 

最后结论


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

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

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

 


以上是关于请教.net4.0以上的程序可用的混淆和加壳工具和基本概念的主要内容,如果未能解决你的问题,请参考以下文章

正确支持WPF的混淆器

易语言程序加壳软件哪个好

IDA学习笔记-代码混淆和软件保护方法

dotnet reactor 是加壳吗

加壳软件和不加壳软件有何区别?

安卓 dex 通用脱壳技术研究