Dotfuscator是專業的.NET程序代碼混淆工具,擁有重命名、字符串加密、流程模糊、自定義規則和水印等功能,倍受開發人員喜好。其中類重命名的使用方法很是廣泛,涉及到既要保護代碼信息,又要在之後能實現運行維護及多程序協同工做。 html
那麼類重命名到底有幾種方法?每種方法是如何實現的?接下來將解析各類類重命名方法及其實現過程。 安全
默認的類重命名方法是總體重命名,會把類命名爲一個新的、簡單的名字。這是最簡單的一種重命名方式。舉例以下: 工具
原來名字 this |
新名字 加密 |
Preemptive.Application.Main spa |
a 命令行 |
Preemptive.Application.LoadData htm |
b ci |
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
|
<propertylist>
<!-- defining prefix here tells the renamer to use the value as the
renaming prefix, if renaming prefix is enabled -->
<propertyname="prefix"value="MY_PREFIX"/>
</propertylist>
<renaming>
<!-- this turns on the renaming prefix feature -->
<option>prefix</option>
...
</renaming>
|