[.NET Concept][Security].NET程式保護機制概述
相信大家都知道,.NET程式為了跨平台、跨語言,在架構中特別導入了CLR,用來運行中繼碼。程式在透過編譯器編譯過後會被編譯成MSIL,有點類似JAVA的Bytecode,同屬兩階段編譯。因此.NET跟JAVA程式一樣,寫出來的程式很容易從中繼碼被反推回去原程式碼(就是所謂的反組譯)。甚至能從MSIL反推回不同的語言。 最常見的反組譯方式有透過.NET Framework SDK內所附的IL Disassembler、.NET Explorer、Anakrino、.NET Reflector等工具來進行反組譯的動作。其中又以.NET Reflector最為強大,只要簡單的[載入組件]→[選取慣用的語言]→[點選反組譯],不需要任何技術背景,只要簡單的幾個步驟,程式碼就完整的呈現在你的眼前。除此之外.NET Reflector還有許多的外掛模組,像是把反組譯出來的程式轉為專案檔等。好用到幾乎是有組件就等於有程式碼的地步。也由於反組譯工具的猖獗,程式的保護對.NET程式來說就顯得隔外的重要。 而就我目前所知,.NET程式的保護方式大概有幾種 混淆保護內核級加密保護硬體保護 ...