脚本编译的方法、脚本执行的方法、相关装置及系统制造方法及图纸

技术编号:19488998 阅读:28 留言:0更新日期:2018-11-17 12:00
本发明专利技术实施例公开了一种脚本编译的方法,包括:获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码。本发明专利技术实施例公开了一种脚本执行的方法、脚本编译装置、脚本执行装置以及脚本执行系统。本发明专利技术实施例生成的脚本难以被反编译工具破解,只有同样获知预编译单元排序规则的脚本执行装置才能执行该脚本,从而大幅度提升了脚本的安全性。

【技术实现步骤摘要】
脚本编译的方法、脚本执行的方法、相关装置及系统
本专利技术涉及计算机处理领域,尤其涉及脚本编译的方法、脚本执行的方法、相关装置及系统。
技术介绍
Lua是一种小巧的脚本语言。Lua脚本可以很容易的被调用,也可以反过来调用其他函数,这使得Lua脚本被广泛的应用。不仅仅作为扩展脚本,还可以作为普通的配置文件,同时,Lua脚本容易理解和维护。目前,可以通过Luac工具对Lua脚本进行编译,并生成字节码,这种字节码可以直接被Lua虚拟机解释执行。由于字节码是二进制格式的,不易约定,因此具有良好的加密效果。然而,采用上述方式生成的Lua字节码很容易被Lua反编译工具破解,破解的门槛很低,因此,不适合采用Lua脚本保存敏感数据,存在严重的信息安全隐患。
技术实现思路
本专利技术实施例提供了一种脚本编译的方法、脚本执行的方法、相关装置及系统,生成的脚本难以被反编译工具破解,只有同样获知预编译单元排序规则的脚本执行装置才能执行该脚本,从而大幅度提升了脚本的安全性。有鉴于此,本专利技术的第一方面提供了一种脚本编译的方法,包括:获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码。本专利技术的第二方面提供了一种脚本执行的方法,包括:接收脚本编译装置发送的目标字节码,其中,所述目标字节码为所述脚本编译装置根据预编译单元排序结果生成的,所述预编译单元排序结果为所述脚本编译装置按照第一排序规则对待编译脚本中的所述多个预编译单元进行排序后得到的;按照所述第一排序规则执行所述目标字节码。本专利技术的第三方面提供了一种脚本执行系统,所述脚本执行系统包括脚本编译装置以及脚本执行装置;所述脚本编译装置,用于获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;所述脚本编译装置,用于按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;所述脚本编译装置,用于根据所述预编译单元排序结果生成目标字节码;所述脚本编译装置,用于向所述脚本执行装置发送所述目标字节码,所述脚本执行装置接收所述脚本编译装置发送的目标字节码;所述脚本执行装置,用于按照所述第一排序规则执行所述目标字节码。本专利技术的第四方面提供了一种脚本编译装置,包括:获取模块,用于获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;排序模块,用于按照第一排序规则对所述获取模块获取的所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;生成模块,用于根据所述排序模块排序得到的所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码。本专利技术的第五方面提供了一种脚本执行装置,包括:接收模块,用于接收脚本编译装置发送的目标字节码,其中,所述目标字节码为所述脚本编译装置根据预编译单元排序结果生成的,所述预编译单元排序结果为所述脚本编译装置按照第一排序规则对待编译脚本中的所述多个预编译单元进行排序后得到的;执行模块,用于按照所述第一排序规则执行所述接收模块接收的所述目标字节码。本专利技术的第六方面提供了一种脚本编译装置,其特征在于,包括:存储器、收发器、处理器以及总线系统;其中,所述存储器用于存储程序;所述处理器用于执行所述存储器中的程序,包括如下步骤:获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码;所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。本专利技术的第七方面提供了一种脚本执行装置,包括:存储器、收发器、处理器以及总线系统;其中,所述存储器用于存储程序;所述处理器用于执行所述存储器中的程序,包括如下步骤:接收脚本编译装置发送的目标字节码,其中,所述目标字节码为所述脚本编译装置根据预编译单元排序结果生成的,所述预编译单元排序结果为所述脚本编译装置按照第一排序规则对待编译脚本中的所述多个预编译单元进行排序后得到的;按照所述第一排序规则执行所述目标字节码;所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。本专利技术的第八方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。从以上技术方案可以看出,本专利技术实施例具有以下优点:本专利技术实施例中,提供了一种脚本编译的方法,首先脚本编译装置获取待编译脚本,其中,待编译脚本包括多个预编译单元,然后脚本编译装置按照第一排序规则对待编译脚本中的多个预编译单元进行排序,以得到预编译单元排序结果,其中,第一排序规则用于指示每个预编译单元的排列顺序,最后脚本编译装置根据预编译单元排序结果生成目标字节码,其中,目标字节码为脚本执行装置按照第一排序规则执行的字节码。通过上述方式,重新对待编译脚本中的各个预编译单元进行排序,由此打乱预编译单元的顺序,增加预编译单元排序的复杂度,因此,得到的脚本难以被反编译工具破解,只有同样获知预编译单元排序规则的脚本执行装置才能执行该脚本,从而大幅度提升了脚本的安全性。附图说明图1为本专利技术实施例中脚本执行系统的一个架构示意图;图2为本专利技术实施例中脚本生成及执行方法一个交互流程示意图;图3为本专利技术实施例中脚本编译的方法一个实施例示意图;图4为本专利技术实施例中操作码指令的一个格式示意图;图5为本专利技术实施例中操作码指令的另一个格式示意图;图6为本专利技术实施例中操作码指令的另一个格式示意图;图7为本专利技术实施例中操作码指令的另一个格式示意图;图8为本专利技术实施例中原始字节码文件格式的一个示意图;图9为本专利技术实施例中自定义字节码文件格式的一个示意图;图10为本专利技术实施例中脚本执行的方法一个实施例示意图;图11为本专利技术应用场景中对脚本进行加密的一个流程示意图;图12为本专利技术实施例中脚本编译装置的一个实施例示意图;图13为本专利技术实施例中脚本编译装置的另一个实施例示意图;图14为本专利技术实施例中脚本编译装置的另一个实施例示意图;图15为本专利技术实施例中脚本编译装置的另一个实施例示意图;图16为本专利技术实施例中脚本编译装置的另一个实施例示意图;图17为本专利技术实施例中脚本执行装置的一个实施例示意图;图18为本专利技术实施例中脚本编译装置的一个结构示意图;图19为本专利技术实施例中脚本执行装置的一个结构示意图;图20为本专利技术实施例中脚本执行系统的一个实施例示意图。具体实施方式本专利技术实施例提供了一种脚本编译的方法、脚本执行的方法、相关装置及系统,生成的脚本难以被反编译工具破解,只有同样获知预编译单元排序规则的脚本执行装置才能执行该脚本,从而大本文档来自技高网...

