当前位置: 首页 > 专利查询>谷歌公司专利>正文

到本原客户端的二进制翻译制造技术

技术编号:16672730 阅读:31 留言:0更新日期:2017-11-30 17:16
公开了一种用于二进制翻译的系统和方法。在一些实现方式中,接收要在本原客户端环境中运行的客户机软件。该客户机软件被配置为执行在指定客户机硬件架构处而不是执行在该本原客户端环境内。使用模拟软件提供该客户机软件到本原客户端兼容机器代码的二进制翻译。该本原客户端兼容机器代码在用于该本原客户端环境的沙盒内执行。该本原客户端兼容机器代码能够在应用内执行。提供该客户机软件到用于在该沙盒内执行的该本原客户端兼容机器代码的二进制翻译刚好及时发生在该模拟的客户机软件的运行时间期间,并且不需要移植或者重新编译该客户机软件。提供该二进制翻译与执行该模拟的客户机软件交错进行。

【技术实现步骤摘要】
【国外来华专利技术】到本原客户端的二进制翻译相关申请的交叉引用本申请涉及同时提交的具有代理人案号096553-0073并且标题为“对共享对象级的二进制翻译(BINARYTRANSLATIONONSHAREDOBJECTLEVEL)”的国际专利申请,其公开内容以引用的方式全部并入在本文中。
技术介绍
本主题技术大体上涉及二进制翻译技术。一些软件被编译为用于特定CPU架构(诸如,或者)和特定操作系统(诸如,或者Microsoft)的二进制程序。可以通过互联网将二进制程序下载至用户的计算机。然而,用户可能不信任该程序并且可能希望在其中该程序具有对在该程序外部存储的计算机上的数据的有限访问的安全模式下运行该程序。如上文说明的是,可能需要一种用于计算机上安全地执行软件的方法。本原客户端(NativeClient)可以被用于安全地执行计算机上的软件。然而,一些软件不是为本原客户端编写的并且与本原客户端不兼容。可能需要重新编译这种软件并且将这种软件移植到本原客户端,对于一些大型的现代化软件产品,这可能需要付出巨大努力。如上文所说明,可能需要将与本原客户端不兼容的代码翻译成本原客户端。
技术实现思路
根据一些方面,本主题技术涉及一种方法。该方法包括:接收要在本原客户端环境中运行的客户机软件,其中,客户机软件被配置为执行在指定客户机硬件架构处而不是执行在本原客户端环境内。该方法包括:使用模拟软件提供客户机软件到本原客户端兼容机器代码的二进制翻译,其中,该本原客户端兼容机器代码在用于本原客户端环境的沙盒内执行,其中,该本原客户端兼容机器代码能够在应用内执行,其中,提供客户机软件到用于在沙盒内执行的本原客户端兼容机器代码的二进制翻译刚好及时发生在模拟的客户机软件的运行时间期间,并且不需要移植或者重新编译客户机软件,以及其中,提供二进制翻译与执行模拟的客户机软件交错进行。该方法包括:在本原客户端环境中和在沙盒内运行本原客户端兼容机器代码。根据一些方面,本主题技术涉及一种非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质包括指令。该指令包括用于接收要在本原客户端环境中运行的客户机软件的代码,其中,该客户机软件被配置为执行在指定客户机硬件架构处而不是执行在本原客户端环境内。该指令包括用于使用模拟软件提供客户机软件到本原客户端兼容机器代码的代码的二进制翻译,其中,该本原客户端兼容机器代码在用于本原客户端兼容机器代码的沙盒内执行,其中,该本原客户端兼容机器代码能够在应用内执行,其中,提供客户机软件到在沙盒内执行的本原客户端兼容机器代码的二进制翻译刚好及时发生在模拟的客户机软件的运行时间期间,并且不需要移植或者重新编译客户机软件,以及其中,提供二进制翻译与执行模拟的客户机软件交错进行。提供客户机软件到本原客户端兼容机器代码的二进制翻译包括:创建虚拟寄存器的集合,该虚拟寄存器的集合表示由客户机软件在指定客户机硬件架构处执行时使用的寄存器,其中,虚拟寄存器的所述地址被基址指针(RBP)加上预定偏移加以引用,以及其中,在该虚拟寄存器的集合中的各个虚拟寄存器是能够从沙盒内经由单个指令而访问。根据一些方面,本主题技术涉及一种系统。该系统包括一个或多个处理器和存储指令的存储器。该指令包括用于接收要在本原客户端环境中运行的客户机软件的代码,其中,客户机软件被配置为执行在指定客户机硬件架构处而不是执行在本原客户端环境内。该指令包括用于使用模拟软件提供客户机软件到本原客户端兼容机器代码的代码的二进制翻译,其中,该本原客户端兼容机器代码在本原客户端环境的沙盒内执行,其中,本原客户端兼容机器代码能够在应用内执行,其中,提供客户机软件到用于在沙盒内执行的本原客户端的二进制翻译刚好及时发生在模拟的客户机软件的运行时间期间,并且不需要移植或者重新编译客户机软件,其中,用于本原客户端环境的沙盒访问在存储器中存储或者在主机处可用的寄存器中存储的模拟的客户机寄存器的集合,其中,与本原客户端兼容机器代码相关联的数据被存储在用于本原客户端环境的沙盒内,以及其中,模拟的客户机寄存器与指定客户机硬件架构的寄存器相对应。要理解的是,本主题技术的其它配置将会通过以下的详细说明而变得显而易见,在以下详细说明中,通过说明的方式示出并且描述了本主题技术的各种配置。如将会认识到的是,在不脱离本主题技术的范围的情况下,本主题技术能够具有其它配置和不同配置并且能够对其若干细节在各个其它方面进行修改。因此,在本质上应当将附图和详细说明视作是说明性的,而不是限制性的。附图说明在随附权利要求书中阐述了本主题技术的特征。然而,出于解释之目的,在以下的图中阐述了所公开的主题的若干方面。图1A图示了可以涉及到本原客户端的二进制翻译的示例客户机。图1B图示了可以涉及到本原客户端的二进制翻译的示例主机。图2图示了可以通过其完成到本原客户端的二进制翻译的示例过程。图3概念性地图示了具有实现本主题技术的一些实现方式的示例电子系统。具体实施方式以下阐述的详细说明旨在作为对本主题技术的各种配置的描述,并且不旨在表示可以实践本主题技术的唯一配置。将附图并入本文中并且构成详细说明的一部分。详细说明包括具体细节,用于提供对本主题技术的全面理解。然而,清楚且显而易见的是,本主题技术不限于本文中阐述的具体细节并且可以在没有这些具体细节的情况下实践。在某些情况下,以框图形式示出了某些结构和部件,以便避免模糊本主题的构思。如本文所使用的,“本原客户端”可以是指部署软件故障隔离和二进制代码验证方法的沙盒化环境。本原客户端实现与可移植式操作系统接口(POSIX)类似的应用编程接口(API)的有限的集合并且能够在web浏览器内执行。“二进制翻译”可以是指一种分析在一个平台(客户机)上执行的应用或者操作系统的机器代码(称为客户机代码)以产生适合于在不同平台(主机)上执行的代码的机制。“平台”可以包括硬件和软件栈组合。应用通常是针对特定平台(诸如,ARM或者x86)开发的。上述术语中的每个还涵盖其简单且普通的含义。本主题技术涉及在拥有更好的API级可移植性、安全性、和可靠性特性的另一平台(主机平台(例如,本原客户端x86-64))上运行针对客户机平台(例如,AndroidARM)开发的现有软件的二进制翻译技术。可以利用可以以动态加载库的形式访问本原部件的移植性编程语言(例如,Java)来写入用于客户机平台的应用。可以将主机部件称为共享对象,并且可以使用客户机平台的硬件架构和操作系统、在客户机平台处编译该主机部件。为了支持应用,主机平台可以需要运行Java和主机代码二者。本主题技术涉及在本原客户端沙盒内运行非移植性的、客户机平台专用应用库。根据本主题技术的一些实现方式,为了在本原客户端沙盒内执行客户机代码,产生符合本原客户端沙盒化规则的主机代码。为了实现合理的性能,可以应用优化技术。该优化技术可以包括:产生模拟客户机代码的行为的即时软件故障隔离(SFI)兼容主机代码。该优化技术可以包括:将模拟的客户机寄存器存储在快速存储件(诸如,在主机寄存器中或者在基址指针(RBP)相对存储器中的缓存器)中。这个主机代码的产生在不需要对模拟的客户机情境进行明确地沙盒化访问的情况下而允许快速访问。该优化技术可以包括:使用主机的共享对象来模拟对外部平台共享对象的调用,换本文档来自技高网...
到本原客户端的二进制翻译

