【技术实现步骤摘要】
【国外来华专利技术】到本原客户端的二进制翻译相关申请的交叉引用本申请涉及同时提交的具有代理人案号096553-0073并且标题为“对共享对象级的二进制翻译(BINARYTRANSLATIONONSHAREDOBJECTLEVEL)”的国际专利申请,其公开内容以引用的方式全部并入在本文中。
技术介绍
本主题技术大体上涉及二进制翻译技术。一些软件被编译为用于特定CPU架构(诸如,或者)和特定操作系统(诸如,或者Microsoft)的二进制程序。可以通过互联网将二进制程序下载至用户的计算机。然而,用户可能不信任该程序并且可能希望在其中该程序具有对在该程序外部存储的计算机上的数据的有限访问的安全模式下运行该程序。如上文说明的是,可能需要一种用于计算机上安全地执行软件的方法。本原客户端(NativeClient)可以被用于安全地执行计算机上的软件。然而,一些软件不是为本原客户端编写的并且与本原客户端不兼容。可能需要重新编译这种软件并且将这种软件移植到本原客户端,对于一些大型的现代化软件产品,这可能需要付出巨大努力。如上文所说明,可能需要将与本原客户端不兼容的代码翻译成本原客户端。
技术实现思路
根据一些方面,本主题技术涉及一种方法。该方法包括:接收要在本原客户端环境中运行的客户机软件,其中,客户机软件被配置为执行在指定客户机硬件架构处而不是执行在本原客户端环境内。该方法包括:使用模拟软件提供客户机软件到本原客户端兼容机器代码的二进制翻译,其中,该本原客户端兼容机器代码在用于本原客户端环境的沙盒内执行,其中,该本原客户端兼容机器代码能够在应用内执行,其中,提供客户机软件到用于在沙盒内执行的本原客户 ...
【技术保护点】
一种方法,包括:接收要在本原客户端环境中运行的客户机软件,其中所述客户机软件被配置为执行在指定客户机硬件架构处而不是执行在所述本原客户端环境内;以及使用模拟软件提供所述客户机软件到本原客户端兼容机器代码的二进制翻译,其中所述本原客户端兼容机器代码在用于所述本原客户端环境的沙盒内执行,其中所述本原客户端兼容机器代码能够在应用内执行,其中提供所述客户机软件到用于所述沙盒内执行的所述本原客户端兼容机器代码的二进制翻译刚好及时发生在模拟的客户机软件的运行时间期间,并且不需要移植或者重新编译所述客户机软件,以及其中提供所述二进制翻译与执行所述模拟的客户机软件交错进行。
【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:接收要在本原客户端环境中运行的客户机软件,其中所述客户机软件被配置为执行在指定客户机硬件架构处而不是执行在所述本原客户端环境内;以及使用模拟软件提供所述客户机软件到本原客户端兼容机器代码的二进制翻译,其中所述本原客户端兼容机器代码在用于所述本原客户端环境的沙盒内执行,其中所述本原客户端兼容机器代码能够在应用内执行,其中提供所述客户机软件到用于所述沙盒内执行的所述本原客户端兼容机器代码的二进制翻译刚好及时发生在模拟的客户机软件的运行时间期间,并且不需要移植或者重新编译所述客户机软件,以及其中提供所述二进制翻译与执行所述模拟的客户机软件交错进行。2.根据权利要求1所述的方法,其中用于所述本原客户端环境的所述沙盒访问在存储器中存储或者在主机处可用的寄存器中存储的模拟的客户机寄存器的集合,其中与所述本原客户端兼容机器代码相关联的数据被存储在用于所述本原客户端环境的所述沙盒内,以及其中所述模拟的客户机寄存器与所述指定客户机硬件架构的寄存器相对应。3.根据权利要求1所述的方法,其中,提供所述客户机软件到所述本原客户端兼容机器代码的二进制翻译包括:创建虚拟寄存器的集合,所述虚拟寄存器的集合表示由所述客户机软件在所述指定客户机硬件架构处执行时使用的寄存器,其中所述虚拟寄存器的所述地址通过基址指针(RBP)加上预定偏移来引用,以及其中在所述虚拟寄存器的集合中的各个虚拟寄存器是能够经由单个指令从所述沙盒内访问。4.根据权利要求1所述的方法,其中,提供所述客户机软件到所述本原客户端兼容机器代码的二进制翻译包括:模拟所述指定客户机硬件架构的特征和所述本原客户端内的所述客户机软件的应用编程接口(API)调用。5.根据权利要求1所述的方法,其中,提供所述客户机软件到所述本原客户端兼容机器代码的二进制翻译包括:利用与所述本原客户端环境兼容的代码来替代所述客户机软件中的代码。6.根据权利要求1所述的方法,其中,所述客户机软件包括ARM软件或者x86软件。7.根据权利要求1所述的方法,其中,所述本原客户端兼容机器代码是安全的并且是可移植的,以及其中,所述客户机软件是不安全的或者不可移植的。8.根据权利要求1所述的方法,其中,所述客户机软件被配置为仅在特定客户机操作系统内执行,以及其中,所述本原客户端环境被配置为执行在多个不同操作系统中的任何一个操作系统内。9.根据权利要求1所述的方法,其中,所述应用是浏览器。10.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括指令,所述指令在由一个或多个计算机执行时使所述一个或多个计算机实现一种方法,所述方法包括:接收要在本原客户端环境中运行的客户机软件,其中所述客户机软件被配置为执行在指定客户机硬件架构处而不是执行在所述本原客户端环境内;以及使用模拟软件提供所述客户机软件到本原客户端兼容机器代码的二进制翻译,其中所述本原客户端兼容机器代码在用于所述本原客户端环境的沙盒内执行,其中所述本原客户端兼容机器代码能够在应用内执行,其中提供所述客户机软件到用于所述沙盒内执行的所述本原客户端兼容机器代码的二进制翻译刚好及时发生在模拟的客户机软件的运行时间期间,并且不需要移植或者重新编译所述客户机软件,其中提供所述二进制翻译与执行所述模拟的客户机软件交错进行,以及其中提供所述客户机软件到所述本原客户端兼容机器代码的二进制翻译包括:创建虚拟寄存器的集合,所述虚拟寄存器的集合表示由所述客户机软件在所述指定客户机硬件架构处执行时使用的寄存器,其中所述...
【专利技术属性】
技术研发人员:叶夫根尼·艾尔钦,尼古拉·伊戈蒂,安德烈·哈尔佳温,德米特里·波卢欣,
申请(专利权)人:谷歌公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。