原創|其它|編輯:郝浩|2011-01-05 16:07:49.000|閱讀 1212 次
概述:我們知道.NET程序集中有一個重要特性叫做MetaData(元數據),它是.NET的特性,它記錄了相關程序集的一切信息,正因為這樣的特性,.NET程序集才有了跨平臺的可能,才可以在網上傳送運行,才不會出現DLL HELL。但同時,由于它記錄了所有的信息,使得程序集中的信息可以完全還原至初始狀態,使得編譯過后的程序集,依然擁有良好的“可讀性”。在某些特殊的情況下,這是一件很糟的事情。對此,我們該怎么做?正在這樣的需求之下,混淆器橫空出世。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
我們知道.NET程序集中有一個重要特性叫做MetaData(元數據),它是.NET的特性,它記錄了相關程序集的一切信息,正因為這樣的特性,.NET程序集才有了跨平臺的可能,才可以在網上傳送運行,才不會出現DLL HELL。但同時,由于它記錄了所有的信息,使得程序集中的信息可以完全還原至初始狀態,使得編譯過后的程序集,依然擁有良好的“可讀性”。在某些特殊的情況下,這是一件很糟的事情。對此,我們該怎么做?正在這樣的需求之下,混淆器橫空出世。它對MetaData的某些相關信息進行了處理,達到了混淆的作用,在某種意義上講,它的確能起到一些作用。
什么是混淆?
故名思意,就是混雜,使界限不分明。這個詞相當妙,特別是用在計算機界。
混淆就是對發布出去的程序進行重新組織和處理,使得處理后的代碼與處理前代碼完成相同的功能,而混淆后的代碼很難被反編譯,即使反編譯成功也很難得出程序的真正語義。被混淆過的程序代碼,仍然遵照原來的檔案格式和指令集,執行結果也與混淆前一樣,只是混淆器將代碼中的所有變量、函數、類的名稱變為簡短的英文字母代號,在缺乏相應的函數名和程序注釋的況下,即使被反編譯,也將難以閱讀。同時混淆是不可逆的,在混淆的過程中一些不影響正常運行的信息將永久丟失,這些信息的丟失使程序變得更加難以理解。
簡單的說,混淆就是將名稱混淆,即將命名空間名、類名、方法名、字段名等統統換成特殊符號或其它符號,目的就是讓你不能與以前的名稱建立關聯。達到把你弄糊涂的目地。
當然,混淆器的作用不僅僅是保護代碼,它也有精簡編譯后程序大小的作用,使編譯后文件體積大約能減少25% ,這對當前費用較貴的無線網絡傳輸是有一定意義的。
(慧都控件網版權所有,轉載請注明出處,否則追究法律責任)
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網