zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    南阳1071
    hdu5110 dp
    hdu1199 线段树
    hdu5107 线段树
    hdu5106 数位dp
    hdu 5103 状态压缩dp
    C Strange Sorting
    hdu5102 枚举每条边的长度
    uva672
    uva473
  • 原文地址:https://www.cnblogs.com/xinyu9/p/3324193.html
Copyright © 2011-2022 走看看