dotfuscator如何对.net程序进行混淆保护对于程序代码的保护,网上有很多资料,有的说混淆,有的说加密,我比较支持混淆的方法,这样可以让反编译劳工,头晕一阵子,哈哈开玩笑。对于加密如果不是不得已,我想没有必要。加密性能消耗比较大。

dotfuscator相信做程序的人很多都知道,dotfuscator与XenoCode都是代码混淆工具,做为保护代码安全的一个工具。既然说到.net的程序,那当然要扯扯dotfuscator,都同属微软的产品,兼容性绝对是天生一对。

闲话不多说,说最直接的东西,最实用东西。

下面来说说dotfuscator的用法,我用的是Dotfuscator Professional Edition 4.2版,Dotfuscator的版本有多好,具体请看微软官方说明

http://msdn.microsoft.com/zh-cn/library/ms227255(v=VS.80).aspx

用法一 使用默认混淆

打开软件点击input选项卡,把dll或exe添加,Libray不要选,否则的话,几乎所有的公共函数变量,不会被加密和混淆,可以很容易的看到代码

点击build选项卡,在目标目录(destination directory)选取你想把dll生成到的位置,如F盘:/混淆目录

其它不用设置,直接点build,会有提示是否要保存项目。点击否

生成的dll,再用.net Reflector 进行反编译,看一下。

看到的结果是,类名重命名,方法名重命名 全都变成a,b,c

这种方法有个缺点,对于三层架构来说,他的dal层语句还是有在。比较容易看懂。

用法二 自定义混淆,类名,方法名不变。

但是方法里面的内容变成只有一句 // This item is obfuscated and can not be translated.

打开软件点击input选项卡,把dll或exe添加

在options的选项中,这是全局配置选项:
把 Disable String Encryption 设为 NO,即启用字符串加密;检查 Disable Control flow、Dsiable Renaming为NO,即保证控制流和混淆功能打开,其他默认

Rename 选项勾选“use enhanced overload induction”(使用增强模式),注意:不要勾选下方的“ Do not suppress on serializable types”,即序列化类型的变量不加密,否则编译后可能异常; “Renaming Scheme” 选择“Unprintable”(不可打印字符,即乱码),也可以选择其他如小写字母、大写字符、数字的方式。

点击build选项卡,在目标目录(destination directory)选取你想把dll生成到的位置,如F盘:/混淆目录

其它不用设置,直接点build,会有提示是否要保存项目。点击否

生成的dll再用.net Reflector 进行反编译,看一下。

可以发现函数体内的代码已经看不到了,提示:“  This item is obfuscated and can not be translated.”;字符串也变成了乱码,函数名称也不可见了

看起来是比较强大。但是有个缺点。因为dll是需要被web程序调用的,web的程序调用的方法,之前是使用类名,及方法名的。所以推荐不要做rename这步骤。

也就是在Options选项时,Dsiable Renaming设置为NO.而Rename里面就不要去设置了

DotFuscator其特点是混淆,一个很重要的方面是重命名。然而重命名又导致无法引用的问题。

这要求需要对几个DLL 同时混淆,对于WEB 来说,页面cs可以发布成一个DLL,将所有层的DLL一起混淆,可以解决很多问题。这里对WEB DLL不进行重名,以保证页面文件可以访问。

对于说在混淆后,容量会变小.我觉得这不是绝对的,我的容量是变大了

dotfuscator使用方法的更多相关文章

  1. 使用 Dotfuscator 对代码进行混淆

    Dotfuscator 简介 作为一种高级语言,c# 类库很容易被 .NET Reflector 这样的工具反编译.攻击者很容易从代码中找到数据库连接方式,加解密方法等重要信息.使用 dnspy 这样 ...

  2. 如何保护.net中的dll文件(防破解、反编译)

    如何保护.net中的dll文件(防破解.反编译) 2010-07-19 15:08 [小 大] 来源: 赛迪网 评论: 0 分享至:      百度权重查询 词库网 网站监控 服务器监控 SEO监控  ...

  3. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  4. Dotfuscator类重命名方法解析

    Dotfuscator是专业的.NET程序代码混淆工具,拥有重命名.字符串加密.流程模糊.自定义规则和水印等功能,倍受开发人员喜爱.其中类重命名的使用方法非常普遍,涉及到既要保护代码信息,又要在以后能 ...

  5. 转:C#使用Dotfuscator混淆代码的加密方法

    Author:flymorn Source:flymornCategories:C#编程 PostTime:2011-9-16 1:04:49 正 文:   C#编写的代码如果不进行一定程度的混淆和加 ...

  6. dotfuscator 在混淆.Net Framework 4.0以上版本的时候报错的解决方法

    dotfuscator 在混淆.Net Framework 4.0以上版本的时候报错的解决方法 在混淆的时候报错了,错误描述大致如下: Could not find a compatible vers ...

  7. 使用Dotfuscator 进行.Net代码混淆 代码加密的方法

    混淆代码能在一定程度上放置代码被盗用,保护我们的知识产权 1.打开vs2012,选择工具-〉Dotfuscator Software Services 2.选择你需要混淆的DLL 文件,可以多选择 3 ...

  8. C#使用Dotfuscator混淆代码的加密方法

    C#编写的代码如果不进行一定程度的混淆和加密,那么是非常容易被反编译进行破解的,特别是对于一些商业用途的C#软件来说,因为盯着的人多,更是极易被攻破.使用VS自带的Dotfuscator可以实现混淆代 ...

  9. Dotfuscator 的使用方法

    打开Dotfuscator工具,选择“Create New Project” 在Input选项中选择需要混淆的文件 把 Disable String Encryption 设为 NO,即启用字符串加密 ...

随机推荐

  1. Java-Android 之出滚动条和卷轴页面

    <?xml version="1.0" encoding="utf-8"?> <HorizontalScrollView xmlns:andr ...

  2. Android - 获取字符串长度的宽度

    Paint paint = new Paint(); float strWidth = paint.measureText(String);

  3. Error Domain=com.google.greenhouse Code=-102

    *** Terminating app due to uncaught exception 'com.google.greenhouse', reason: 'Error Domain=com.goo ...

  4. PL/SQL常见设置--Kevin的专栏

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  5. eclipse下使用Genymotion调试Android程序出现的问题

    一. The connection to adb is down, and a severe error has occured. You must restart adb and Eclipse. ...

  6. (转)ASP.NET-关于Container dataitem 与 eval方法介绍

    Container是一个数据容器,代表集合类或者dataview中的一行,而Container.dataitem代表该行的数据:所有的container   被存 放在是一个栈堆stack中,自动的将 ...

  7. Android艺术开发探索第四章——View的工作原理(上)

    这章就比较好玩了,主要介绍一下View的工作原理,还有自定义View的实现方法,在Android中,View是一个很重要的角色,简单来说,View是Android中视觉的呈现,在界面上Android提 ...

  8. php 微信支付jsapi

    首先你们公司开通微信支付功能后,会收到一份邮件,里面有账户相关信息,一般有:微信支付商户号,商户平台登录帐号,商户平台登录密码,申请对应的公众号,公众号APPID. 1.下载demo:用上面信息登陆& ...

  9. Balsamiq Mockups

    Balsamiq Mockups完全手册 2010.03.18 发布 48,066 浏览 什么是Balsamiq Mockups Balsamiq Mockups出自加利福尼亚州的Balsamiq工作 ...

  10. ng-form

    form提供的属性都是用来表示表单的验证状态的,包括:$pristine(表单没有填写记录).$dirty(表单有填写记录).$valid(通过验证).$invalid(未通过验证).$error(验 ...