ConfuserEx是.NET下的一款開源混淆工具,功能比較強大,應用也較廣泛,本文就使用ConfuserEx工具演示如何混淆及如何對其混淆的程序進行脫殼。
所需工具:
請自行百度下載如下工具:
ConfuserEx、UnConfuserEx、Fixer、ConfuserExStringDecryptor、ConfuserExSwitchKiller、de4dot、ILSpy
准備演示項目:
先編寫一個小程序(循環輸出了一段GUID),並運行,如圖:
使用ConfuseEx進行混淆:
1.設置目標目錄、輸出目錄及添加要混淆的EXE或DLL,如圖。
2.設置混淆參數,如圖:
3.執行混淆,如圖:
4.使用ILSpy查看混淆過后的程序,如圖:
可以發現,這時是不能反編譯的。
ConfuseEx脫殼演示:
1.使用unConfuserEx工具,如圖:
2.使用Fixer工具,如圖:
3.使用ConfuseExStringDecryptor工具,如圖:
4.使用ConfuserEX Switch Killer工具,如圖:
5.使用de4dot工具,如圖:
6.使用ILSpy查看脫殼后的結果,如圖:
最后結論
寫到這,可以發現這篇文章是一個矛盾的話題。但是就沒有好辦法來保護源代碼不被輕易破解了嗎?
答案是有的,可參考文章NET DLL 保護措施詳解(非混淆加密加殼)
也可以從www.dllprotect.com下載DEMO驗證保護效果。