用于处理和运行字节码的方法、装置及字节码运行系统制造方法及图纸

技术编号:28792102 阅读:29 留言:0更新日期:2021-06-09 11:29
本说明书实施例提供了一种用于处理和运行字节码的方法、装置及字节码运行系统。在字节码处理方法中,字节码处理设备从云端服务器获取待下发的字节码,对字节码执行字节码扫描,以使用操作码映射关系来确定出字节码中待替换的至少一个第一操作码,并使用对应的第二操作码来替换所确定出的第一操作码,将经过替换的字节码下发给字节码运行装置,其中,操作码映射关系包括第一操作码和第二操作码之间的映射关系。的映射关系。的映射关系。

【技术实现步骤摘要】
用于处理和运行字节码的方法、装置及字节码运行系统


[0001]本说明书实施例涉及计算机
,具体地,涉及一种用于处理和运行字节码的方法、装置及字节码运行系统。

技术介绍

[0002]在小程序、云原生等云端一体化场景下,云端服务器与若干终端设备可通信地连接,从而云端服务器可以为各个终端设备提供服务。相对于终端设备,云端服务器具有强大的计算资源,利用该计算资源为终端设备提供服务可以提高终端设备的工作效率。
[0003]以向终端设备提供字节码服务为例,云端服务器可以为终端设备提供所需的字节码,以使终端设备运行该字节码从而执行相应的操作。具体地,终端设备需要执行操作时可以向云端服务器请求对应的字节码,云端服务器接收到请求后将程序代码转换成对应的字节码,然后将所转换的字节码下发给终端设备,终端设备再运行所接收到的字节码,从而执行对应的操作。

技术实现思路

