.net 代码保护的问题

此博客为转载内容,转载自https://www.cnblogs.com/spsdotnet/archive/2005/06/22/178882.html ,涉及C#相关知识。
      微软所推出的.net平台实现了多种编程语言能够和谐地进行交互,共享丰富的基于对象的框架,包含在一个通用运行库引擎中,使用实时编译功能运行。.net的应用程序集的可执行代码是中间语言(MSIL),这些中间语言代码比二进制机器代码高级得多,但是其中的中间语言代码是容易被理解的标识符和算法,同时还包括解释文件的预期运行时的可读元数据。因此,如果您开发的拥有自主知识产权的软件代码事先没有加以保护,那么您的软件产品将被他人借助反编译工具获取您的软件代码,破解您的程序,这样您的产品将蒙受巨大的损失。   

        针对.NET程序集的代码不安全性,发现国内代码模糊化的工具产品──代码保护专家 for .net  www.spsdotnet.com。该产品使用了三项关键的代码模糊处理技术:标识符重命名、控制流模糊化、字符串加密。对应用程序进行深度的代码模糊处理,使得应用程序的中间代码,让人看了不知所云,无法改动,而且它还会使反编译器难以下手,但不影响原程序的执行功能,从而有效地防止反编译工具进行反编译,提高了应用程序集的抗反编译能力。

标识符重命名  
         标识符重命名就是将应用程序中的标识符进行重新命名,包括命名空间命名、类型命名、字段命名、属性命名、方法命名等。  代码保护专家 for .net对标识符重命名,采用重命名过载技术,即对不同类型定义的标识符,全部命名为同一名称,但保留命名的层次结构,而相同类型定义的标识符,则顺序递增命名。  

控制流模糊化  
          控制流模糊就是将应用程序中的执行语句顺序打乱,同时添加混淆语句,以阻止反编译工具进行反编译,提高理解语句的难度。  
        代码保护专家 for .net对控制流模糊提供轻、中、高三种模糊强度选择,用户根据需要任意选择。用户的应用程序经控制流模糊化处理后,反编译工具无法将用户的程序反编译成高级语言代码,而且可能导致反编译工具出现严重错误。  
 字符串加密  
            字符串加密是将应用程序中的用户自定义的字符串进行加密,从而增加理解该程序集中间代码的难度。  用户程序中往往包含许多字符串,软件破解者常常根据这些字符串来跟踪用户程序的运行过程,从而破解软件。用户使用代码保护专家 for .net的字符串加密功能对字符串进行加密,会让破解者无从下手。

             MSIL是将.Net代码转化为机器语言的一个中间过程。它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言   MSIL是将.Net代码转化为机器语言的一个中间过程。它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言。当用户编译一个.Net程序时,编译器将源代码翻译成一组可以有效地转换为本机代码且独立于CPU 的指令。当执行这些指令时,实时(JIT)编译器将它们转化为CPU特定的代码。由于公共语言运行库支持多种实时编译器,因此同一段MSIL代码可以被不同的编译器实时编译并运行在不同的结构上。   从理论上来说,MSIL将消除多年以来业界中不同语言之间的纷争。在.Net的世界中可能出现下面的情况:一部分代码可以用Effil实现,另一部分代码使用C#或VB完成的,但是最后这些代码都将被转换为中间语言。这给程序员提供了极大的灵活性,程序员可以选择自己熟悉的语言,并且再也不用为学习不断推出的新语言而烦恼了

下载工具地址: www.spsdotnet.com/page.aspx?pageid=150&pos=0044

转载于:https://www.cnblogs.com/spsdotnet/archive/2005/06/22/178882.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值