【技术实现步骤摘要】
一种编译方法、装置、设备及系统
本申请涉及计算机
,尤其涉及一种编译方法、装置、设备及系统。
技术介绍
随着近年来互联网的快速发展,为了满足人们日常生活的各种需求,各种类型的应用程序也越来越多。例如,导航类应用程序,视频类应用程序、购物类应用程序和游戏类应用程序。这些应用程序的使用即为人们生活提供了便利性,又丰富了人们的娱乐生活。应用程序在运行之前,需要先在编译器中进行编译,由源程序转变成计算机可以识别的目标程序,计算机再根据转变的目标程序运行该应用程序。目前,传统的编译器编译出的目标程序易于分析,根据编译出的目标程序可以很容易的反推出源程序,对抗逆向工程性差。
技术实现思路
有鉴于此,本申请实施例提供了一种编译方法、装置、设备及系统,用于提高编译器编译出的目标程序的抗逆向工程性。为解决上述技术问题,本说明书实施例是这样实现的:本说明书实施例提供的一种编译方法,包括:获取源程序;将所述源程序进行编译,得到第一中间代码;根据预存的标识符将所述第一中间代码进行拆分,得到第一代码和第二代码;根据解码对应关系表对所述第二代码进行编译处理,得到指令字节码;根据所述解码对应关系表生成解释器;将所述第一代码、所述解释器和所述指令字节码合并,得到目标程序。本说明书实施例提供的一种运行方法,包括:获取目标程序,所述目标程序包括目标子程序和解释器;若所述目标子程序为指令字节码,调用所述解释器解释所述指令字节码,得到第二代码;运行所述第二代码。本说明书实施例提供的一种编译装置,包括:第一获取模块,用于获取源程序;第一编译模块,用于将所述源程序进行编译,得到第一中间代码;拆分模 ...
【技术保护点】
1.一种编译方法,包括:获取源程序;将所述源程序进行编译,得到第一中间代码;根据预存的标识符将所述第一中间代码进行拆分,得到第一代码和第二代码;根据解码对应关系表对所述第二代码进行编译处理,得到指令字节码;根据所述解码对应关系表生成解释器;将所述第一代码、所述解释器和所述指令字节码合并,得到目标程序。
【技术特征摘要】
1.一种编译方法,包括:获取源程序;将所述源程序进行编译,得到第一中间代码;根据预存的标识符将所述第一中间代码进行拆分,得到第一代码和第二代码;根据解码对应关系表对所述第二代码进行编译处理,得到指令字节码;根据所述解码对应关系表生成解释器;将所述第一代码、所述解释器和所述指令字节码合并,得到目标程序。2.如权利要求1所述的方法,所述根据所述解码对应关系表生成解释器,具体包括:获取所述解码对应关系表中的字节对应关系;根据所述字节对应关系确定对应于所述解码对应关系表的解释器。3.如权利要求1所述的方法,所述根据解码对应关系表对所述第二代码进行编译处理,得到指令字节码,具体包括:获取所述解码对应关系表中的字节对应关系;根据所述字节对应关系确定对应于所述解码对应关系表的指令字节码。4.如权利要求1所述的方法,在所述根据解码对应关系表对所述第二代码进行编译处理,得到指令字节码之前,还包括:根据预设的关系表生成算法动态生成所述解码对应关系表。5.如权利要求1所述的方法,在所述根据预存的标识符将所述第一中间代码进行拆分,得到第一代码和第二代码之后,还包括:将所述第二代码进行拆分,得到第三代码和第四代码;根据第一解码对应关系表对所述第三代码进行编译处理,得到第一指令字节码;根据所述第一解码对应关系表生成第一解释器;根据第二解码对应关系表对所述第四代码进行编译处理,得到第二指令字节码;根据所述第二解码对应关系表生成第二解释器;将所述第一代码、所述第一指令字节码、所述第一解释器、所述第二指令字节码和所述第二解释器合并,得到目标程序。6.如权利要求1所述的方法,在所述根据所述解码对应关系表生成解释器之后,还包括:将所述第一代码与所述解释器进行合并,得到第二中间代码;将所述第二中间代码和所述指令字节码合并,得到目标程序。7.一种运行方法,包括:获取目标程序,所述目标程序包括目标子程序和解释器;若所述目标子程序为指令字节码,调用所述解释器解释所述指令字节码,得到第二代码;运行所述第二代码。8.如权利要求7所述的方法,还包括:若所述目标子程序为第一代码,则直接运行所述第一代码。9.一种编译装置,包括:第一获取模块,用于获取源程序;第一编译模块,用于将所述源程序进行编译,得到第一中间代码;拆分模块,用于根据预存的标识符将所述第一中间代码进行拆分,得到第一代码和第二代码;第二编译模块,用于根据解码对应关系表对所述第二代码进行编译处理,得到指令字节码;生成模块,用于根据所述解码对应关系表生成解释器;合并模块,用于将所述第一代码、所述解释器和所述指令字节码合并,得到目标程序。10.如权利要求9所述...
【专利技术属性】
技术研发人员:张建涛,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。