代码混淆工具 对比
C#的代码辛苦写出来之后,一个反射工具,就可以完全显露出来。
当然,在做项目时,这个功能还不错。因为我就曾在一个项目上使用C#,没有进行任何混淆。结果在项目二年多之后,需要做一些调整,自己保存的源代码丢失了。当时也吓了一跳,可是想到反射工具,赶快拿出来用一下。虽然在反射出来会出现一些错误,但毕竟大部分代码也都弄出来了。
这是在项目上,还有好处的,可是,试想一个产品,被别人给反射了,会是怎么样的一个情况,不说他去照搬功能,就是注册、加密那部分都会被轻易拿到。这可不是什么一个好主意。
于是,必须要使用代码混淆器。
这些混淆器大多是需要注意的,使用效果各不相同。普通的代码混淆器只是把私有字段和变量转换成随机码,如果是小程序,还可以猜一猜,如果是比较大的程序,猜起来可就不会那容易了。高级一点的是混淆成不可阅读的字符,这样的混淆后的代码干脆就比机器码还难懂,基本上是翻译不出来了。
但这些代码混淆器都有一定的风险,即混淆后的代码实然无法正常调用了。
而我一直用.NET Reactor,这个非常小巧,免安装,而且不需要注册。他只是将代码换成随机码,但是混淆后的代码都能正常使用。
但是有一点需要注意:凡是需要序列化成二进制的代码,是不能用混淆器的。混淆后的代码将不能正常序列化!
共享一下这个混淆器:
http://files.cnblogs.com/ghost79/DotNETReactor.rar
试用结果:部分代码无法正常被调用。
ILProtector由vgrsoft.com积极开发和维护。ILProtector首先开始作为免费软件,专注于保护反向工程的.Net代码。现在它的最新版本是付费软件(有关授权的详细信息在这里),显然还是有更多的保护选项的伟大的软件。但我们仍然很幸运,因为我们可以自由使用旧版本。这个软件的另一个好处是它提供了命令行界面(CLI),所以我们可以很容易地将它集成到第三方工具中,就像我们将在Visual Studio中使用它一样。
以下是我们可以使用ILProtector保护我们的.Net软件的一些方法
注意:请在继续之前创建软件的备份。
1.
打开ILProtector
2.
点击+图标选择您的软件
3.
4.
现在点击属性图标打开属性。这里你可以改变设置,如果你想嵌入保护DLL到你的软件或保持它们与其他设置分开。点击保存
5.
7 .现在回到主界面,点击Process按钮保护软件。这将生成您的软件,防止知道反编译器,如IL DASM,.NET反射器,ILSpy,dotPeek等
8.
1. 开始 - >输入cmd - >打开cmd
2. 当cmd打开时,键入folloing命令(使用你的命令更改输出文件夹和exe路径)
ILProtector.exe -out =“c:\ ouput文件夹”-nogui -embed-dlls“c:\ myprogram.exe”
5.打回车键在键盘上,这会产生软件的保护版本。
1. 在Visual Studio中打开您的项目。
2. 打开项目 - >属性 - >生成事件
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自身受到保护!
持续更新中....