文档章节

dotfuscator使用方法

l
 littleluoron
发布于 2015/04/27 17:26
字数 1224
阅读 455
收藏 4

转载自:http://hi.baidu.com/free3people/item/0fba87d34091df15d80e4400


转载自:http://hi.baidu.com/free3people/item/0fba87d34091df15d80e4400

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不进行重名,以保证页面文件可以访问。

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


以下属于本作者:

经测之后,我觉得还是能起到一定的防止菜鸟级别,但是真的要认真看起来,那也是很容易看懂的。

还有一点就是一些自己写的类,已经对象名,方法是无法更换名字,所以还是不安全,特别是最重要的都没有做到。

© 著作权归作者所有

l
粉丝 2
博文 17
码字总数 5650
作品 0
广州
私信 提问
使用VS自带的混淆器防止你的程序被反编译

这里就介绍大家使用VS自带的混淆器dotfuscator.exe来阻止这种行为。 首先要做的找到dotfuscator.exe: D:/Microsoft Visual Studio .NET 2003/PreEmptive Solutions/Dotfuscator Community ...

晨曦之光
2012/03/09
222
0
用Dotfuscator来防止你的程序被反编译(转)

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 这里就介绍大家使用VS自带的混淆器dotfuscator.exe来阻止这种行为。 首先要做的找到dotfuscator.exe:......

技术小美
2017/11/12
0
0
.NET代码混淆控件Dotfuscator检测篡改

.NET混淆器Dotfuscator提供了强大的篡改防御和提示功能,可以有效地检测篡改,注入事实篡改防御,以及自动化事故管理和响应。本文主要介绍如何利用.NET代码混淆器Dotfuscator检测应用程序的篡...

javascript1
2014/08/09
0
0
Dotfuscator类重命名方法解析

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

kouxunli1
2013/09/16
0
0
.NET代码混淆控件Dotfuscator检测篡改

.NET混淆器Dotfuscator提供了强大的篡改防御和提示功能,可以有效地检测篡改,注入事实篡改防御,以及自动化事故管理和响应。本文主要介绍如何利用.NET代码混淆器Dotfuscator检测应用程序的篡...

javascriptc
2014/08/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot配置百度UEditor 富文本详解

富文本简介 UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码... 准备工作 ueditor需要单独文...

wotrd
7分钟前
0
0
mysql 5.7之my.cnf配置大全

[client]port = 3306socket = /tmp/mysql.sock[mysqld]###############################基础设置######################################Mysql服务的唯一编号 每个mysql服务...

Online_Reus
35分钟前
2
0
MAVEN打包时引入外部链接的包

1.项目引入了ORACLE的jar包,MAVEN配置如下 2.打jar包的时候需要指定下main入口函数mainClass <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> ......

Cobbage
46分钟前
1
0
rror: Default interface methods are only supported starting with Android N (--min-api 24): java.io.

项目运行的时候,如果报错 Error: Default interface methods are only supported starting with Android N (--min-api 24): java.io.InputStream org.apache.poi.sl.usermodel.ObjectShape.......

chenhongjiang
59分钟前
2
0
聊聊spring cloud openfeign的Targeter

序 本文主要研究一下spring cloud openfeign的Targeter Targeter spring-cloud-openfeign-core-2.2.0.M1-sources.jar!/org/springframework/cloud/openfeign/Targeter.java interface Targe......

go4it
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部