《程序保护方法和装置.pdf》由会员分享,可在线阅读,更多相关《程序保护方法和装置.pdf(10页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102004887A43申请公布日20110406CN102004887ACN102004887A21申请号201010608359922申请日20101227G06F21/2220060171申请人用友软件股份有限公司地址100094北京市海淀区北清路68号用友软件园72发明人张有军74专利代理机构北京友联知识产权代理事务所普通合伙11343代理人尚志峰汪海屏54发明名称程序保护方法和装置57摘要本发明提供一种程序保护方法,包括步骤102,对程序的文件进行加密,得到加密数据;步骤104,接收到对程序的请求时,将加密数据还原为程序的文件以供执行。本发明还提供一种程序保护装置。。
2、通过本发明,可以将程序的文件通过加密等多种保护方式进行处理,仅在需要运行程序的时候,处理后的程序数据还原以运行。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书5页附图2页CN102004900A1/2页21一种程序保护方法,其特征在于,包括步骤102,对程序的文件进行加密,得到加密数据;步骤104,接收到对所述程序的请求时,将所述加密数据还原为所述程序的文件以供执行。2根据权利要求1所述的程序保护方法,其特征在于,在所述步骤102中,还包括在对所述程序的文件进行加密后,生成所述加密数据的校验码;在所述步骤104中,在接收到所述请求时,还包括在将所述加密数据还。
3、原前,通过所述校验码判断所述加密数据是否完整,并在所述加密数据完整时,将所述加密数据还原。3根据权利要求1所述的程序保护方法,其特征在于,在所述步骤102中,还包括在对所述程序的文件进行加密前,在所述程序的文件中加入授权信息;在所述步骤104中,还包括在将所述加密数据还原后,检查还原后的程序的文件中是否具有所述授权信息,并在所述还原后的程序的文件中具有所述授权信息时,允许所述还原后的程序的文件被执行,否则产生异常信息。4根据权利要求1所述的程序保护方法,其特征在于,在所述步骤104中,还包括无法将所述加密数据还原时,产生异常信息以响应所述请求。5根据权利要求1至4中任一项所述的程序保护方法,其。
4、特征在于,在所述步骤102中,还包括为所述加密数据设置版本信息;所述程序保护方法还包括根据所述版本信息,判断是否对所述程序的文件进行更新。6一种程序保护装置,其特征在于,包括加密模块,对程序的文件进行加密,得到加密数据;解密模块,出现对所述程序的请求时,所述解密模块将所述加密数据还原为所述程序的文件以供执行。7根据权利要求6所述的程序保护装置,其特征在于,还包括校验码生成模块,在所述加密模块对所述程序的文件进行加密后,生成所述加密数据的校验码;校验模块,在所述解密模块将所述加密数据还原前,所述校验模块通过所述效验码判断所述加密数据是否完整,并在所述加密数据完整时,通知所述解密模块将所述加密数据。
5、还原。8根据权利要求6所述的程序保护装置,其特征在于,还包括授权模块,在所述加密模块对所述程序的文件加密前,在所述程序的文件中加入授权信息;授权检查模块,在所述解密模块将所述加密数据还原后,检查还原后的程序的文件中是否具有所述授权信息,并在所述还原后的程序的文件中具有所述授权信息时,允许所述程序的文件被执行。9根据权利要求6所述的程序保护装置去,其特征在于,还包括异常通知模块,在所述解密模块无法将所述加密数据还原时,产生异常信息以响应所述请求。10根据权利要求6至9中任一项所述的程序保护装置,其特征在于,还包括权利要求书CN102004887ACN102004900A2/2页3版本设置模块,在。
6、所述加密模块对所述程序的文件进行加密后,为所述加密数据设置版本信息,用户根据所述版本信息,判断是否对所述程序的文件进行更新。权利要求书CN102004887ACN102004900A1/5页4程序保护方法和装置技术领域0001本发明涉及一种程序保护方法和装置。背景技术0002在网络和软件技术持续发展的情况下,客户期待更丰富的交互体验,更加方便的办公模式。从而出现了基于浏览器的开发模式,也就是B/S开发模式。只要有浏览器就能办公,极大的方便了用户的方便性。并且降低了软件的维护成本。0003但是在开发过程中,基本上都是用服务器脚本来开发,比如HTMLHYPERTEXTMARKUPLANGUAGE,。
7、超文本链接标示语言、JAVASCRIPT、JSPJAVASERVERPAGE等等。由于都是明码,代码基本没有秘密可言,在走入市场后的保护措施也是极其困难。程序一旦发版,使用者可以随便改开发商的代码,软件公司有非常不容易发现,更不好定位。0004还有就是由于病毒的泛滥,如果是病毒恶意的修改了客户服务器上的代码,更加将用户置于危险当中。0005另外就是服务器脚本是以文件的形式存在的,存在于各个文件夹中,如果有黑客在服务器的目录中添加一个文件来执行,更是防不慎防。0006还有就是软件开发商的版权问题,代码发布时,不同的客户可能购买的模块的不同,开发商给客户的LICENSE客户购买开发商的软件时,开发。
8、商给客户的授权证书也不同,目前的的授权只是针对关键代码加以保护,由于程序都是基于文件的服务器端脚本,以明码文件的方式保存在各个文件当中,所以破解就相对容易的多,由于文件比较分散,基于文件的加密友比较困难。这就增加了代码保护的难度。0007代码的升级也是一个问题。由于软件程序比较分散,哪些需要升级,哪些不需要升级不好做出判断。这样就造成软件升级非常空难,现在的常规做法就是把最新的开发成果给客户完全更新过去,没有针对性,这样对最新的开发成果保护也非常不利。另外还有客户在现有软件的基础上做的二次开发,升级的时候,实施人员往往不是程序员本身,这样就不好判断是否是开发商提供的代码,还是客户自己开发的代码。
9、,这样对客户的个性化开发也有影响,对个性化开发非常不利。0008由于以上原因,需要一种对程序的代码进行保护的方法,可以不将名码公开,并对其做一些安全保护上的处理,有保证代码在运行的时候正常使用。发明内容0009本发明所要解决的技术问题在于,提供一种对程序的代码进行保护的方法,可以不将名码公开,并对其做一些安全保护上的处理,有保证代码在运行的时候正常使用。0010有鉴于此,本发明提供一种程序保护方法,包括步骤102,对程序的文件进行加密,得到加密数据;步骤104,接收到对程序的请求时,将加密数据还原为程序的文件以供执行。通过该技术方案,使用加密方式保护程序。0011在上述技术方案中,优选地,在步。
10、骤102中,还包括在对程序的文件进行加密后,说明书CN102004887ACN102004900A2/5页5生成加密数据的校验码;在步骤104中,在接收到请求时,还包括在将加密数据还原前,通过校验码判断加密数据是否完整,并在加密数据完整时,将加密数据还原。通过该技术方案,使用校验码保护程序。0012在上述技术方案中,优选地,在步骤102中,还包括在对程序的文件进行加密前,在程序的文件中加入授权信息;在步骤104中,还包括在将加密数据还原后,检查还原后的程序的文件中是否具有授权信息,并在还原后的程序的文件中具有授权信息时,允许还原后的程序的文件被执行,否则产生异常信息。通过该技术方案,使用授权信。
11、息保护程序。0013在上述技术方案中,优选地,在步骤104中,还包括无法将加密数据还原时,产生异常信息以响应请求。0014在上述技术方案中,优选地,在步骤102中,还包括为加密数据设置版本信息;程序保护方法还包括根据版本信息,判断是否对程序的文件进行更新。0015本发明还提供一种程序保护装置,包括加密模块,对程序的文件进行加密,得到加密数据;解密模块,出现对程序的请求时,解密模块将加密数据还原为程序的文件以供执行。通过该技术方案,使用加密方式保护程序。0016在上述技术方案中,优选地,还包括校验码生成模块,在加密模块对程序的文件进行加密后,生成加密数据的校验码;校验模块,在解密模块将加密数据还。
12、原前,校验模块通过效验码判断加密数据是否完整,并在加密数据完整时,通知解密模块将加密数据还原。通过该技术方案,使用校验码保护程序。0017在上述技术方案中,优选地,还包括授权模块,在加密模块对程序的文件加密前,在程序的文件中加入授权信息;授权检查模块,在解密模块将加密数据还原后,检查还原后的程序的文件中是否具有授权信息,并在还原后的程序的文件中具有授权信息时,允许程序的文件被执行。通过该技术方案,使用授权信息保护程序。0018在上述技术方案中,优选地,还包括异常通知模块,在解密模块无法将加密数据还原时,产生异常信息以响应请求。0019在上述技术方案中,优选地,还包括版本设置模块,在加密模块对程。
13、序的文件进行加密后,为加密数据设置版本信息,用户根据版本信息,判断是否对程序的文件进行更新。0020根据上述技术方案,可以实现一种程序保护方法和装置,可以将程序的文件通过加密等多种保护方式进行处理,仅在需要运行程序的时候,处理后的程序数据还原以运行。附图说明0021图1是根据本发明的一个实施例的程序保护方法的流程图;0022图2是根据本发明的一个实施例的程序保护装置的框图;0023图3是根据本发明的一个实施例的程序保护方法的部分工作流程示意图;0024图4是根据本发明的一个实施例的程序保护方法的部分工作流程示意图。具体实施方式0025为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附。
14、图和具体实施方式对本发明进行进一步的详细描述。说明书CN102004887ACN102004900A3/5页60026在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。0027图1是根据本发明的一个实施例的程序保护方法的流程图。0028如图1所示,有鉴于此,本发明提供一种程序保护方法,包括步骤102,对程序的文件进行加密,得到加密数据;步骤104,接收到对程序的请求时,将加密数据还原为程序的文件以供执行。通过该技术方案,使用加密方式保护程序。0029在上述技术方案中,在步骤102中,还。
15、包括在对程序的文件进行加密后,生成加密数据的校验码;在步骤104中,在接收到请求时,还包括在将加密数据还原前,通过校验码判断加密数据是否完整,并在加密数据完整时,将加密数据还原。通过该技术方案,使用校验码保护程序。0030在上述技术方案中,在步骤102中,还包括在对程序的文件进行加密前,在程序的文件中加入授权信息;在步骤104中,还包括在将加密数据还原后,检查还原后的程序的文件中是否具有授权信息,并在还原后的程序的文件中具有授权信息时,允许还原后的程序的文件被执行,否则产生异常信息。通过该技术方案,使用授权信息保护程序。0031在上述技术方案中,在步骤104中,还包括无法将加密数据还原时,产生。
16、异常信息以响应请求。0032在上述技术方案中,在步骤102中,还包括为加密数据设置版本信息;程序保护方法还包括根据版本信息,判断是否对程序的文件进行更新。0033图2是根据本发明的一个实施例的程序保护装置的框图;0034本发明还提供一种程序保护装置200,包括加密模块202,对程序的文件进行加密,得到加密数据;解密模块204,出现对程序的请求时,解密模块204将加密数据还原为程序的文件以供执行。通过该技术方案,使用加密方式保护程序。0035在上述技术方案中,还包括校验码生成模块206,在加密模块202对程序的文件进行加密后,生成加密数据的校验码;校验模块208,在解密模块204将加密数据还原前。
17、,校验模块208通过效验码判断加密数据是否完整,并在加密数据完整时,通知解密模块204将加密数据还原。通过该技术方案,使用校验码保护程序。0036在上述技术方案中,还包括授权模块210,在加密模块202对程序的文件加密前,在程序的文件中加入授权信息;授权检查模块212,在解密模块204将加密数据还原后,检查还原后的程序的文件中是否具有授权信息,并在还原后的程序的文件中具有授权信息时,允许程序的文件被执行。通过该技术方案,使用授权信息保护程序。0037在上述技术方案中,还包括异常通知模块214,在解密模块204无法将加密数据还原时,产生异常信息以响应请求。0038在上述技术方案中,还包括版本设置。
18、模块216,在加密模块202对程序的文件进行加密后,为加密数据设置版本信息,用户根据版本信息,判断是否对程序的文件进行更新。0039图3是根据本发明的一个实施例的程序保护方法的部分工作流程示意图。0040本实施例中,在程序文件发布为服务器脚本时,进行以下处理0041步骤302,加载程序文件,这个过程分为两个方面对于大型的软件提供商都有自说明书CN102004887ACN102004900A4/5页7己的软件开发工具,在开发工具保存编写好的程序文件时,就可以直接进入下一个环节;对于小型的软件公司来说,没有集成的开发环境,开发成果都是具体的程序文件,对于这种情况,只能是在软件发布的时候遍历所有程序。
19、文件,逐个提取文件内容,然后进入下一个环节。0042步骤304,进行添加授权信息针对具体的客户设定,由于是把程序当成数据来处理,所以开发商还可以更具具体情况添加其他的一些辅助信息。0043步骤306,加密,将上述经过加工的程序内容加密,生成一个加密二进制数据。0044步骤308,生成MD5码MESSAGEDIGESTALGORITHMMD5中文名为消息摘要算法第五版为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护,为了在运行是检查该文件的完整性,防止有恶意的程序或破解人员修改上述生成的加密数据,在上一个环节生成加密文件的基础上生成一个MD5码。如果要为软件提供更高的安全级别,可。
20、以将生成的MD5码写入加密卡。这样程序文件如果被改动,马上就能判断出来。还提供版本信息,根据版本号将不同的的程序做成版本信息不同的脚本,很容易就可以使用新版本的脚本来升级客户的软件,即使不懂程序的人也能胜任这个工作。0045步骤310,发布信息和该服务器脚本的最后修改时间存放到该数据结构。0046同时,在数据库上建一个表,或者用其他的存储介质上新建一个存储格式,结构如下0047文件路径名就是服务器脚本的相对路径名称,0048文件内容一个加密文件具体一个程序文件加密后的二进制文件。0049MD5码文件内容的MD5码值。0050版本信息。0051发布信息一个辅助的功能,填写一个关于发布是的主要事宜。
21、。0052最后修改时间就是该服务器脚本在发布前的最后一次修改的时间。0053由于可执行的程序文件都成了加过密的二进制文件,服务器不能直接执行,所以上表用户对数据库脚本进行反向处理。0054图4是根据本发明的一个实施例的程序保护方法的部分工作流程示意图。0055如图4所示,本实施例中,在运行时,浏览器发出一个请求,服务器通过上述描述的代理程序来加载程序数据。通过以下几个步骤,生成服务器可用的程序数据,并将执行结果返回浏览器。0056步骤402,用路径名匹配从数据库或其他的存储介质中加载程序数据。0057步骤404,用MD5码检查数据的完整性。0058步骤406,判断数据是否完整。因为一个文件的M。
22、D5码是唯一的,如果该文件有过改动,该文件的MD5必定不一样。如果不一样就可以进入步骤416。如果没有问题,再检查MD5码是否被改过可以用加密卡,如果没有被改过,证明这个文件没有被恶意修改过,证明现在这个文件时安全的,可以放心使用,进入步骤408。0059步骤408,进行解密。0060步骤410,判断解密是否成功如果解密成功,进入步骤412,如果由于各种原因失败,则进入步骤416。解密过程是一个相当复杂和耗费时间的过程,为了提供服务器的执行效率,将解密好的数据存放到内存中。如果再次使用则直接从内存中提取,提高效率和减少说明书CN102004887ACN102004900A5/5页8服务器压力。。
23、0061步骤412,进行授权检查。0062步骤414,判断是否通过授权检查授权成功,交到服务器执行,将结果返回到浏览器;没有通过授权,进入步骤416,抛出相应的异常信息。0063通过本发明的技术方案,可以实现一种程序保护方法和装置,其优点在于00641、一定的程度上加强了对开发商知识产权的保护。由于现有的技术提供的是一个个单独的明码文件,这样客户就能轻易的看到程序代码,这样程序就没有了秘密可言,知识产权就得不到有效的保护。盗版就变得非常容易。如果用本发明的技术方案发布程序,代码就是数据,因为是数据,怎么处理都行,并且保证了其完整性。如果有人想复制,就变得非常困难,甚至不可能。00652、一定的。
24、程度上也加强了对客户的保护,由于发布的程序是数据,并且有严格的完整性检查,保证运行时程序是没有问题的。如果有恶意的程序修改了数据库中或存储介质中数据,马上就能发现,马上就能发出预警。这样服务器只执行从数据库或存储介质中数据,对其他文件不执行,也就杜绝了服务器误执行不明文件。从而极大的保护了客户的代码安全。只有安全的代码才能产生正确的结果。00663、降低软件升级的空难。原有技术是以文件的方式存放的功能。如果升级的话,只能重新拷贝一份服务器的程序,覆盖对应的文件,由于比较分散,毕竟实施人员不是开发人员,极易出现错误,带来不必要的损失。如果用本文提到的方法发布的软件,程序就是数据,只要把对应的功能重新生成对应的数据数据库的脚本,或者其他存储介质的文件导入就行了,即使实施人员不到现场也不会出错,从而降低了实施的难度。也极大的节约的开发商的实施成本。0067以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说明书CN102004887ACN102004900A1/2页9图1图2说明书附图CN102004887ACN102004900A2/2页10图3图4说明书附图CN102004887A。