其实我们只要在软件设计的关键几个环节,利用专业的控件进行保护,就可以保证软件的安全。我们可以在软件设计时和运行时对软件代码进行保护。在设计时的保护,主要的保护手段是,混淆源码;在运行时的保护主要的手段是加壳程序和授权控制。下面我们分别对混淆、加壳、授权控制的方法和采用的控件做一一讲解。
源码混淆
源码混淆就是通过对程序源码的分析,改变源码的原始面貌,降低源码可读性,可对函数甚至流程进行混淆。虽然目前很多开发工具都能进行简单的混淆,不过实用性不大,采用专业的混淆控件对程序源码能起到有效的保护,有些混淆控件还有更强大的优化功能,在混淆的同时对程序进行优化。
常用的混淆控件
目前比较出名的.NET源码混淆控件有:Dotfuscator,Skater .NET obfuscator,Xenode.NET Obfuscator
其中最出名的是PreEmptive的Dotfuscator,PreEmptive 是全球著名的源码混淆解决方案提供者,在业界一直处于领军地位,旗下两款源码混淆控件:Dotfuscator(.NET) 和DashO(JAVA) 在源码混淆和软件安全保护方面,性能特别优秀,深受各大软件公司推崇。最近在微软TECH-ED2010技术大会暨创新体验发布会上, PreEmptive宣布其Dotfuscator + 运行时监测组件(Runtime Intelligence)解决方案支持微软Silverlight 并同时提供智能监测功能,通过配置和部署,可以让开发者保护并监测Silverlight程序。因为优秀的品质也意味着高的价格,Dotfuscator价格比较偏贵,适合大型企业使用。