專為 .NET 所撰寫的程式易於進行反向工程。反向工程不是利用 .NET設計上的錯誤,它只是一種新穎中繼編譯語言。.NET 使用表達式檔案語法也就是 MSIL (Microsoft Intermediate Language) 來產生可執行的程式碼。這些中繼檔案採用可以直接看到,而且非常容易瞭解的識別項和演算法,因此,比起二進位的機器碼顯然要高階的多。畢竟,要隱藏重要細節,又要兼顧易懂性、彈性和可擴充性,顯然是一件相當困難的工作。
因此,一旦免費取得 .NET 反編譯器,任何人都能輕易地將程式碼進行反向工程。無論是否合法,就能馬上輕易取得軟體授權碼、複製保護機制和屬於智慧財產的商務邏輯。任何人都有可能基於任何原因而瀏覽軟體的詳細資料,他們會搜尋可利用的安全性漏洞,以竊取獨特創意、破壞程式等。
不必要讓這個問題成為您的風險或壞了您繼續開發程式的熱情,重視自身智慧財產權的組織在採用 .NET 平台時,必須瞭解是有解決方案可以阻撓反向工程。模糊化的技術可以對組件中的符號提供完善的重新命名功能以及一些其他的技巧來攪亂反編譯器,適當地運用模糊化可以大幅度提升對於反編譯的保護,而且完全不會影響到應用程式。
© 2002-2007 PreEmptive Solutions. All rights reserved.