天天看點

.NET代碼混淆

本文不提代碼開源,隻談代碼混淆方法。 

本文使用的代碼混淆器是ConfuserEx,網上可以下載下傳的到。參考博文:開源.net 混淆器ConfuserEx介紹 

.Net平台開發的應用程式,大多編譯之後,在bin/Debug目錄下生成很多.dll檔案和一個可執行檔案.exe。本文就是對這些.dll檔案和.exe檔案進行混淆,防止反編譯。

ConfuserEx混淆.dll檔案和.exe檔案方法不盡相同。方法如下: 

首先,下載下傳ConfuserEx軟體,打開後如下圖所示: 

.NET代碼混淆

(一)混淆.dll檔案 

比如混淆BLL.dll和DAL.dll檔案(這是項目中經常編譯出來的檔案,它們其實是兩個類庫)

1.混淆.dll檔案 

将待混淆的.dll檔案(單個或多個)拖拽進中間方框區域,如下圖所示: 

.NET代碼混淆

2.選擇Settings項,添加混淆規則,如下圖: 

.NET代碼混淆

3.設定混淆規則 

Protections選擇anti ildasm,應該是防止IL反編譯。因為Ildasm.exe是微軟提供的.NET的IL反編譯器。 

.NET代碼混淆

所有的.dll檔案都設定好混淆規則後,就可以進行下一步了。

4.選擇Proect!選項 

點選【Protect!】,就開始混淆了。Finished代表混淆完成并成功。 

.NET代碼混淆

以上混淆.dll檔案就完成了。 

用ILSpy看一下混淆結果(ILSpy是一個反編譯工具) 

.NET代碼混淆

用.NET Reflector反編譯結果: 

.NET代碼混淆

(二)混淆.exe檔案 

用ConfuserEx工具混淆.exe與混淆.dll檔案唯一的不同在設定項(Settings)那裡。 

1.将待混淆的.exe檔案拖拽進中間方框區域,然後選擇Settings頁籤,添加混淆規則。 

這裡與.dll檔案設定混淆規則不同,要設定Packer項,壓縮打包,且不需要編輯規則! 

.NET代碼混淆

2.選擇Protect!頁籤,點選【Protect!】

.NET代碼混淆

以上混淆.exe檔案就完成了。還是通過ILSpy看一下混淆結果

ILSpy反編譯結果: 

.NET代碼混淆

通過ConfuserEx代碼工具,可以很好的混淆.dll檔案和.exe檔案,實作代碼保護。

繼續閱讀