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