.net源代码保护技术与工具的研究

.net源代码保护技术与工具的研究

ID:21768333

大小:53.00 KB

页数:5页

时间:2018-10-24

.net源代码保护技术与工具的研究_第1页
.net源代码保护技术与工具的研究_第2页
.net源代码保护技术与工具的研究_第3页
.net源代码保护技术与工具的研究_第4页
.net源代码保护技术与工具的研究_第5页
资源描述:

《.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)面向公众的商业软件:需要面对各种用户,包括破解者。所以最好采用最强大的和最新版的保护工具,通过前面的技术原理分析,如果采用软件手段推荐采

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。