软件保护方法和系统技术方案

技术编号:15864307 阅读:29 留言:0更新日期:2017-07-23 09:20
本发明专利技术公开了一种软件保护方法,其中,将应用于硬件锁的至少一个可执行程序上传到云锁平台,至少一个可执行程序与软件的至少一个受保护代码段分别对应,云锁平台设置有模拟器,所述方法包括:接收来自软件的执行请求,执行请求用于请求执行至少一个可执行程序中的相应的可执行程序,并且执行请求中带有执行参数和对应相应的可执行程序的标识;模拟器根据标识加载相应的可执行程序并进行翻译执行,在翻译执行过程中在需要输入参数时输入执行参数,从而得出结果数据;向软件返回结果数据。发明专利技术公开的软件保护方法将硬件锁内的可执行程序无缝地用于云锁平台,从而可以利用无限的可扩展的网络资源,又提高了可无限扩展的执行性能。

【技术实现步骤摘要】
软件保护方法和系统
本专利技术涉及软件安全领域,尤其涉及一种软件保护方法和系统。
技术介绍
在现有软件技术中,在软件(在本文中即各类软件,也称为“应用转件”)开发完成之后,其运行于软件开发者(文中也简称为“开发者”)不可控的环境中,该软件所有细节均暴露在使用者面前,若其意欲破解该软件,则传统的保护手段只能延迟其破解进度,而不能有效地阻止软件被破解。目前最有效的软件保护方法是将运行软件必须用到的一些关键代码放到“安全环境”中运行,即,开发者根据开发过程所思所虑来挑选这些关键代码,可以将破解难度提高到接近重写软件的程度。现有技术中所谓的“安全环境”是由特定的硬件提供的,如基于智能芯片的硬件锁(即,硬件加密锁),由于其易于日常使用,因此实际使用中也是这种硬件锁居多,其能提供一定程度的安全。究其具体原理,这种硬件锁通常内置有嵌入式操作系统,可以运行嵌入式程序,基于此嵌入式操作系统,最后开发者所开发的软件通过与硬件锁内的嵌入式程序通信,访问锁内数据,以控制软件的使用。具体地,开发者对设计后的软件所进行的操作如图1所示:步骤1、抽取所设计的应用软件的关键代码;步骤2、对所抽取的关键代码进行封装;步骤3、将封装后的关键代码编译为锁内可执行的嵌入式程序(也可简称为“锁内可执行程序”或“可执行程序”);步骤4、由(硬件锁提供商提供的)导入工具将上述可执行程序导入到硬件锁中,从而完成应用软件的开发。通过上述操作之后,在运行软件的时候,可以通过与硬件锁内的可执行程序通信,以访问锁内数据,以控制软件的使用。然而,该技术在使用过程有以下诸多问题:其一,开发者需要向软件购买者(也即软件的最终使用者,用户)提供一把或者多把硬件锁,因此,软件购买者不仅需要承担购买硬件锁的硬件成本,而且需要负担由此带来的硬件锁采购及管理成本等;其二,硬件锁经常与软件的用户的计算机(personalcomputer;PC机)存在匹配问题,导致用户无法使用软件,或者需要用户重装计算机的系统,甚至更换计算机;严重影响用户的软件使用;其三,硬件锁本身的存储空间小,导致开发者只能移植少量关键代码或者逻辑至硬件锁,因而只能保障软件运行的低等级安全性;其四,业界的硬件锁虽然都包含智能芯片,但性能远不及计算机的性能,加之开发者开发的软件如果比较庞大,或者对运算性能要求比较高,那么硬件锁的性能便不能满足软件的使用要求,因而会降低软件的良好使用性。
技术实现思路
基于以上背景,本专利技术提出一种软件保护方法,其将应用于硬件锁的可执行程序无缝用于云锁平台,通过在云锁平台中设置模拟器来模拟硬件锁的容器环境,从而可以利用无限的可扩展的网络资源,既不用使用受限的硬件锁,又提高了可无限扩展的执行性能。根据本专利技术的一个方面,提供了一种软件保护方法,将应用于硬件锁的至少一个可执行程序上传到云锁平台,至少一个可执行程序与软件的至少一个受保护代码段分别对应,云锁平台设置有模拟器,根据本专利技术的软件保护方法可以包括:接收来自软件的执行请求,执行请求用于请求执行至少一个可执行程序中的相应的可执行程序,并且执行请求中带有执行参数和对应相应的可执行程序的标识;模拟器根据标识加载相应的可执行程序并进行翻译执行,在翻译执行过程中在需要输入参数时输入执行参数,从而得出结果数据;向软件返回结果数据。此外,在将应用于硬件锁的至少一个可执行程序上传到云锁平台之前,根据本专利技术的软件保护方法还可以包括:抽取软件中的至少一个代码段;对抽取的至少一个代码段分别进行封装;将封装后的至少一个代码段分别编译成至少一个可执行程序。可选地,可执行程序可以为二进制可执行程序。进一步地,模拟器可以为ARM指令集模拟器,则上述模拟器根据标识加载相应的可执行程序并进行翻译执行可以包括:ARM指令集模拟器根据标识加载相应的可执行程序,对相应的可执行程序中的二进制序列逐条进行翻译成符合ARM指令集标准的源代码并执行的处理。此外,根据本专利技术的软件保护方法还可以包括:在模拟器根据标识加载相应的可执行程序的同时,在云锁平台侧申请到至少两个缓冲区,其中一个缓冲区用于存储输入参数,另一个缓冲区用于存储结果数据。可选地,根据本专利技术的软件保护方法还可以包括:在接收来自软件的执行请求之后,判断执行请求是否具备对于相应的可执行程序的请求权限;在判断结果为不具备请求权限时,拒绝处理执行请求。根据本专利技术的另一个方面,提供了一种软件保护系统,软件保护系统预存有应用于硬件锁的至少一个可执行程序,至少一个可执行程序与软件的至少一个受保护代码段分别对应,根据本专利技术的装置可以包括:接口模块,其配置为接收来自软件的执行请求,执行请求用于请求执行至少一个可执行程序中的相应的可执行程序,并且执行请求中带有执行参数和对应相应的可执行程序的标识;模拟器,其配置为根据标识加载相应的可执行程序并进行翻译执行,在翻译执行过程中在需要输入参数时输入执行参数,从而得出结果数据;接口模块还配置为向软件返回结果数据。其中,而可执行程序可以为二进制可执行程序。进一步地,模拟器可以为ARM指令集模拟器,ARM指令集模拟器可以配置为根据标识加载相应的可执行程序,对相应的可执行程序中的二进制序列逐条进行翻译成符合ARM指令集标准的源代码并执行的处理。可选地,模拟器可以进一步配置为,在根据标识加载相应的可执行程序的同时,在软件保护系统中申请到至少两个缓冲区,其中一个缓冲区用于存储输入参数,另一个缓冲区用于存储结果数据。优选地,根据本专利技术的装置还可以包括:判定模块,配置为判断接口模块接收的执行请求是否具备对于相应的可执行程序的请求权限,其中,模拟器配置为在判定模块的判断结果为执行请求不具备请求权限时,拒绝处理执行请求。附图说明图1所示为现有技术中软件开发者对设计后的软件所进行的操作的流程图;图2所示为根据本专利技术的一个实施例的软件保护方法的流程图;图3所示为根据本专利技术的一个实施例的软件保护系统的框图;图4所示为根据本专利技术的一个实施例的软件保护系统。具体实施方式在此对本专利技术中提及的术语进行解释,翻译执行服务(见图4)模拟的是硬件锁的容器环境,ARM指令集模拟器模拟的是硬件锁内代码的程序调用过程,即,在本专利技术实施例中,硬件锁内的模块利用软件来模拟实现。其中,ARM指令集是一套标准指令,ARM指令集模拟器是用来解释并执行ARM指令集的,可执行程序是符合ARM指令集的二进制表示的序列流。根据本专利技术的一个实施例,提供了一种软件保护方法,如图2所示为根据本专利技术的软件保护方法的流程图。在根据本专利技术的软件保护方法中,预先将应用于硬件锁的至少一个可执行程序上传到云锁平台,至少一个可执行程序与软件的至少一个受保护代码段分别对应,云锁平台设置有模拟器。根据本专利技术的软件保护方法可以包括:S1,接收来自软件的执行请求,执行请求用于请求执行至少一个可执行程序中的相应的可执行程序,并且执行请求中带有执行参数和对应相应的可执行程序的标识;S2,模拟器根据标识加载相应的可执行程序并进行翻译执行,在翻译执行过程中在需要输入参数时输入执行参数,从而得出结果数据;S3,向软件返回结果数据。此外,在预先将应用于硬件锁的至少一个可执行程序上传到云锁平台之前,根据本专利技术的软件保护方法还可以包括:抽取软件中的至少一个代码段;对抽取的至少一个代码段分别进本文档来自技高网
...
软件保护方法和系统

