Dotfuscator 是專業(yè)的.NET程序 代碼混淆 工具,擁有 重命名 、字符串加密、流程模糊、自定義規(guī)則和水印等功能,倍受開(kāi)發(fā)人員喜愛(ài)。其中 類重命名 的使用方法非常普遍,涉及到既要保護(hù)代碼信息,又要在以后能實(shí)現(xiàn)運(yùn)行維護(hù)及多程序協(xié)同工作。
那么 類重命名 到底有幾種方法?每種方法是如何實(shí)現(xiàn)的?接下來(lái)將解析各種類重命名方法及其實(shí)現(xiàn)過(guò)程。
整體重命名
默認(rèn)的類重命名方法是整體重命名,會(huì)把類命名為一個(gè)新的、簡(jiǎn)單的名字。這是最簡(jiǎn)單的一種重命名方式。舉例如下:
原來(lái)名字 |
新名字 |
Preemptive.Application.Main |
a |
Preemptive.Application.LoadData |
b |
Preemptive.Tools.BinaryTree |
c |
Preemptive.Tools.LinkedList |
d |
保留命名空間
當(dāng)需要維持命名空間層次結(jié)構(gòu)時(shí),使用保留命名空間重命名方法是很重要的。雖然放棄了一些混淆處理的潛力,但可以使混淆代碼鏈接回代碼庫(kù)讓其他應(yīng)用程序可以調(diào)用混淆代碼。保證應(yīng)用程序的兼容性。其重命名實(shí)現(xiàn)是通過(guò)設(shè)置選項(xiàng)為保留命名空間層次。簡(jiǎn)單舉例如下:
原來(lái)名字 |
新名字 |
Preemptive.Application.Main |
Preemptive.Application.a |
Preemptive.Application.LoadData |
Preemptive.Application.b |
Preemptive.Tools.BinaryTree |
Preemptive.Tools.a |
Preemptive.Tools.LinkedList |
Preemptive.Tools.b |
保留命名結(jié)構(gòu)
類似于保留命名空間,都是能維持命名空間層次結(jié)構(gòu),但保留命名結(jié)構(gòu)只是保留了命名結(jié)構(gòu),對(duì)代碼保護(hù)比保留命名空間強(qiáng)多了。簡(jiǎn)單舉例如下:
原來(lái)名字 |
新名字 |
Preemptive.Application.Main |
a.a.a |
Preemptive.Application.LoadData |
a.a.b |
Preemptive.Tools.BinaryTree |
a.b.a |
Preemptive.Tools.LinkedList |
a.b.b |
重命名前綴
重命名前綴方法是一種高水平的復(fù)合重命名類型。可以結(jié)合上面說(shuō)的三種方法,復(fù)合型重命名安全指數(shù)非常高。簡(jiǎn)單舉例如下:
原來(lái)名字 |
前綴 |
重命名類型 |
新名字 |
Application.Main |
? |
默認(rèn) |
MyApplicationa |
Application.LoadData |
myprefix |
默認(rèn) |
myprefixa |
Tools.BinaryTree |
myprefix |
保留命名結(jié)構(gòu) |
a.myprefixa |
Tools.LinkedList |
myprefix |
保留命名空間 |
Tools.myprefixa |
Tools.Proxy |
mynamespace. |
保留命名空間 |
Tools.mynamespace.a |
有三種方式來(lái)設(shè)置重命名前綴:
- 在Dotfuscator界面選擇重命名中的重命名前綴選項(xiàng)按鈕,出現(xiàn)選擇/輸入前綴和重命名類型對(duì)話框,完成設(shè)置執(zhí)行即可。
-
在命令行使用/prefix:[on?>?off]選項(xiàng)。命令如下:
?Dotfuscator?/p=prefix=MY_PREFIX?/pref:on?[other?options...] -
使用文本或XML編輯,手動(dòng)添加“prefix”選項(xiàng)到重命名區(qū)域,如在propertylist區(qū)域添加自定義“prefix”屬性。代碼如下:
12345678910<
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
>
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