【技术保护点】
1.一种脚本编译的方法,其特征在于,包括:获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码。

【技术特征摘要】
1.一种脚本编译的方法,其特征在于,包括:获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码。2.根据权利要求1所述的方法,其特征在于,所述多个预编译单元中包括操作码序列,所述操作码序列中包含多个操作码;所述方法还包括:按照第二排序规则对所述操作码序列中的所述多个操作码进行排序,以得到操作码排序结果,其中,所述第二排序规则用于指示每个操作码的排列顺序;所述根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码,包括:根据所述预编译单元排序结果以及所述操作码排序结果生成所述目标字节码,其中,所述目标字节码为所述脚本执行装置按照所述第一排序规则以及所述第二排序规则执行的字节码。3.根据权利要求2所述的方法,其特征在于,所述按照第二排序规则对所述操作码序列中的所述多个操作码进行排序,以得到操作码排序结果之前,所述方法还包括:接收操作码更新指令,其中,所述操作码更新指令中携带目标操作码所对应的修改信息,所述目标操作码属于所述多个操作码中的操作码;根据所述操作码更新指令更新所述目标操作码之间的调用关系,以使所述目标操作码中的每个操作码在被执行时处于可直接调用状态。4.根据权利要求1所述的方法,其特征在于,所述待编译脚本还包括多个元信息;所述方法还包括:按照第三排序规则对所述待编译脚本中的所述多个元信息进行排序,以得到元信息排序结果,其中,所述第三排序规则用于指示每个元信息的排列顺序;所述根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码,包括:根据所述预编译单元排序结果以及所述元信息排序结果生成所述目标字节码,其中,所述目标字节码为所述脚本执行装置按照所述第一排序规则以及所述第三排序规则执行的字节码。5.根据权利要求4所述的方法,其特征在于,所述元信息对应于原始数据;所述获取待编译脚本之后,所述方法还包括:对至少一个原始数据进行修改,以得到目标数据;所述根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码,包括:根据所述预编译单元排序结果以及所述目标数据生成所述目标字节码,其中,所述目标字节码为所述脚本执行装置按照所述第一排序规则以及所述目标数据执行的字节码。6.根据权利要求1所述的方法,其特征在于,所述待编译脚本还包括签名信息,所述签名信息包括第一字符和第二字符;所述获取待编译脚本之后,所述方法还包括:将所述签名信息中的所述第一字符更新为第三字符,根据所述第三字符和所述第二字符确定目标签名信息,其中,所述第一字符和所述第三字符均属于不可打印字符;或,将所述签名信息中的所述第二字符更新为第四字符,根据所述第二字符和所述第四字符确定所述目标签名信息,其中,所述第二字符和所述第四字符均属于可打印字符;或,将所述签名信息中的所述第一字符更新为所述第三字符,并将所述签名信息中的所述第二字符更新为所述第四字符,根据所述第三字符和所述第四字符确定所述目标签名信息;所述根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码,包括:根据所述预编译单元排序结果以及所述目标签名信息生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则以及所述目标签名信息执行的字节码。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述根据所述预编译单元排序结果生成目标字节码之后,所述方法还包括:采用对称加密算法对所述目标字节码进行加密处理,得到目标加密脚本;...

【专利技术属性】
技术研发人员:李发军
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1