Dotfuscator类重命名方法解析

2022-10-28,,,

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

那么类重命名到底有几种方法?每种方法是如何实现的?接下来将解析各种类重命名方法及其实现过程。

整体重命名

默认的类重命名方法是整体重命名,会把类命名为一个新的、简单的名字。这是最简单的一种重命名方式。举例如下:

原来名字

新名字

Preemptive.Application.Main

a

Preemptive.Application.LoadData

b

Preemptive.Tools.BinaryTree

c

Preemptive.Tools.LinkedList

d

保留命名空间

当需要维持命名空间层次结构时,使用保留命名空间重命名方法是很重要的。虽然放弃了一些混淆处理的潜力,但可以使混淆代码链接回代码库让其他应用程序可以调用混淆代码。保证应用程序的兼容性。其重命名实现是通过设置选项为保留命名空间层次。简单举例如下:

原来名字

新名字

Preemptive.Application.Main

Preemptive.Application.a

Preemptive.Application.LoadData

Preemptive.Application.b

Preemptive.Tools.BinaryTree

Preemptive.Tools.a

Preemptive.Tools.LinkedList

Preemptive.Tools.b

保留命名结构

类似于保留命名空间,都是能维持命名空间层次结构,但保留命名结构只是保留了命名结构,对代码保护比保留命名空间强多了。简单举例如下:

原来名字

新名字

Preemptive.Application.Main

a.a.a

Preemptive.Application.LoadData

a.a.b

Preemptive.Tools.BinaryTree

a.b.a

Preemptive.Tools.LinkedList

a.b.b

重命名前缀

重命名前缀方法是一种高水平的复合重命名类型。可以结合上面说的三种方法,复合型重命名安全指数非常高。简单举例如下:

原来名字

前缀

重命名类型

新名字

Application.Main

默认

MyApplicationa

Application.LoadData

myprefix

默认

myprefixa

Tools.BinaryTree

myprefix

保留命名结构

a.myprefixa

Tools.LinkedList

myprefix

保留命名空间

Tools.myprefixa

Tools.Proxy

mynamespace.

保留命名空间

Tools.mynamespace.a

有三种方式来设置重命名前缀:

在Dotfuscator界面选择重命名中的重命名前缀选项按钮,出现选择/输入前缀和重命名类型对话框,完成设置执行即可。
在命令行使用/prefix:[on > off]选项。命令如下:
 Dotfuscator /p=prefix=MY_PREFIX /pref:on [other options...]
使用文本或XML编辑,手动添加“prefix”选项到重命名区域,如在propertylist区域添加自定义“prefix”属性。代码如下:

1
2
3
4
5
6
7
8
9
10

<propertylist>
     <!-- defining prefix here tells the renamer to use the value as the
        renaming prefix, if renaming prefix is enabled -->
     <property name="prefix" value="MY_PREFIX"/>
  </propertylist>
  <renaming>
     <!-- this turns on the renaming prefix feature -->
     <option>prefix</option>
  ...
  </renaming>

Dotfuscator类重命名方法解析的相关教程结束。

《Dotfuscator类重命名方法解析.doc》

下载本文的Word格式文档,以方便收藏与打印。