欢迎来到天天文库
浏览记录
ID:21768333
大小:53.00 KB
页数:5页
时间:2018-10-24
《.net源代码保护技术与工具的研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、.Net源代码保护技术与工具的研究:介绍了.Net框架中源代码保护技术的原理和几种主要的工具软件。分析了源代码保护与破解技术的原理,列举并对比了几种常见保护工具的性能,最终提供了一些.Net源代码保护的建议。 关键词:.;源代码保护;源代码混淆;编译原理;保护 :TP311:A:1009-3044(2011)10-2330-03 .Net框架,是微软公司面向互联X时代研发的新一代软件开发与应用平台,以其高效率的开发环境,正在逐渐取代旧的技术而占领市场,是未来essageBox.Shootesoft、MaxtoCode等采用了这种方法。 这类保护也存在着一定弊端,当程
2、序运行后元数据中的字符串会解密到在内存中。通过跟踪内存,可以读取出这些字符串。但比起第一种方法,还是要增加很大破解难度的。 1.4流程混淆技术 流程混淆目的是使反编译的时候出错,让反编译工具失效。反编译工具通常使用的是静态分析的方法,为了防止静态分析,常见的方式是使用跳转指令,跳转的目标位置是另一条指令的中间,这样在静态分析时便会出现混乱。具体操作起来即是把方法中的代码分成若干段,并调整每一段在代码中的先后次序,然后利用跳转语句按照正确的次序连接出本来的流程。原理图如图2所示。 目前主流的混淆器都提供流程混淆,如DotfuscatorProfessional版,Xen
3、oCode,BabelObfuscator等。 不过,流程混淆也有它的不足,不能防止ILDasm反编译出IL,因为根据微软的设计,ILDasm无法理解的IL,.NetFrameeeeotesoftProtector等。 解释原理前,首先需要了解一下CLI(通用语言基础结构,monLanguageInfrastructure)的解释原理: CLI接到程序集需要解释的请求后,动态的从内存中取出一段IL代码,然后交由CLI解释成机器语言,提交给CPU执行。 MaxtoCode之类工具的工作原理如下: 当CLI提取IL代码时,MaxtoCode提供的解释环境将内存中加密过
4、的IL代码解密,然后交给CLI。提取完毕后,MaxtoCode再将内存中的这段代码还原回加密状态。 采用这种方法后,IL代码都经过了加密,所以基于静态分析的反编译器是无法反编译的。 1.7水印 所谓水印是将信息或标识之类的数据隐蔽地嵌入.程序中,处理后不会影响程序的运行,但是可以跟踪软件的流通源头。对于面向少量客户开发的软件,如果在交付程序的过程中,针对每一个客户,提供加有不同标识的程序,那么发现盗版后,就可以追查出盗版的源头来,并可以作为证据申请相关的法律维权。 支持给.程序加水印的工具,例如有DotfuscatorProfessional版,其水印处理算法不会增
5、加应用程序的大小,也不会引入可能破坏应用程序的额外元数据。 1.8加密锁(加密狗) 加密锁是一种基于硬件的软件保护工具,通过一个类似U盘一样形状的USB设备,对软件进行保护。某些加密狗是通过对所要保护软件进行处理,加入一个验证函数,来验证加密狗是否在机器上插着。更高级的加密狗,可以将程序的核心函数保存在加密狗的硬件中,这样没有加密狗时,既不能运行程序,也使企图对软件进行反编译的人无法得到这些函数。 目前也出现了支持.Net的加密狗,例如SafeNet公司的圣天狗等。 当然,对于加密狗,也存在一定的风险。某些黑客专门针对各种加密狗进行破解而不是针对某款软件,当某种型号
6、的加密狗被破解后,意味着使用该型号的所有软件都同时被破解了。 2关于选择混淆工具的建议 以上介绍了很多.Net源代码保护技术,那么该采用那种技术或工具呐?根据使用的对象,这里给出如下的建议: 1)ASP.的代码:如果服务器代码在公司内部,此时更需要关注的是,完善X络安全工作与保密制度。做得好的话,可以不用采取代码混淆等保护措施,因为用户通过浏览器是无法获得服务器代码的。如果服务器代码是作为面向客户的产品,那么请参考下面的相关建议。 2)面向单一客户的软件项目:这种软件的需求往往都是客户自己提出的,实现的方案没有什么技术机密可言,软件一般也没有注册的必要。此时也可以不
7、采用保护的措施。如果不想让客户了解软件的具体实现代码,可以采用VisualStudio自带的Dotfuscator免费版进行名称混淆,客户应该就没有能力解读了。 3)面向多个大客户的商业软件:因为掌握客户具体是谁,出了问题更多是采用法律途径解决。代码保护方面,主要是对注册相关的代码进行保护,可以采用Dotfuscator免费版进行名称混淆。或者将相关代码用C或C++实现。 4)面向公众的商业软件:需要面对各种用户,包括破解者。所以最好采用最强大的和最新版的保护工具,通过前面的技术原理分析,如果采用软件手段推荐采
此文档下载收益归作者所有