[发明专利]代码安全保护方法、装置、电子设备和计算机可读存储介质在审
申请号: | 201910190218.0 | 申请日: | 2019-03-13 |
公开(公告)号: | CN109948308A | 公开(公告)日: | 2019-06-28 |
发明(设计)人: | 周源;宁志斌 | 申请(专利权)人: | 智者四海(北京)技术有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 李强 |
地址: | 100000 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟机 字节码 计算机可读存储介质 标记指令 代码安全 电子设备 虚拟指令 原始代码 脚本语言代码 可执行文件 反向工程 脚本语言 保密性 传统的 解释器 合并 转换 非法 | ||
本公开实施例提供了一种代码安全保护方法、装置、电子设备和计算机可读存储介质,该方法包括:将脚本语言的原始代码转换为不同类型的虚拟指令;将该不同类型的虚拟指令编码为虚拟机字节码,该虚拟机字节码包括用于标记指令类型的第一部分和用于标记指令数据的第二部分;将该虚拟机字节码与虚拟机解释器合并为第一可执行文件。本公开实施例提高了脚本语言代码的保密性和对抗性,防止原始代码通过传统的反向工程被非法获取。
技术领域
本公开涉及计算机安全技术领域,具体而言,涉及一种代码安全保护方法、装置、电子设备和计算机可读存储介质。
背景技术
代码混淆是将计算机程序代码转换成一种功能上等价,但是难以阅读和理解的形式,主要目的是为了保护原始代码,阻止反向工程。例如,将原始代码中的各种元素,如变量、函数、类的名字改成无意义的名字,或者打乱代码的格式,或者重写代码中的部分逻辑,或者添加垃圾代码已达到隐藏真实代码的目的。对于动态脚本语言而言,其原始代码的混淆还可以基于文本变换将代码变换成另一种文本形式,再在运行时动态执行。
但是,本公开的发明人发现,上述混淆方法无法完全阻止脚本语言的原始代码通过反向工程被获取。
发明内容
在下文中将给出关于本公开实施例的简要概述,以便提供关于本公开实施例的某些方面的基本理解。应当理解,此概述并不是关于本公开实施例的穷举性概述。它并不是意图确定本公开实施例的关键或重要部分,也不是意图限定本公开实施例的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
根据本公开内容的第一方面,提供一种代码安全保护方法,包括:
将脚本语言的原始代码转换为不同类型的虚拟指令;
将该不同类型的虚拟指令编码为虚拟机字节码,该虚拟机字节码包括用于标记指令类型的第一部分和用于标记指令数据的第二部分;
将该虚拟机字节码与虚拟机解释器合并为第一可执行文件。
根据本公开内容的第二方面,提供一种代码安全保护装置,包括:
转换模块,被配置为将脚本语言的原始代码转换为不同类型的虚拟指令;
编码模块,被配置为将该不同类型的虚拟指令编码为虚拟机字节码,该虚拟机字节码包括用于标记指令类型的第一部分和用于标记指令数据的第二部分;
合并模块,被配置为将该虚拟机字节码与虚拟机解释器合并为第一可执行文件。
根据本公开内容的第三方面,提供一种电子设备,包括存储器和处理器;其中,该存储器存储有计算机程序,该计算机程序被该处理器执行以实现前述方法。
根据本公开内容的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现前述方法。
本公开实施例通过虚拟指令编码将脚本语言的原始代码转化为语义等价的虚拟机字节码,并将虚拟机字节码绑定到自定义的虚拟机解释器进行解释执行,从而提高了脚本语言代码的保密性和对抗性,防止原始代码通过传统的反向工程被非法获取。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为根据本公开一实施例的代码安全保护方法的流程示意图;
图2是根据本公开实施例的16位二进制指令编码的示例图;
图3为根据图1所述代码安全保护方法的子流程示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于智者四海(北京)技术有限公司,未经智者四海(北京)技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910190218.0/2.html,转载请声明来源钻瓜专利网。