[发明专利]脚本混淆方法及装置在审
申请号: | 202010129119.4 | 申请日: | 2020-02-28 |
公开(公告)号: | CN111310133A | 公开(公告)日: | 2020-06-19 |
发明(设计)人: | 赵培源;于飞鸿;黄胜蓝 | 申请(专利权)人: | 西安四叶草信息技术有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F8/41 |
代理公司: | 北京挺立专利事务所(普通合伙) 11265 | 代理人: | 韩畅 |
地址: | 710086 陕西省西安市高新区鱼化*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 脚本 混淆 方法 装置 | ||
本公开提供一种脚本混淆方法及装置,涉及计算机安全技术领域,能够提高脚本安全性。具体技术方案为:获取lua源代码文件编译后的lua字节码文件,并解析lua字节码文件,得到lua字节码文件中所有代码对象的指令数组;获取指令数组中每个指令的指令信息;将指令数组中所有指令的位置随机进行调整,对调整后的指令数组采用预设混淆规则进行混淆,得到混淆后的指令数组;将lua字节码文件中所有代码对象的指令数组对应更新为混淆后的指令数组,得到混淆后的lua字节码文件。本发明用于脚本混淆。
技术领域
本公开涉及计算机安全技术领域,尤其涉及一种脚本混淆方法及装置。
背景技术
随着科学技术的发展,计算机技术被广泛地应用于各个领域,为人们的工作、学习和日常生活提供了极大的便利。应用范围的扩大和应用深度的扩展,促使计算机的性能不断提高,进而对计算机软件提出了更高的要求。在这种情况下,脚本语言作为一般程序设计语言的补充,得到了极为迅速的发展。
脚本语言又被称为扩建的语言,或者动态语言,是一种用来控制向用程序的编程语言。脚本语言因其具有小巧和高效的优点,因此越来越多的软件将脚本语言嵌入到软件中,来为应用程序提供灵活的扩展和定制功能。尤其在游戏行业中,脚本语言被广泛的使用。相应地,如果脚本代码被泄露,会给用户带来不小的损失,因此需要增强脚本代码的安全性。
通过对脚本代码进行混淆,可以增强脚本的安全性,但现有相关技术所采用的混淆技术比较简单,一般通过对称加密算法,和/或修改解释器的操作码与字节码的对应关系,和/或对源代码的变量名混淆的方式达到混淆的效果,但是混淆后的脚本混淆逻辑基本可见,抗破解性比较差。
发明内容
本公开实施例提供一种脚本混淆方法及装置,能够提高脚本安全性。技术方案如下:
根据本公开实施例的第一方面,提供一种脚本混淆方法,该方法包括:
获取lua源代码文件编译后的lua字节码文件,并解析lua字节码文件,得到lua字节码文件中所有代码对象的指令数组,指令数组包括至少一个指令;
获取指令数组中每个指令的指令信息,指令信息包括每条指令在指令数组的位置信息;
将指令数组中所有指令的位置随机进行调整,对调整后的指令数组采用预设混淆规则进行混淆,得到混淆后的指令数组;
将lua字节码文件中所有代码对象的指令数组对应更新为混淆后的指令数组,得到混淆后的lua字节码文件。
本公开在不修改lua解释器的情况下,针对lua指令数组进行混淆,使得反汇编器、反编译器失效从而无法还原源代码,保护lua脚本不被破解,提高脚本安全性。
在一个实施例中,对调整后的指令数组采用预设混淆规则进行混淆,得到混淆后的指令数组包括:
获取每个指令的指令名称;
根据每个指令的指令名称,确定每个指令的指令类型,指令类型包括非跳转指令和跳转指令,跳转指令包括条件跳转指令和非条件跳转指令;
根据每个指令的指令名称、指令类型和预设混淆规则生成每条指令对应的跳转指令,得到混淆后的指令数组,预设混淆规则包括多个指令的指令名称、指令类型以及跳转规则的对应关系。
在一个实施例中,根据每个指令的指令类型和预设混淆规则生成每条指令对应的跳转指令,得到混淆后的指令数组包括:
在指令的指令类型为非跳转指令时,生成跳向原有执行逻辑对应的下一条指令的跳转指令,原来的下一条指令为;
在指令的指令类型为非条件跳转指令时,生成跳向原来要跳转的指令位置的跳转指令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安四叶草信息技术有限公司,未经西安四叶草信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010129119.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种缓降器及逃生装置
- 下一篇:固晶摆臂系统及固晶机