久久不能释怀!
分类: C#/.net
2013-09-16 14:37:46
是专业的.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 |
有三种方式来设置重命名前缀:
1
2
3
4
5
6
7
8
9
10
|
...
|