【技术实现步骤摘要】
脚本编译的方法、脚本执行的方法、相关装置及系统
本专利技术涉及计算机处理领域,尤其涉及脚本编译的方法、脚本执行的方法、相关装置及系统。
技术介绍
Lua是一种小巧的脚本语言。Lua脚本可以很容易的被调用,也可以反过来调用其他函数,这使得Lua脚本被广泛的应用。不仅仅作为扩展脚本,还可以作为普通的配置文件,同时,Lua脚本容易理解和维护。目前,可以通过Luac工具对Lua脚本进行编译,并生成字节码,这种字节码可以直接被Lua虚拟机解释执行。由于字节码是二进制格式的,不易约定,因此具有良好的加密效果。然而,采用上述方式生成的Lua字节码很容易被Lua反编译工具破解,破解的门槛很低,因此,不适合采用Lua脚本保存敏感数据,存在严重的信息安全隐患。
技术实现思路
本专利技术实施例提供了一种脚本编译的方法、脚本执行的方法、相关装置及系统,生成的脚本难以被反编译工具破解,只有同样获知预编译单元排序规则的脚本执行装置才能执行该脚本,从而大幅度提升了脚本的安全性。有鉴于此,本专利技术的第一方面提供了一种脚本编译的方法,包括:获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码。本专利技术的第二方面提供了一种脚本执行的方法,包括:接收脚本编译装置发送的目标字节码,其中,所述目标字节码为所述脚本编译装置根据预编译单元排序结果生 ...
【技术保护点】
1.一种脚本编译的方法,其特征在于,包括:获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码。
【技术特征摘要】
1.一种脚本编译的方法,其特征在于,包括:获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码。2.根据权利要求1所述的方法,其特征在于,所述多个预编译单元中包括操作码序列,所述操作码序列中包含多个操作码;所述方法还包括:按照第二排序规则对所述操作码序列中的所述多个操作码进行排序,以得到操作码排序结果,其中,所述第二排序规则用于指示每个操作码的排列顺序;所述根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码,包括:根据所述预编译单元排序结果以及所述操作码排序结果生成所述目标字节码,其中,所述目标字节码为所述脚本执行装置按照所述第一排序规则以及所述第二排序规则执行的字节码。3.根据权利要求2所述的方法,其特征在于,所述按照第二排序规则对所述操作码序列中的所述多个操作码进行排序,以得到操作码排序结果之前,所述方法还包括:接收操作码更新指令,其中,所述操作码更新指令中携带目标操作码所对应的修改信息,所述目标操作码属于所述多个操作码中的操作码;根据所述操作码更新指令更新所述目标操作码之间的调用关系,以使所述目标操作码中的每个操作码在被执行时处于可直接调用状态。4.根据权利要求1所述的方法,其特征在于,所述待编译脚本还包括多个元信息;所述方法还包括:按照第三排序规则对所述待编译脚本中的所述多个元信息进行排序,以得到元信息排序结果,其中,所述第三排序规则用于指示每个元信息的排列顺序;所述根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码,包括:根据所述预编译单元排序结果以及所述元信息排序结果生成所述目标字节码,其中,所述目标字节码为所述脚本执行装置按照所述第一排序规则以及所述第三排序规则执行的字节码。5.根据权利要求4所述的方法,其特征在于,所述元信息对应于原始数据;所述获取待编译脚本之后,所述方法还包括:对至少一个原始数据进行修改,以得到目标数据;所述根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码,包括:根据所述预编译单元排序结果以及所述目标数据生成所述目标字节码,其中,所述目标字节码为所述脚本执行装置按照所述第一排序规则以及所述目标数据执行的字节码。6.根据权利要求1所述的方法,其特征在于,所述待编译脚本还包括签名信息,所述签名信息包括第一字符和第二字符;所述获取待编译脚本之后,所述方法还包括:将所述签名信息中的所述第一字符更新为第三字符,根据所述第三字符和所述第二字符确定目标签名信息,其中,所述第一字符和所述第三字符均属于不可打印字符;或,将所述签名信息中的所述第二字符更新为第四字符,根据所述第二字符和所述第四字符确定所述目标签名信息,其中,所述第二字符和所述第四字符均属于可打印字符;或,将所述签名信息中的所述第一字符更新为所述第三字符,并将所述签名信息中的所述第二字符更新为所述第四字符,根据所述第三字符和所述第四字符确定所述目标签名信息;所述根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码,包括:根据所述预编译单元排序结果以及所述目标签名信息生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则以及所述目标签名信息执行的字节码。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述根据所述预编译单元排序结果生成目标字节码之后,所述方法还包括:采用对称加密算法对所述目标字节码进行加密处理,得到目标加密脚本;...
【专利技术属性】
技术研发人员:李发军,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。