【技术保护点】
一种软件保护方法,其特征在于,将应用于硬件锁的至少一个可执行程序上传到云锁平台,所述至少一个可执行程序与软件的至少一个受保护代码段分别对应,所述云锁平台设置有模拟器,所述方法包括:接收来自软件的执行请求,所述执行请求用于请求执行所述至少一个可执行程序中的相应的可执行程序,并且所述执行请求中带有执行参数和对应所述相应的可执行程序的标识;所述模拟器根据所述标识加载所述相应的可执行程序并进行翻译执行,在翻译执行过程中在需要输入参数时输入所述执行参数,从而得出结果数据;向软件返回所述结果数据。

【技术特征摘要】
1.一种软件保护方法,其特征在于,将应用于硬件锁的至少一个可执行程序上传到云锁平台,所述至少一个可执行程序与软件的至少一个受保护代码段分别对应,所述云锁平台设置有模拟器,所述方法包括:接收来自软件的执行请求,所述执行请求用于请求执行所述至少一个可执行程序中的相应的可执行程序,并且所述执行请求中带有执行参数和对应所述相应的可执行程序的标识;所述模拟器根据所述标识加载所述相应的可执行程序并进行翻译执行,在翻译执行过程中在需要输入参数时输入所述执行参数,从而得出结果数据;向软件返回所述结果数据。2.根据权利要求1所述的软件保护方法,其特征在于,在将应用于硬件锁的至少一个可执行程序上传到云锁平台之前,所述方法还包括:抽取软件中的至少一个代码段;对抽取的至少一个代码段分别进行封装;将封装后的至少一个代码段分别编译成至少一个可执行程序。3.根据权利要求1所述的软件保护方法,其特征在于,所述可执行程序为二进制可执行程序。4.根据权利要求3所述的软件保护方法,其特征在于,所述模拟器为ARM指令集模拟器,则所述模拟器根据所述标识加载所述相应的可执行程序并进行翻译执行包括:所述ARM指令集模拟器根据所述标识加载所述相应的可执行程序,对所述相应的可执行程序中的二进制序列逐条进行翻译成符合ARM指令集标准的源代码并执行的处理。5.根据权利要求1所述的软件保护方法,其特征在于,还包括:在所述模拟器根据所述标识加载所述相应的可执行程序的同时,在所述云锁平台侧申请到至少两个缓冲区,其中一个缓冲区用于存储所述输入参数,另一个缓冲区用于存储所述结果数据。6.根据权利要求1所述的软件保护方法,其特征在于,还包括:在接收来自软件的执行请求之后,判断...

【专利技术属性】
技术研发人员:孙吉平刘荣华
申请(专利权)人:北京深思数盾科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1