一种软件版本保护实现方法和系统的制作方法

文档序号:6438388阅读:177来源:国知局
专利名称:一种软件版本保护实现方法和系统的制作方法
技术领域
本发明涉及嵌入式应用技术领域,尤其涉及一种软件版本保护实现方法和系统。
背景技术
人类社会已经踏入了 21世纪。科学技术的发展使人类的活动范围不断扩展,计算机网络的进步与发展将人类社会推进了信息社会和知识经济时代,并创造了一个超时空的网络空间,其中,计算机软件产业的发展在很大程度上影响着一个国家的社会经济,并迅速地渗透到人们的生活,产生巨大的冲击力。但互联网提供给我们的并不只是一个新的平台,它还给人们提供了一个迥异于传统市场经济的追逐利益的场所和手段,而正是由于这种新的场所和手段,在增进经济发展和社会进步的同时,也打破了原有法律体系所建立起来的利益平衡。为了保护产品的知识产权,每个公司都想出来很多方法,传统的针对嵌入式应用场合的加密方式通常都只针对文件系统的加密,采用文件系统自身加密方式进行加密,这种方法方式易于破解,并且会影响系统运行的效率,不利于产品的保护。

发明内容
本发明提供一种软件版本保护实现方法和系统,用以解决现有技术中软件版本保护方式易破解且影响系统运行效率的问题。为了解决上述技术问题,本发明采用的技术方案如下:—方面,本发明提供一种软件版本保护实现方法,包括:对制作的版本文件进行加密;当版本启动时,将所述版本文件加载到内存中,并获取所述版本文件的密钥,解密所述版本文件;将所述版本文件中的文件系统拷贝到内存高地址,并利用所述版本文件中的内核文件启动内核;创建基于内存的MTD(Memory Technology Device,内存技术设备)分区,挂载所述MTD分区,单板启动。进一步地,本发明所述方法中,所述对版本文件进行加密后还包括:将版本密钥烧录在硬件加S芯片中;所述获取所述版本文件的密钥的方式包括:读取所述硬件加密芯片,获取所述硬件加密芯片中的版本文件密钥。进一步地,本发明所述方法中,所述将文件系统拷贝到内存高地址具体包括:获取所述文件系统的大小,基于所述文件系统的大小在所述内存末端的高地址处为所述文件系统分配内存地址,进行文件系统拷贝。进一步地,本发明所述方法中,所述创建基于内存的MTD分区时,将创建的MTD分区地址映射到拷贝所述系统文件的内存地址。
进一步地,本发明所述方法中,所述版本文件解密后还包括:对解密后的版本文件的正确性及合法性进行校验,当校验通过时,进行系统文件拷贝操作。另一方面,本发明还提供一种软件版本保护实现系统,包括:版本加密设备和版本解密设备;所述版本加密设备,用于对制作的版本文件进行加密;所述版本解密设备,包括:版本加载模块,用于当版本启动时,将所述版本文件加载到内存中,并获取所述版本文件的密钥,解密所述版本文件;文件拷贝模块,用于将解密后的版本文件中的文件系统拷贝到内存高地址;内核启动模块,用于利用解密后的版本文件中内核文件启动内核;分区模块,用于在内核启动后,创建基于内存的MTD分区,挂载所述MTD分区,单板启动。进一步地,本发明所述系统中:所述版本加密设备还包括:密钥烧录模块,用于在对版本文件进行加密后,将版本密钥烧录在硬件加密芯片中;所述版本加载模块,还用于读取所述硬件加密芯片,获取所述硬件加密芯片中的版本文件密钥。进一步地,本发明所述系统中,所述文件拷贝模块具体包括:信息获取子模块,用于获取所述文件系统的大小;地址分配子模块,用于基于所述文件系统的大小在所述内存末端的高地址处为所述文件系统分配内存地址;文件拷贝子模块,用于基于分配的内存地址进行文件系统拷贝。进一步地,本发明所述系统中,所述分区模块具体用于,在创建基于内存的MTD分区时,将创建的MTD分区地址映射到拷贝所述系统文件的内存地址。进一步地,本发明所述系统中,所述版本解密设备还包括:校验模块,用于在所述版本文件解密后,对解密后的版本文件的正确性及合法性进行校验,当校验通过时,触发所述文件拷贝模块。与现有技术相比,本发明有益效果如下:本发明所述的方法和系统,在制作版本时通过密钥对整个版本进行加密,在版本启动时,对版本进行解密,使得软件版本具有很高的保密性,从而避免了产品被抄袭,以及别人通过分析版本中有用信息对产品进行攻击的可能性。


