关于软件的代码混淆的产品对比与分析

代码混淆工具 对比

 

一、.NET Reactor

 

C#的代码辛苦写出来之后,一个反射工具,就可以完全显露出来。

当然,在做项目时,这个功能还不错。因为我就曾在一个项目上使用C#,没有进行任何混淆。结果在项目二年多之后,需要做一些调整,自己保存的源代码丢失了。当时也吓了一跳,可是想到反射工具,赶快拿出来用一下。虽然在反射出来会出现一些错误,但毕竟大部分代码也都弄出来了。

这是在项目上,还有好处的,可是,试想一个产品,被别人给反射了,会是怎么样的一个情况,不说他去照搬功能,就是注册、加密那部分都会被轻易拿到。这可不是什么一个好主意。

于是,必须要使用代码混淆器。

这些混淆器大多是需要注意的,使用效果各不相同。普通的代码混淆器只是把私有字段和变量转换成随机码,如果是小程序,还可以猜一猜,如果是比较大的程序,猜起来可就不会那容易了。高级一点的是混淆成不可阅读的字符,这样的混淆后的代码干脆就比机器码还难懂,基本上是翻译不出来了。

但这些代码混淆器都有一定的风险,即混淆后的代码实然无法正常调用了。

而我一直用.NET Reactor,这个非常小巧,免安装,而且不需要注册。他只是将代码换成随机码,但是混淆后的代码都能正常使用。

但是有一点需要注意:凡是需要序列化成二进制的代码,是不能用混淆器的。混淆后的代码将不能正常序列化!

共享一下这个混淆器:

http://files.cnblogs.com/ghost79/DotNETReactor.rar

 

试用结果:部分代码无法正常被调用。

 

二、ILProtector 

ILProtector由vgrsoft.com积极开发和维护。ILProtector首先开始作为免费软件,专注于保护反向工程的.Net代码。现在它的最新版本是付费软件(有关授权的详细信息在这里),显然还是有更多的保护选项的伟大的软件。但我们仍然很幸运,因为我们可以自由使用旧版本。这个软件的另一个好处是它提供了命令行界面(CLI),所以我们可以很容易地将它集成到第三方工具中,就像我们将在Visual Studio中使用它一样。

以下是我们可以使用ILProtector保护我们的.Net软件的一些方法

注意:请在继续之前创建软件的备份。

通过使用ILProtector的主界面

1. 

打开ILProtector

2.

点击+图标选择您的软件

3. 关于软件的代码混淆的产品对比与分析_第1张图片

4. 

现在点击属性图标打开属性。这里你可以改变设置,如果你想嵌入保护DLL到你的软件或保持它们与其他设置分开。点击保存

5. 

 关于软件的代码混淆的产品对比与分析_第2张图片

 

关于软件的代码混淆的产品对比与分析_第3张图片 

7 .现在回到主界面,点击Process按钮保护软件。这将生成您的软件,防止知道反编译器,如IL DASM,.NET反射器,ILSpy,dotPeek等

8. 

通过在CMD中使用ILProtector

1. 开始 - >输入cmd - >打开cmd

2. cmd打开时,键入folloing命令(使用你的命令更改输出文件夹exe路径

3. 

ILProtector.exe -out =“c:\ ouput文件夹”-nogui -embed-dlls“c:\ myprogram.exe”

4. 

关于软件的代码混淆的产品对比与分析_第4张图片 

5.回车键在键盘上,这会产生软件的保护版本。

 

通过在Visual Studio中使用生成事件

1. Visual Studio中打开您的项目。

2. 打开项目 - >属性 - >生成事件 

关于软件的代码混淆的产品对比与分析_第5张图片 

3.Post Build事件中输入以下命令。(用你的所有路径和exe名称替换)

ILProtector -out =“$(SolutionDir)My Software \ bin \ Release”-nogui -embed-dlls“$(SolutionDir)My Software \ bin \ Release \ My Software.exe”

注意:您应该在Enviromment变量中包含ILProtector的目录路径,在我的情况下它是C:\ Program Files(x86)\ VgrSoft \ ILProtector

4. 特点

 

- 软件代码保护
- 高性能
- 受保护程序集全面反射支持
- 支持.NET Framework 2.0 / 3.0 / 3.5 / 4.0 / 4.5 
- 支持Windows x32 / x64 
- 不使用未公开的功能

ILProtector自身受到保护!

 

持续更新中....

你可能感兴趣的:(代码混淆)