模糊化的目標

模糊化的目標就是要製造混淆。產生混淆之後,人們理解多方面智慧概念的能力就會降低。請注意,這種狀況並不會改變順向 (可執行) 邏輯 – 只是以無法理解的方式來表示它。當設計良好的模糊化處理器工具使用於可讀取的程式指令時,所產生的輸出不僅會讓人們難以解釋,就連反編譯器也無法理解。雖然順向 (可執行) 邏輯都會被保存,但是反向語意則會以非決定性的方式轉譯。因此,企圖對指令進行反向工程以轉化成「程式設計語言」(例如,C# 或 VB) 的任何嘗試都會失敗,因為轉譯的結果都是模稜兩可的。深層模糊化會在反編譯時產生無數種可能性,而其中一些還可能在重新編譯時產生錯誤的邏輯。反編譯器也是一種運算工具,它不可能知道哪些反譯方式能夠以有效的語意重新編譯。人們撰寫和採用反編譯器的目的,就是為了要將人腦難以追蹤的反譯演算法加以自動化。所以我們可以相信,任何能夠混淆反編譯器的模糊化處理器,必然更能嚇阻能力有限的人腦嘗試同樣的工作。

簡單的模糊化處理器基本上只是將程式碼中的識別項重新命名成為無法閱讀的東西。它們可能會使用一些雜湊技巧或將字元集以算術方式位移,使其成為無法閱讀或無法列印的字元。雖然表面上有效,但很顯然只是反向的技巧,因此就其本身而言,保護性相當有限。PreEmptive 的模糊化工具則會另外利用「製造混淆」的額外巧妙方式,成就遠遠超越了這種簡單的重新命名方式,幾乎可以讓任何人都無法 (也不值得費力去進行) 對別人的智慧財產進行反向工程。

© 2002-2007 PreEmptive Solutions. All rights reserved.