原始碼部分加密混淆方案

weixin_34198881發表於2018-06-14

原始碼部分混淆加密方案

 

背景:專案業務原始碼需要開放給甲方,但其中有部分核心程式碼需要加密處理。

目的:實現對核心程式碼DLL的加密,但不能影響其他模組對該DLL的引用。

加密工具:DotfuscatorPro_4.9.6

反編譯工具:.Net Reflector  (用於對加密效果進行驗證)

加密步驟:

1.安裝Dotfuscator  加密工具。

比較簡單,點下一步到底。

 

2.開啟Dotfuscator,會彈出“select project Type”對話方塊,選擇“create new project”新建一個專案:

 

3.點選Input頁卡,將要加密的核心DLL拖入到input Files框中:

 

4.去掉“Library”勾選,其他幾項勾選,如下圖所示:

 

5.點選“Settings”—“Global Options” ,修改”disable Renaming”為Yes,修改”disable String Encryption”為No。意思是關掉重新命名,因為此DLL需要在外部引用,如果公開類和方法名被改了,外部引用會報錯。

 

6.點選“String Encryption”選項卡,將要加密的dll勾選上:

 

7.選擇加密檔案輸出路徑,加密後的DLL將放到此處:

 

8.設定完成,點“Build Project”按鈕執行加密,會先彈出是否儲存專案的提示,按需要儲存即可,儲存後方便下次直接修改加密選項。

 

 

加密效果驗證:

用.Net Reflector工具開啟加密後的DLL,可看到公開方法和類名並沒有改變,但核心實現被隱藏。

以下是加密後的DLL,反編譯出來的結果:

 

以下是未加密的DLL,反編譯出來的結果:

 

 

相關文章