[发明专利]脚本编译的方法、脚本执行的方法、相关装置及系统有效
申请号: | 201810634863.2 | 申请日: | 2018-06-15 |
公开(公告)号: | CN108829396B | 公开(公告)日: | 2022-02-01 |
发明(设计)人: | 李发军 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 脚本 编译 方法 执行 相关 装置 系统 | ||
本发明实施例公开了一种脚本编译的方法,包括:获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码。本发明实施例公开了一种脚本执行的方法、脚本编译装置、脚本执行装置以及脚本执行系统。本发明实施例生成的脚本难以被反编译工具破解,只有同样获知预编译单元排序规则的脚本执行装置才能执行该脚本,从而大幅度提升了脚本的安全性。
技术领域
本发明涉及计算机处理领域,尤其涉及脚本编译的方法、脚本执行的方法、相关装置及系统。
背景技术
Lua是一种小巧的脚本语言。Lua脚本可以很容易的被调用,也可以反过来调用其他函数,这使得Lua脚本被广泛的应用。不仅仅作为扩展脚本,还可以作为普通的配置文件,同时,Lua脚本容易理解和维护。
目前,可以通过Luac工具对Lua脚本进行编译,并生成字节码,这种字节码可以直接被Lua虚拟机解释执行。由于字节码是二进制格式的,不易约定,因此具有良好的加密效果。
然而,采用上述方式生成的Lua字节码很容易被Lua反编译工具破解,破解的门槛很低,因此,不适合采用Lua脚本保存敏感数据,存在严重的信息安全隐患。
发明内容
本发明实施例提供了一种脚本编译的方法、脚本执行的方法、相关装置及系统,生成的脚本难以被反编译工具破解,只有同样获知预编译单元排序规则的脚本执行装置才能执行该脚本,从而大幅度提升了脚本的安全性。
有鉴于此,本发明的第一方面提供了一种脚本编译的方法,包括:
获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;
按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;
根据所述预编译单元排序结果生成目标字节码,其中,所述目标字节码为脚本执行装置按照所述第一排序规则执行的字节码。
本发明的第二方面提供了一种脚本执行的方法,包括:
接收脚本编译装置发送的目标字节码,其中,所述目标字节码为所述脚本编译装置根据预编译单元排序结果生成的,所述预编译单元排序结果为所述脚本编译装置按照第一排序规则对待编译脚本中的所述多个预编译单元进行排序后得到的;
按照所述第一排序规则执行所述目标字节码。
本发明的第三方面提供了一种脚本执行系统,所述脚本执行系统包括脚本编译装置以及脚本执行装置;
所述脚本编译装置,用于获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;
所述脚本编译装置,用于按照第一排序规则对所述待编译脚本中的所述多个预编译单元进行排序,以得到预编译单元排序结果,其中,所述第一排序规则用于指示每个预编译单元的排列顺序;
所述脚本编译装置,用于根据所述预编译单元排序结果生成目标字节码;
所述脚本编译装置,用于向所述脚本执行装置发送所述目标字节码,所述脚本执行装置接收所述脚本编译装置发送的目标字节码;
所述脚本执行装置,用于按照所述第一排序规则执行所述目标字节码。
本发明的第四方面提供了一种脚本编译装置,包括:
获取模块,用于获取待编译脚本,其中,所述待编译脚本包括多个预编译单元;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810634863.2/2.html,转载请声明来源钻瓜专利网。