友情链接: 互动百科 CSDN.NET 百度音乐 和讯理财 世界杯吧 拉手网

Dotfuscator的使用说明(vs.net代码混淆器)

Dotfuscator的使用说明(vs.net代码混淆器)
由于.NET体系结构的特殊性,为了保护源码,混淆器被提到了一个很高的地位,Visual Studio 2003就自带了一个混淆器--Dotfuscator Community Edition。
Dotfuscator Professional Edition能够提供了流程模糊、字符串加密、冗余属性的裁剪等;但是Dotfuscator Community Edition,作为一个免费的版本,功能是在世乏善可陈,除了名称的变化之外,好像什么都不能干了。不过有聊胜于无,穿着内衣上街总比什么都不穿要好点。
 
1、简单的介绍一下使用方法。
Dotfuscator的工作原理似乎是先将一个组件反编译成为中间代码(il),按照规则修改其中的内容,比如名称变化,然后再重新编译成为克执行的组件。所以最简单的使用方法就是在Visual Studio 2003的集成环境中运行。工程编译完毕后,通过Tools->Dotfuscator Community Edition启动Dotfuscator,如下界面:
其中“Controil Flow”、“String Encryption”和“Removal”标签Community版本是禁止的。所以用法也很简单在Trigger中选择需要混淆的组件,指定输出目录,构造就可以了。
 
a) 选择混淆的组件
单击Browse按钮选择一个dll或者exe文件即可。
 
b) 选择目标输出的路径。
单击构造按钮就开始工作了。
 
c) 查看输出结果
切换到Output的标签,可以看到混淆所影响的变量和方法,如下图。
 
d) 一个简单的C#窗口应用的混淆结果
public class a : Form
{
      // Methods
      public a();
      private void a();
      protected override void a(bool A_0);
      private void a(object A_0, EventArgs A_1);
      private void b(object A_0, EventArgs A_1);
      [STAThread]
      private static void Main();
 
      // Fields
      private Button a;
      private Button b;
      private Container c;
}
 
private void a(object A_0, EventArgs A_1)
{
      MessageBox.Show(this, "\u8fd9\u662f\u4e00\u6bb5\u4e2d\u6587\u7684\u6d4b\u8bd5\u7a0b\u5e8f\uff01");
}
注:字符串会转换成为Unicode编码的形式,这点不错。

 
2、进一步了解
a) 在Options标签下还有几个选项,
Investigate:检查模式,只生成转换表查看影响的结果,不生成混淆后的输出文件。
Library:类库模式,在类库模式下公共类的公共属性和方法将不会被修改名称。
Quiet:安静模式,在转换过程中没有输出信息。
Verbose:详尽模式,在转化过程中输出详细的信息。
 
b) 名称修改的规则。
在图形界面的“Rename”标签里,可以手动去设定一些函数的名称不变化,还可以选择是否保留命名空间或者每个类的层次结构。
 
c) Dotfuscator的工程。
对一个或者多个.NET组件进行混淆的过程可以保存成为一个工程,工程文件就是一个XML文档,里面包含了设置的转换规则。
 
总之Dotfuscator是一个比较简单的工具(有图形界面的工具通常都不复杂),如果要求不高总能起到一些作用的。
posted on 2010-07-05 15:14  行万里路 责任 创新 执着  阅读(1895)  评论(0编辑  收藏  举报