.NET開發(fā)人員都知道,.NET的優(yōu)點(diǎn)是比較多的,如:標(biāo)準(zhǔn)集成,簡(jiǎn)化應(yīng)用,對(duì)移動(dòng)設(shè)備的支持等,它是一個(gè)巨大的跨時(shí)代進(jìn)步。但.NET程序有個(gè)致命的缺點(diǎn):易被反編譯。試想一個(gè)團(tuán)隊(duì)花了幾個(gè)月甚至幾年時(shí)間辛苦開發(fā)的勞動(dòng)成果被輕易破解,那將情何以堪?因此,為了保護(hù)軟件安全,進(jìn)行源碼混淆,加殼和授權(quán)控制是行之有效的安全策略,而使用最多的保護(hù)手段就是使用代碼混淆器。本人簡(jiǎn)單對(duì)比了常見的3款.NET源碼混淆器,希望使開發(fā)人員對(duì)這3款.NET源碼混淆器的選擇有初步的了解。
源碼混淆
源碼混淆指在不影響功能的前提下,通過(guò)對(duì)程序源碼的分析,改變?cè)创a的原始面貌,將代碼變得模糊難以理解,這樣可以降低源碼可讀性。有效的源碼混淆還增加了代碼的復(fù)雜度,使變換后的代碼不可逆轉(zhuǎn)。
常用的.NET源碼混淆工具
目前市場(chǎng)上的混淆器品種繁多,比較出名的.NET源碼混淆工具有:Dotfuscator,Skater .NET obfuscator,Xenode.NET Obfuscator。
Dotfuscator
在眾多的.NET源碼混淆產(chǎn)品中,Dotfuscator是最出名的。Dotfuscator是全球著名的源碼混解決方案提供者PreEmptive公司的明星產(chǎn)品,可以使得您的應(yīng)用程序更加小巧以及高效,是提高.NE應(yīng)用程序效率的最佳選擇。而且,從Visual Studio 2003到現(xiàn)在,.NET混淆器Dotfuscator被嵌入到了Visual Studio的每個(gè)專業(yè)版或者更高版本。這些事實(shí)證明,Dotfuscator是當(dāng)之無(wú)愧的.NET源碼混淆和軟件安全領(lǐng)域的王者。
Skater .NET Obfuscator
Skater .NET Obfuscator具備所有軟件保護(hù)技術(shù)及混淆算法,適合那些希望周期性地混淆.NET產(chǎn)品代碼的用戶。此外,Skater .NET Obfuscator提供了標(biāo)準(zhǔn)版、專業(yè)版和終極版,可為軟件開發(fā)者提供混淆器的所有功能。而且,它的授權(quán)簡(jiǎn)單而且價(jià)格實(shí)惠,在大小企業(yè)中皆受歡迎,是最實(shí)惠的代碼保護(hù)解決方案。
Xenode.NET Obfuscator
Xenocode較Dotfuscator相比,在名稱混淆時(shí)可以選擇要混淆的方法或標(biāo)識(shí)符;控制流混淆時(shí)可以選擇混淆的等級(jí)。Xenocode Postbuild最大的優(yōu)點(diǎn)是,它可以使.NET程序脫離.NET框架運(yùn)行。但混淆后會(huì)使程序啟動(dòng)變慢,文件變大。
總結(jié)
以上3款.NET源碼混淆工具是開發(fā)人員使用最多的產(chǎn)品,每一款都各具優(yōu)勢(shì)。Dotfuscator功能最強(qiáng)大,但是價(jià)格相對(duì)較高,適合大型企業(yè);Skater .NET Obfuscator功能的源碼混淆功能豐富,但混淆效果一般,適合大中型企業(yè)。Xenode.NET Obfuscator可以使.NET程序脫離.NET框架運(yùn)行,這是它的一大優(yōu)點(diǎn),但是混淆功能和混淆效果一般,而且混淆后會(huì)使程序啟動(dòng)變慢,文件變大,這是該產(chǎn)品的一大硬傷。