Dotfuscator类重命名方法解析

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 >

你可能感兴趣的:(cat)