源代碼部分加密混淆方案

源代碼部分混淆加密方案

 

背景:項目業務源碼須要開放給甲方,但其中有部分核心代碼須要加密處理。工具

目的:實現對核心代碼DLL的加密,但不能影響其餘模塊對該DLL的引用。ui

加密工具:DotfuscatorPro_4.9.6

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

加密步驟:

1.安裝Dotfuscator  加密工具。加密

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

 

2.打開Dotfuscator,會彈出「select project Type」對話框,選擇「create new project」新建一個項目:blog

 

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

 

4.去掉「Library」勾選,其餘幾項勾選,以下圖所示:源碼

 

5.點擊「Settings」—「Global Options」 ,修改」disable Renaming」爲Yes,修改」disable String Encryption」爲No。意思是關掉重命名,由於此DLL須要在外部引用,若是公開類和方法名被改了,外部引用會報錯。io

 

6.點擊「String Encryption」選項卡,將要加密的dll勾選上:編譯

 

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

 

8.設置完成,點「Build Project」按鈕執行加密,會先彈出是否保存項目的提示,按須要保存便可,保存後方便下次直接修改加密選項。

 

 

加密效果驗證:

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

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

 

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

 

相關文章
相關標籤/搜索