【技术保护点】
一种方法,包括:接收要在本原客户端环境中运行的客户机软件,其中所述客户机软件被配置为执行在指定客户机硬件架构处而不是执行在所述本原客户端环境内;以及使用模拟软件提供所述客户机软件到本原客户端兼容机器代码的二进制翻译,其中所述本原客户端兼容机器代码在用于所述本原客户端环境的沙盒内执行,其中所述本原客户端兼容机器代码能够在应用内执行,其中提供所述客户机软件到用于所述沙盒内执行的所述本原客户端兼容机器代码的二进制翻译刚好及时发生在模拟的客户机软件的运行时间期间,并且不需要移植或者重新编译所述客户机软件,以及其中提供所述二进制翻译与执行所述模拟的客户机软件交错进行。

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:接收要在本原客户端环境中运行的客户机软件,其中所述客户机软件被配置为执行在指定客户机硬件架构处而不是执行在所述本原客户端环境内;以及使用模拟软件提供所述客户机软件到本原客户端兼容机器代码的二进制翻译,其中所述本原客户端兼容机器代码在用于所述本原客户端环境的沙盒内执行,其中所述本原客户端兼容机器代码能够在应用内执行,其中提供所述客户机软件到用于所述沙盒内执行的所述本原客户端兼容机器代码的二进制翻译刚好及时发生在模拟的客户机软件的运行时间期间,并且不需要移植或者重新编译所述客户机软件,以及其中提供所述二进制翻译与执行所述模拟的客户机软件交错进行。2.根据权利要求1所述的方法,其中用于所述本原客户端环境的所述沙盒访问在存储器中存储或者在主机处可用的寄存器中存储的模拟的客户机寄存器的集合,其中与所述本原客户端兼容机器代码相关联的数据被存储在用于所述本原客户端环境的所述沙盒内,以及其中所述模拟的客户机寄存器与所述指定客户机硬件架构的寄存器相对应。3.根据权利要求1所述的方法,其中,提供所述客户机软件到所述本原客户端兼容机器代码的二进制翻译包括:创建虚拟寄存器的集合,所述虚拟寄存器的集合表示由所述客户机软件在所述指定客户机硬件架构处执行时使用的寄存器,其中所述虚拟寄存器的所述地址通过基址指针(RBP)加上预定偏移来引用,以及其中在所述虚拟寄存器的集合中的各个虚拟寄存器是能够经由单个指令从所述沙盒内访问。4.根据权利要求1所述的方法,其中,提供所述客户机软件到所述本原客户端兼容机器代码的二进制翻译包括:模拟所述指定客户机硬件架构的特征和所述本原客户端内的所述客户机软件的应用编程接口(API)调用。5.根据权利要求1所述的方法,其中,提供所述客户机软件到所述本原客户端兼容机器代码的二进制翻译包括:利用与所述本原客户端环境兼容的代码来替代所述客户机软件中的代码。6.根据权利要求1所述的方法,其中,所述客户机软件包括ARM软件或者x86软件。7.根据权利要求1所述的方法,其中,所述本原客户端兼容机器代码是安全的并且是可移植的,以及其中,所述客户机软件是不安全的或者不可移植的。8.根据权利要求1所述的方法,其中,所述客户机软件被配置为仅在特定客户机操作系统内执行,以及其中,所述本原客户端环境被配置为执行在多个不同操作系统中的任何一个操作系统内。9.根据权利要求1所述的方法,其中,所述应用是浏览器。10.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括指令,所述指令在由一个或多个计算机执行时使所述一个或多个计算机实现一种方法,所述方法包括:接收要在本原客户端环境中运行的客户机软件,其中所述客户机软件被配置为执行在指定客户机硬件架构处而不是执行在所述本原客户端环境内;以及使用模拟软件提供所述客户机软件到本原客户端兼容机器代码的二进制翻译,其中所述本原客户端兼容机器代码在用于所述本原客户端环境的沙盒内执行,其中所述本原客户端兼容机器代码能够在应用内执行,其中提供所述客户机软件到用于所述沙盒内执行的所述本原客户端兼容机器代码的二进制翻译刚好及时发生在模拟的客户机软件的运行时间期间,并且不需要移植或者重新编译所述客户机软件,其中提供所述二进制翻译与执行所述模拟的客户机软件交错进行,以及其中提供所述客户机软件到所述本原客户端兼容机器代码的二进制翻译包括:创建虚拟寄存器的集合,所述虚拟寄存器的集合表示由所述客户机软件在所述指定客户机硬件架构处执行时使用的寄存器,其中所述...

【专利技术属性】
技术研发人员:叶夫根尼·艾尔钦尼古拉·伊戈蒂安德烈·哈尔佳温德米特里·波卢欣
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国,US

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

1