图1为本发明提供的一种软件版本保护实现方法的流程图;图2为本发明提供的一种软件版本保护实现系统的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供一种软件版本保护实现方法,主要应用在嵌入式应用环境中,该方法在制作版本时通过密钥对整个版本进行加密,然后在使用BOOTLOADER启动版本时,通过BOOT LOADER对版本进行解密,用以保证软件版本不被非法破解,实现保护企业产品知识产权的目的。如图1所示,本发明实施例提供的软件版本保护实现方法,具体包括:步骤S101、对制作的版本文件进行加密;该步骤中,版本文件包括:BOOT to RAM、内核、文件系统;该步骤中,对版本文件进行加密后,优选地,将版本密钥烧录在硬件加密芯片中。需要说明的是,该步骤所述的加密过程通常由版本制作方完成,后续解密过程则是对加密版本文件的应用。步骤S102、当版本启动时,将所述版本文件加载到内存中,并获取所述版本文件的密钥,解密所述版本文件;步骤S103、将所述版本文件中的文件系统拷贝到内存高地址,并利用所述版本文件中的内核文件启动内核;该步骤中,将文件系统拷贝到内存高地址,具体包括:获取所述文件系统的大小,基于所述文件系统的大小在所述内存末端的高地址处为所述文件系统分配内存地址,进行文件系统拷贝;该步骤中,利用所述版本文件中的内核文件启动内核,具体包括:将解密后的版本文件中的内核文件进行解压,并跳到解压后的内核文件入口处执行。步骤S104、内核启动后,创建基于内存的MTD分区,挂载所述MTD分区,单板启动。该步骤中,创建基于内存的MTD分区时,将创建的MTD分区地址映射到拷贝所述系统文件的内存地址。为了更清楚的表述本发明,下面给出本发明一个较佳的实施例,并结合对实施例的描述,进一步给出本发明的技术细节。本发明实施例所述的方法的应用场景主要涉及到嵌入应用环境中,在嵌入式应用环境中,通常BOOT分为两个阶段情况,本发明实施例可以在BOOT第一阶段对版本进行解密,在解密开始之前需要读取硬件加密电路中密钥,从而确保版本文件的安全。下面分别从版本加密和版本解密两个方面进行阐述:一,本发明实施例所述的对嵌入式软件版本的加密的方案如下:I)编译出BOOT RAM阶段BOOT、内核、文件系统。2)通过版本制作软件将BOOT、内核、文件系统制作成整个版本文件。3)通过密钥对整个版本进行加密,生成最终版本文件;优选地,对版本文件进行加密后,将版本的密钥烧录在硬件加密芯片中;其中,硬件加密芯片的密钥为一次性烧录,不可复制。二,对于版本启动解密的方案如下:I)版本启动进入BOOT第一阶段,将整个版本文件(BOOT to RAM、内核、文件系统)从FLASH中加载到内存中。
2)通过BOOT第一阶段驱动程序读取硬件加密芯片中的版本密钥。3)通过读取的版本的密钥对整个版本文件进行解密。4)通过对版本文件进行校验确保文件正确无误,并且对版本合法性进行校验,避免别人恶意篡改版本的可能性。5)在内存空间的末尾高地址处,为版本文件中的文件系统分配内存地址,并将文件系统拷贝到所述内存地址中;该步骤主要用于后面创建基于内存的MTD (memory technology device,内存技术设备)分区;该步骤中,分配的内存地址大小根据文件系统的大小确定。6)对解密后的版本文件中的内核版本文件进行解压,然后跳到解压内核文件入口处进行执行。7)在内核启动后,创建基于内存的MTD分区,分区地址映射到BOOT阶段将文件系统拷贝的内存地址。8)挂载所述MTD分区,挂载成功后,单板进入正常工作状态。通过上述具体实施方案可以看出,本发明所述的方法可以充分保证软件版本的安全,可以避免别人抄袭产品的可能性,甚至可以避免别人破解后恶意攻击产品的可能。如图2所示,本发明实施例还提供一种软件版本保护实现系统,包括:版本加密设备210和版本解密设备220 ;版本加密设备210,用于对制作的版本文件进行加密;优选地,该版本加密设备210,在对版本文件进行加密后,将版本密钥烧录在硬件加密芯片中。版本解密设备220,具体包括:版本加载模块221,用于当版本启动时,将版本文件加载到内存中,并获取版本文件的密钥,解密版本文件;优选地,该版本加载模块221读取所述硬件加密芯片,获取所述硬件加密芯片中的版本文件密钥。文件拷贝模块222,用于将解密后的版本文件中的文件系统拷贝到内存高地址;该文件拷贝模块222具体包括:信息获取子模块2221,用于获取所述文件系统的大小;地址分配子模块2222,用于基于所述文件系统的大小在所述内存末端的高地址处为所述文件系统分配内存地址;文件拷贝子模块2223,用于基于分配的内存地址进行文件系统拷贝。内核启动模块223,用于利用解密后的版本文件中内核文件启动内核;分区模块224,用于在内核启动后,创建基于内存的MTD分区,挂载所述MTD分区,单板启动。具体地,该分区模块224,在创建基于内存的MTD分区时,将创建的MTD分区地址映射到拷贝所述系统文件的内存地址。进一步地,版本解密设备220还包括:校验模块225,用于在所述版本文件解密后,对解密后的版本文件的正确性及合法性进行校验,当校验通过时,触发文件拷贝模块222。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种软件版本保护实现方法,其特征在于,包括: 对制作的版本文件进行加密; 当版本启动时,将所述版本文件加载到内存中,并获取所述版本文件的密钥,解密所述版本文件; 将所述版本文件中的文件系统拷贝到内存高地址,并利用所述版本文件中的内核文件启动内核; 创建基于内存的内存技术设备MTD分区,挂载所述MTD分区,单板启动。
2.如权利要求1所述的方法,其特征在于, 所述对版本文件进行加密后还包括:将版本密钥烧录在硬件加密芯片中; 所述获取所述版本文件的密钥的方式包括:读取所述硬件加密芯片,获取所述硬件加密芯片中的版本文件密钥。
3.如权利要求1所述的方法,其特征在于,所述将文件系统拷贝到内存高地址具体包括:获取所述文件系统的大小,基于所述文件系统的大小在所述内存末端的高地址处为所述文件系统分配内存地址,进行文件系统拷贝。
4.如权利要求1所述的方法,其特征在于,所述创建基于内存的MTD分区时,将创建的MTD分区地址映射到拷贝所述系统文件的内存地址。
5.如权利要求1或2或3或4所述的方法,其特征在于,所述版本文件解密后还包括:对解密后的版本文件的正确性及合法性进行校验,当校验通过时,进行系统文件拷贝操作。
6.一种软件版本保护实现系统,其特征在于,包括:版本加密设备和版本解密设备; 所述版本加密设备,用于对制作的版本文件进行加密; 所述版本解密设备,包括: 版本加载模块,用于当版本启动时,将所述版本文件加载到内存中,并获取所述版本文件的密钥,解密所述版本文件; 文件拷贝模块,用于将解密后的版本文件中的文件系统拷贝到内存高地址; 内核启动模块,用于利用解密后的版本文件中内核文件启动内核; 分区模块,用于在内核启动后,创建基于内存的MTD分区,挂载所述MTD分区,单板启动。
7.如权利要求6所述的系统,其特征在于, 所述版本加密设备还包括:密钥烧录模块,用于在对版本文件进行加密后,将版本密钥烧录在硬件加密芯片中; 所述版本加载模块,还用于读取所述硬件加密芯片,获取所述硬件加密芯片中的版本文件密钥。
8.如权利要求6所述的系统,其特征在于,所述文件拷贝模块具体包括: 信息获取子模块,用于获取所述文件系统的大小; 地址分配子模块,用于基于所述文件系统的大小在所述内存末端的高地址处为所述文件系统分配内存地址; 文件拷贝子模块,用于基于分配的内存地址进行文件系统拷贝。
9.如权利要求6所述的系统,其特征在于,所述分区模块具体用于,在创建基于内存的MTD分区时,将创建的MTD分区地址映射到拷贝所述系统文件的内存地址。
10.如权利要求6或7或8或9所述的系统,其特征在于,所述版本解密设备还包括:校验模块,用于在所述版本文件解密后,对解密后的版本文件的正确性及合法性进行校验,当校验通过时,触发 所述文件拷贝模块。
全文摘要
本发明公开了一种软件版本保护实现方法和系统,所述方法包括对制作的版本文件进行加密;当版本启动时,将所述版本文件加载到内存中,并获取所述版本文件的密钥,解密所述版本文件;将所述版本文件中的文件系统拷贝到内存高地址,并利用所述版本文件中的内核文件启动内核;创建基于内存的内存技术设备MTD分区,挂载所述MTD分区,单板启动。本发明所述方法在制作版本时通过密钥对整个版本进行加密,在版本启动时,对版本进行解密,使得软件版本具有很高的保密性,从而避免了产品被抄袭,以及别人通过分析版本中有用信息对产品进行攻击的可能性。
文档编号G06F21/12GK103106355SQ201110361000
公开日2013年5月15日 申请日期2011年11月15日 优先权日2011年11月15日
发明者彭克青 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1