原創(chuàng)|其它|編輯:郝浩|2011-04-19 14:36:17.000|閱讀 2579 次
概述:由于.NET體系結(jié)構(gòu)的特殊性,為了保護(hù)源碼,混淆器被提到了一個(gè)很高的地位,Visual Studio 2003就自帶了一個(gè)混淆器--Dotfuscator Community Edition。Dotfuscator Professional Edition能夠提供了流程模糊、字符串加密、冗余屬性的裁剪等;但是Dotfuscator Community Edition,作為一個(gè)免費(fèi)的版本,功能是在世乏善可陳,除了名稱(chēng)的變化之外,好像什么都不能干了。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
由于.NET體系結(jié)構(gòu)的特殊性,為了保護(hù)源碼,混淆器被提到了一個(gè)很高的地位,Visual Studio 2003就自帶了一個(gè)混淆器--Dotfuscator Community Edition。
Dotfuscator Professional Edition能夠提供了流程模糊、字符串加密、冗余屬性的裁剪等;但是Dotfuscator Community Edition,作為一個(gè)免費(fèi)的版本,功能是在世乏善可陳,除了名稱(chēng)的變化之外,好像什么都不能干了。
1、簡(jiǎn)單的介紹一下使用方法。
Dotfuscator的工作原理似乎是先將一個(gè)組件反編譯成為中間代碼(il),按照規(guī)則修改其中的內(nèi)容,比如名稱(chēng)變化,然后再重新編譯成為克執(zhí)行的組件。所以最簡(jiǎn)單的使用方法就是在Visual Studio 2003的集成環(huán)境中運(yùn)行。工程編譯完畢后,通過(guò)Tools->Dotfuscator Community Edition啟動(dòng)Dotfuscator,如下界面:
其中“Controil Flow”、“String Encryption”和“Removal”標(biāo)簽Community版本是禁止的。所以用法也很簡(jiǎn)單在Trigger中選擇需要混淆的組件,指定輸出目錄,構(gòu)造就可以了。
a) 選擇混淆的組件
單擊Browse按鈕選擇一個(gè)dll或者exe文件即可。
b) 選擇目標(biāo)輸出的路徑。
單擊構(gòu)造按鈕就開(kāi)始工作了。
c) 查看輸出結(jié)果
切換到Output的標(biāo)簽,可以看到混淆所影響的變量和方法,如下圖。
d) 一個(gè)簡(jiǎn)單的C#窗口應(yīng)用的混淆結(jié)果
public class a : Form
{
// Methods
public a();
private void a();
protected override void a(bool A_0);
private void a(object A_0, EventArgs A_1);
private void b(object A_0, EventArgs A_1);
[STAThread]
private static void Main();
// Fields
private Button a;
private Button b;
private Container c;
}
private void a(object A_0, EventArgs A_1)
{
MessageBox.Show(this, "\u8fd9\u662f\u4e00\u6bb5\u4e2d\u6587\u7684\u6d4b\u8bd5\u7a0b\u5e8f\uff01");
}
注:字符串會(huì)轉(zhuǎn)換成為Unicode編碼的形式,這點(diǎn)不錯(cuò)。
2、進(jìn)一步了解
a) 在Options標(biāo)簽下還有幾個(gè)選項(xiàng),
Investigate:檢查模式,只生成轉(zhuǎn)換表查看影響的結(jié)果,不生成混淆后的輸出文件。
Library:類(lèi)庫(kù)模式,在類(lèi)庫(kù)模式下公共類(lèi)的公共屬性和方法將不會(huì)被修改名稱(chēng)。
Quiet:安靜模式,在轉(zhuǎn)換過(guò)程中沒(méi)有輸出信息。
Verbose:詳盡模式,在轉(zhuǎn)化過(guò)程中輸出詳細(xì)的信息。
b) 名稱(chēng)修改的規(guī)則。
在圖形界面的“Rename”標(biāo)簽里,可以手動(dòng)去設(shè)定一些函數(shù)的名稱(chēng)不變化,還可以選擇是否保留命名空間或者每個(gè)類(lèi)的層次結(jié)構(gòu)。
c) Dotfuscator的工程。
對(duì)一個(gè)或者多個(gè).NET組件進(jìn)行混淆的過(guò)程可以保存成為一個(gè)工程,工程文件就是一個(gè)XML文檔,里面包含了設(shè)置的轉(zhuǎn)換規(guī)則。
總之Dotfuscator是一個(gè)比較簡(jiǎn)單的工具(有圖形界面的工具通常都不復(fù)雜),如果要求不高總能起到一些作用的。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載