.NET混淆器 Dotfuscator使用教程一:爲何要保護你的代碼?

Dotfuscator是一款.NET混淆器和壓縮器,防止你的應用程序被反編譯。html

PreEmptive Protection

爲何要保護?

使用.NET編寫的程序較容易被反編譯,也就是逆向工程。.NET應用程序編譯爲一種高級、富有表現力的文件語法,稱爲MSIL(Microsoft Intermediate Language),包含方法和變量名稱,能夠輕鬆地反編譯回源代碼形式。算法

不管是否合法,攻擊者均可以使用免費的反編譯器輕鬆查看任何.NET應用程序的源代碼,他們能夠公開軟件許可代碼,複製保護機制和我的/團隊私有的業務邏輯。任何人均可以閱讀軟件應用程序的全部信息,經過利用漏洞,竊取想法,破解應用程序甚至可能更嚴重。安全

混淆是一種能夠在程序集中提供符號的無縫重命名,以及其餘技巧來阻止反編譯器的技術。正確應用混淆可使應用程序的安全程度呈數量級的提升,同時保持應用程序的完整性。ide

當混淆器工具開始使用可讀程序指令時,有一個反作用是輸出會混淆人工解釋器並破壞人工解釋器正在使用的反編譯器。在保留可執行邏輯的同時,反向語義呈現爲非肯定性的。因此,嘗試對指令進行反向工程會失敗,由於轉換不明確。 深度混淆會產生無數的反編譯可能性,若是從新編譯,其中一些還會產生不正確的邏輯。反編譯器做爲計算機器沒法知道哪些可能性能夠用有效的語義從新編譯。人們編寫並使用反編譯器來自動化反編譯算法,這些算法對於計算機器來講是十分具挑戰性的。工具

除了混淆以外,Dotfuscator還能夠提供額外的保護層。這些保護包括檢測,能夠主動檢測可能的攻擊(例如篡改,調試或在root設備上運行),並可使用預約義的行爲或自定義邏輯進行響應。全部的這些保護措施使應用程序極難進行逆向工程或修改。ui

編譯後保護

有一點很重要的是要理解Dotfuscator是一個「後編譯」工具 - 它保護你已編譯的.NET程序集(.dll和.exe文件)。開發環境和工具不須要作任何改變,源代碼也不會以任何方式被改變甚至讀取。受保護的程序集在功能上等同於傳統程序集(除非有意更改),而且將在公共語言運行時(CLR)上執行。(即便能夠對強混淆的程序集進行反編譯,與原始源代碼相比,它也會產生明顯的語義差別。)調試

下圖顯示了使用和不使用Dotfuscator的典型構建過程的流程:cdn

dotfuscator_process

如圖所示,你的應用程序將正常編譯,而後Dotfuscator將保護這些程序集。Dotfuscator將把程序集做爲輸入,根據你的配置設置執行保護,並生成這些程序集的受保護版本做爲輸出。htm

                                                      【下載Dotfuscator最新試用版
相關文章
相關標籤/搜索