[0004]鉴于上述,本说明书实施例提供了一种用于处理和运行字节码的方法、装置及字节码运行系统。通过字节码处理方法,对待下发的字节码进行操作码替换处理,以改变代码逻辑,从而降低字节码被破解的风险。此外,在字节码扫描过程中,利用操作码映射关系关联记录的操作码指令长度来确定下一个第一操作码的位置,避免了通过解析操作码的方式来确定操作码的位置,从而提高了字节码扫描的效率。
[0005]根据本说明书实施例的一个方面,提供了一种用于处理字节码的方法,所述方法应用于字节码处理设备,所述方法包括:从云端服务器获取响应于终端设备的请求待下发给所述终端设备中的字节码运行装置的字节码;对所述字节码执行字节码扫描,以使用操作码映射关系来确定出所述字节码中待替换的至少一个第一操作码,并使用对应的第二操作码来替换所确定出的第一操作码,所述操作码映射关系包括第一操作码和第二操作码之间的映射关系;以及将经过替换的字节码下发给所述字节码运行装置。
[0006]可选地,在上述方面的一个示例中,对所述字节码执行字节码扫描包括:在扫描所述字节码时,如果确定出第一操作码,则在所述字节码的剩余部分中根据所确定出的第一操作码的操作码指令长度跳过对应的字节长度来继续执行字节码扫描,所述操作码指令长度与所述操作码映射表中的第一操作码相关联地记录。
[0007]可选地,在上述方面的一个示例中,使用对应的第二操作码来替换所确定出的至少一个第一操作码包括:每当确定出所述至少一个第一操作码中的一个第一操作码后,使用对应的第二操作码来替换该第一操作码;或者在从所述字节码中确定出所述至少一个第一操作码中的所有操作码后,使用对应的第二操作码来替换所述至少一个第一操作码中的各个第一操作码。
[0008]可选地,在上述方面的一个示例中,所述操作码映射关系中的每个映射关系记录
有第一操作码、第二操作码以及该第一操作码的操作码指令长度。
[0009]可选地,在上述方面的一个示例中,所述操作码映射关系以操作码映射表的形式存储,所述操作码映射表包括多个操作码映射表,每个操作码映射表对应一个操作码指令长度并且记录有具有该操作码指令长度的第一操作码和第二操作码。
[0010]可选地,在上述方面的一个示例中,所述操作码映射关系存储在所述字节码处理设备或者与所述字节码处理设备处于可信执行环境中的第三方设备。
[0011]可选地,在上述方面的一个示例中,还包括:随机确定所确定出的第一操作码是否需要进行替换;以及使用对应的第二操作码来替换所确定出的第一操作码包括:在确定该第一操作码需要进行替换时,使用对应的第二操作码来替换该第一操作码,并且对该第二操作码进行标记。
[0012]可选地,在上述方面的一个示例中,随机确定所确定出的第一操作码是否需要进行替换包括:在所确定出的第一操作码属于指定类型的操作码时,随机确定该第一操作码是否需要进行替换。
[0013]可选地,在上述方面的一个示例中,在将经过替换的字节码下发给所述字节码运行装置之前,所述方法还包括:对经过替换的字节码进行加密处理和/或加签处理。
[0014]可选地,在上述方面的一个示例中,所述加密处理包括随机加密处理。
[0015]可选地,在上述方面的一个示例中,所述加签处理包括随机加签处理。
[0016]可选地,在上述方面的一个示例中,所述字节码运行平台未存储有所述操作码映射关系,将经过替换的字节码下发给所述字节码运行装置包括:将经过替换的字节码和经过加密处理的操作码映射关系下发给所述字节码运行装置。
[0017]可选地,在上述方面的一个示例中,所述字节码处理设备被集成在所述云端服务器中作为所述云端服务器的功能单元。
[0018]根据本说明书实施例的另一方面,还提供一种用于运行字节码的方法,所述方法应用于终端设备中的字节码运行装置,所述方法包括:从字节码处理设备接收按照上述中任一项所述的字节码处理方法得到经过替换后的字节码;对所述字节码执行字节码扫描,以使用操作码映射关系来确定出所述字节码中待还原的至少一个第二操作码,并使用对应的第一操作码来替换所确定出的第二操作码,所述操作码映射关系包括第一操作码和第二操作码之间的映射关系,所述操作码映射关系与用于对所述字节码进行替换的操作码映射关系相同;以及运行经过还原的字节码。
[0019]可选地,在上述方面的一个示例中,对所述字节码执行字节码扫描包括:在扫描所述字节码时,如果确定出第二操作码,则在所述字节码的剩余部分中根据对应的第一操作码的操作码指令长度跳过对应的字节长度来继续执行字节码扫描,所述操作码指令长度与所述操作码映射关系中的第一操作码相关联地记录。
[0020]可选地,在上述方面的一个示例中,使用对应的第一操作码来替换所确定出的第二操作码包括:每当确定出所述至少一个第二操作码中的一个第二操作码后,使用对应的第一操作码来替换该第二操作码;或者在从所述字节码中确定出所述至少一个第二操作码中的所有操作码后,使用对应的第一操作码来替换所述至少一个第二操作码中的各个第二操作码。
[0021]可选地,在上述方面的一个示例中,所述字节码运行装置所使用的操作码映射关
系存储在本地或者从所述字节码处理设备接收得到的。
[0022]可选地,在上述方面的一个示例中,使用对应的第一操作码来替换所确定出的第二操作码包括:使用对应的第一操作码来替换所确定出的第二操作码中经过标记的第二操作码。
[0023]可选地,在上述方面的一个示例中,当所述字节码在经过替换后又经过加密处理和/或加签处理时,在对所述字节码执行字节码扫描之前,所述方法还包括:对所述字节码进行解密处理和/或验签处理。
[0024]根据本说明书实施例的另一方面,还提供一种用于处理字节码的装置,所述装置应用于字节码处理设备,所述装置包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现:从云端服务器获取响应于终端设备的请求待下发给所述终端设备中的字节码运行装置的字节码;对所述字本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于处理字节码的方法,所述方法应用于字节码处理设备,所述方法包括:从云端服务器获取响应于终端设备的请求待下发给所述终端设备中的字节码运行装置的字节码;对所述字节码执行字节码扫描,以使用操作码映射关系来确定出所述字节码中待替换的至少一个第一操作码,并使用对应的第二操作码来替换所确定出的第一操作码,所述操作码映射关系包括第一操作码和第二操作码之间的映射关系;以及将经过替换的字节码下发给所述字节码运行装置。2.如权利要求1所述的方法,其中,对所述字节码执行字节码扫描包括:在扫描所述字节码时,如果确定出第一操作码,则在所述字节码的剩余部分中根据所确定出的第一操作码的操作码指令长度跳过对应的字节长度来继续执行字节码扫描,所述操作码指令长度与所述操作码映射表中的第一操作码相关联地记录。3.如权利要求1所述的方法,其中,使用对应的第二操作码来替换所确定出的至少一个第一操作码包括:每当确定出所述至少一个第一操作码中的一个第一操作码后,使用对应的第二操作码来替换该第一操作码;或者在从所述字节码中确定出所述至少一个第一操作码中的所有操作码后,使用对应的第二操作码来替换所述至少一个第一操作码中的各个第一操作码。4.如权利要求1至3中任一所述的方法,其中,所述操作码映射关系中的每个映射关系记录有第一操作码、第二操作码以及该第一操作码的操作码指令长度。5.如权利要求1至3中任一所述的方法,其中,所述操作码映射关系以操作码映射表的形式存储,所述操作码映射表包括多个操作码映射表,每个操作码映射表对应一个操作码指令长度并且记录有具有该操作码指令长度的第一操作码和第二操作码。6.如权利要求1至3中任一所述的方法,其中,所述操作码映射关系存储在所述字节码处理设备或者与所述字节码处理设备处于可信执行环境中的第三方设备。7.如权利要求1至3中任一所述的方法,还包括:随机确定所确定出的第一操作码是否需要进行替换;以及使用对应的第二操作码来替换所确定出的第一操作码包括:在确定该第一操作码需要进行替换时,使用对应的第二操作码来替换该第一操作码,并且对该第二操作码进行标记。8.如权利要求7所述的方法,其中,随机确定所确定出的第一操作码是否需要进行替换包括:在所确定出的第一操作码属于指定类型的操作码时,随机确定该第一操作码是否需要进行替换。9.如权利要求1至3中任一所述的方法,其中,在将经过替换的字节码下发给所述字节码运行装置之前,所述方法还包括:对经过替换的字节码进行加密处理和/或加签处理。10.如权利要求9所述的方法,其中,所述加密处理包括随机加密处理。11.如权利要求9所述的方法,其中,所述加签处理包括随机加签处理。12.如权利要求1至3中任一所述的方法,其中,所述字节码运行平台未存储有所述操作
码映射关系,将经过替换的字节码下发给所述字节码运行装置包括:将经过替换的字节码和经过加密处理的操作码映射关系下发给所述字节码运行装置。13.如权利要求1至3中任一所述的方法,所述字节码处理设备被集成在所述云端服务器中作为所述云端服务器的功能单元。14.一种用于运行字节码的方法,所述方法应用于终端设备中的字节码运行装置,所述方法包括:从字节码处理设备接收按照上述权利要求1

13中任一项所述的方法得到经过替换后的字节码;对所述字节码执行字节码扫描,以使用操作码映射关系来确定出所述字节码中待还原的至少一个第二操作码,并使用对应的第一操作码来替换所确定出的第二操作码,所述操作码映...

【专利技术属性】
技术研发人员:孙宜进秦晓康
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1