作者:伊雅曦1 | 来源:互联网 | 2023-07-27 12:38
链接:https://pan.baidu.com/s/1r6x_2aQQzKheXrNHZDCWyA
提取码:w0br
Dotfuscator的定位:
是一种用于doNet应用程序的开发后重编译系统,是一款功能强大的NET混淆器和压缩器。它可以混淆流程、密字符串、加入水印、程序签名等。
Dotfuscator的优点:
增强了代码安全性?
采用了最先进的反编译技术,可以有效的保护您的程序代码,防止您的应用程序被反编译。
减小doNet程序的体积?
Dotfuscator Professional Edition 分析应用程序并精确计算出您真正需要使用的应用程序部分。据此,它可以剥离出这部分,使您得到尽可能小的可执行文件。
提高运行时性能?
通过移除不需要的程序元素并将标识符重命名为短小的名称,Dotfuscator可切实提高程序运行速度。
防反编译之模糊处理:
模糊处理这种技术能够对程序几中的符号进行无痕迹可寻的重命名,dotfuscator还提供很多其他手段,从而阻止进行反编译。
模糊处理(obfuscation)意在引起混淆。原始的模糊处理程序实质上是将在代码中找到的标识符重命名为不可读的内容。他们可能使用哈希技术,或者对字符集进行算术偏移,将字符变为不可读字符或不可输出字符。这些技术虽然表面上很有效,但是它是可逆的技术,因此很难起到保护作用。
PreEmptive的模糊处理工具远远超过了这种原始的重命名方法,它使用很多其他颇具独创性的“引起混淆”的方法,使得几乎不可能对他人的知识产权进行反向处理。
模糊处理过程:
模糊处理这一过程应用于已编译的MSIL代码而不是应用源代码,理解这一点十分重要。开发环境和工具无需更改就可以适应重命名技术。源代码不会以任何方式被更改,甚至不会被读取。经过模糊处理的MSIL代码在功能上等效于传统的MSIL代码,它在公共语言运行库(CLR)上执行并产生与原始MSIL代码相同的结果。(但是,不能进行逆向操作。即使可能将经过高度模糊处理的MSIL进行反编译,和原始的源代码相比,它在语义上也有重大不同。)下图说明使用Dotfuscator进行模糊处理的流程。
Dotfuscator 4.9的使用过程:
1.打开Dotfuscator软件,选择Create New Project,然后点击OK。
2.点击如下图所示的文件夹图标。
3.点击Browse按钮选择要要加密的可执行文件(.exe),然后点击OK。
4.勾选需要混淆的文件,默认是全选。着重说下下图红色框中的这个选项,Library选项是对类名进行加密混淆,如果勾选它则对类名、方法名等进行混淆。
6.点击Settings选项,将Disable String Encryption选项改为No。(意思是对字符串进行加密)
7.选择Rename下的Options选项,将Use Enhanced Overload induction打勾,Renaming Scheme选Unprintable(不能打印的)。
8.点击String Encryption,选择要加密的文件,然后点击运行(绿色三角)。
9.如果你的项目是用的.Net Framwork4.0以上版本,运行后编辑就会不通过。
解决办法:
在Settings选项卡下的Project Properties选项
点击“Create New Property”,创建一个属性。依次添加
ILASM_v4.0.30319
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe(注意:我的ilasm.exe是在这个路径下,因个人安装位置而定)
再次点击“Create New Property”,创建一个属性。依次添加
ILDASM_v4.0.30319
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe(注意:我的ildasm.exe是在这个路径下,因个人安装位置而定)
添加好之后再次点击运行(绿色三角)就可以编辑了。如下图:
此时就可以在该文件夹下找到加密混淆后的可执行文件了。
我遇到过使用Dotfuscator打开可执行文件时的异常解决,如下图:
添加要混淆程序时报“Invalid Input Assembly”。startIndex不能大于字符串长度。
出现这个错误的原因因为我程序中对象名使用了中文。我在程序中将所有中文部分全部替换成英文就可以加载进来了,所以在程序设计时尽量不要使用中文作为程序部分。