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