Dotfuscator是一個.NET的Obfuscator。它提供企業級的應用程序保護,大大降低了盜版、知識產權盜竊和篡改的風險。Dotfuscator的分層混淆、加密、水印、自動失效、防調試、防篡改、報警和防御技術,為世界各地成千上萬的應用程序提供保護。
Dotfuscator提供了一種應用程序保護的多層方法。這些層中的每一層都提供了一個重要的整體保護策略。如果一層受到損害,其他層繼續提供有效保護,使攻擊者更難以實現其目標。并且不僅有多個層,而且每個層都具有比其他混淆產品使用的簡單技術更強大的高級功能。
從本文開始我們一起了解Dotfuscator如何對應用程序進行多層保護,層層遞進,大致可分為:
- 第一層保護——Obfuscation轉換:它對編譯的代碼進行操作,使逆向工程變得困難或不可能。
- 第二層保護——保護程序運行時發生的檢查:當程序檢測到攻擊者試圖篡改或反向工程時,它可以使用自定義邏輯進行自我防御。
- 其余加強保護——包括切除和水印。
- Dotfuscator提供某些功能幫您構建、部署和調試混淆的程序集。
>>下載Dotfuscator最新試用版
第一層保護:Obfuscation轉換——控制流
Dotfuscator的工作原理是修改反編譯器用來重新創建源代碼的代碼模式。Dotfuscator引入了錯誤的條件語句和其他具有誤導性的構造,以混淆和破壞反編譯器。這個過程綜合了分支、條件和迭代構造,這些構造產生有效的正向(可執行)邏輯,但是在嘗試反編譯時產生不確定的語義結果。
除了添加代碼構造之外,Dotfuscator還破壞反編譯器用于重新創建源代碼的代碼模式。最終得到的代碼在語義上與原始代碼等價,但不包含關于代碼最初是如何編寫的線索。該特性的目標是防止MSIL自動反編譯回高級源代碼。最終用戶仍然可以查看MSIL本身,但要完全理解它并對其功能進行較大的更改就比較困難了。
例如:
之前 | 之后 |
▲限制
在控制流混淆之后測試應用程序性能是很重要的,特別是任何執行了很多次的代碼(例如游戲循環或計算/算法密集型方法)。
控制流混淆只有在方法包含足夠多的基本塊時才能有效地擊敗反編譯器。
▲排除
控制流排除與重命名排除以相同的方式工作,包括特定的排除和自定義規則。然而,控制流除外僅適用于方法。如果用戶在測試過程中發現性能下降,那么應該將排除應用到執行計算密集型工作的任何方法或類(基本上是CPU是性能限制因素的任何情況)。
▲選項
High是唯一設計用來擊敗自動反編譯器的關卡。如果高導致性能下降而不能通過排除來解決,則可以使用中值或低值,如果控制流被認為是導致運行時錯誤的原因,則可以使用中值或低值進行調試。
如果你有任何問題或意見,可在下方評論區留言,點擊資源列表查看更多教程資源~