JP2018510433A - ネイティブ・クライアントへのバイナリ変換 - Google Patents
ネイティブ・クライアントへのバイナリ変換 Download PDFInfo
- Publication number
- JP2018510433A JP2018510433A JP2017551221A JP2017551221A JP2018510433A JP 2018510433 A JP2018510433 A JP 2018510433A JP 2017551221 A JP2017551221 A JP 2017551221A JP 2017551221 A JP2017551221 A JP 2017551221A JP 2018510433 A JP2018510433 A JP 2018510433A
- Authority
- JP
- Japan
- Prior art keywords
- guest
- native client
- software
- guest software
- machine code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 56
- 244000035744 Hura crepitans Species 0.000 claims abstract description 72
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000013519 translation Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 description 31
- 238000012545 processing Methods 0.000 description 22
- 238000004590 computer program Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000002955 isolation Methods 0.000 description 3
- 239000010410 layer Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
Abstract
Description
以下に示す詳細な説明は、本願の技術の様々な構成の説明を意図し、本願の技術が実施される唯一の構成だけを表すことを意図しない。添付される図面は、本明細書に組み込まれ、詳細な説明の一部を構成する。詳細な説明は、本願の技術の十分な理解を提供するための具体的詳細を含む。しかしながら、本願の技術は本明細書に示される具体的詳細には限定されず、これら具体的詳細なしに実施されることは明白である。いくつかの事例においては、本願の技術の概念を曖昧にすることを避けるために、一定の構造および要素はブロック図で示される。
プロセス200は工程210において開始する。工程210において、ホスト・マシン(たとえば、ホスト・マシン100B)は、ネイティブ・クライアント環境(たとえば、ネイティブ・クライアント・サンドボックス120B)内で動作するようゲスト・ソフトウェア(たとえば、ゲスト・ソフトウェア・プログラム110A)を受信する。ゲスト・ソフトウェアは、特定のゲスト・ハードウェア・アーキテクチャ(たとえば、ゲスト・マシン100A)における実行用に構成されており、ネイティブ・クライアント環境内での実行用には構成されていない。ネイティブ・クライアント環境は、複数の異なるハードウェア・アーキテクチャのうち任意の1つの内での実行用に構成されている。たとえば、ネイティブ・クライアント環境は、複数の異なるハードウェア・アーキテクチャのうち任意の1つの内に存在し得るアプリケーション(ブラウザなど)内での実行用に構成されている。
Claims (20)
- ネイティブ・クライアント環境内で動作するようゲスト・ソフトウェアを受信する工程であって、前記ゲスト・ソフトウェアは、特定のゲスト・ハードウェア・アーキテクチャにおける実行用に構成されており、前記ネイティブ・クライアント環境内での実行用には構成されていない工程と、
エミュレーション・ソフトウェアを用いて、前記ゲスト・ソフトウェアのネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供する工程であって、前記ネイティブ・クライアント互換性マシン・コードは、前記ネイティブ・クライアント環境用のサンドボックス内で実行され、前記ネイティブ・クライアント互換性マシン・コードはアプリケーション内で実行可能であり、前記サンドボックス内での実行用に前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへの前記バイナリ変換を提供することは、時間通りに、エミュレートされたゲスト・ソフトウェアの実行時に、および前記ゲスト・ソフトウェアをポーティングまたはリコンパイルすることなく起こり、前記バイナリ変換を提供することは、エミュレートされた前記ゲスト・ソフトウェアの実行とインターリーブする工程と、
を備える方法。 - 前記ネイティブ・クライアント環境用の前記サンドボックスは、ホスト・マシンにおいて利用可能であるメモリまたはレジスタ内に記憶された1セットのエミュレートされたゲスト・レジスタにアクセスし、前記ネイティブ・クライアント互換性マシン・コードと関連付けられているデータは前記ネイティブ・クライアント環境用の前記サンドボックス内に記憶され、エミュレートされた前記ゲスト・レジスタは、前記特定のゲスト・ハードウェア・アーキテクチャのレジスタに対応する、
請求項1に記載の方法。 - 前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供することは、前記特定のゲスト・ハードウェア・アーキテクチャにおいて実行中の前記ゲスト・ソフトウェアによって用いられるレジスタを表現する1セットの仮想レジスタを生成する工程であって、前記仮想レジスタのアドレスは、所定のオフセットを加えたベース・ポインタ(RBP)によって参照され、前記1セットの仮想レジスタ内の各仮想レジスタは、前記サンドボックス内から1つの命令を介してアクセス可能である工程を含む、
請求項1に記載の方法。 - 前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供することは、前記特定のゲスト・ハードウェア・アーキテクチャのフィーチャと前記ゲスト・ソフトウェアのアプリケーション・プログラミング・インターフェース(API)呼出とを前記ネイティブ・クライアント内でエミュレートする工程を含む、
請求項1に記載の方法。 - 前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供することは、前記ゲスト・ソフトウェア内のコードを前記ネイティブ・クライアント環境との互換性があるコードに置き換える工程を含む、
請求項1に記載の方法。 - 前記ゲスト・ソフトウェアは、ARMソフトウェアまたはx86ソフトウェアを含む、
請求項1に記載の方法。 - 前記ネイティブ・クライアント互換性マシン・コードはセキュアおよびポータブルであって、前記ゲスト・ソフトウェアはセキュアでもポータブルでもない、
請求項1に記載の方法。 - 前記ゲスト・ソフトウェアは特定のゲスト・オペレーティング・システム内のみにおける実行用に構成されており、前記ネイティブ・クライアント環境は複数の異なるオペレーティング・システムのうち任意の1つの内での実行用に構成されている、
請求項1に記載の方法。 - 前記アプリケーションはブラウザである、
請求項1に記載の方法。 - 命令を含む非一時的なコンピュータ可読媒体であって、前記命令が1以上のコンピュータによって実行されるときに前記1以上のコンピュータは、
ネイティブ・クライアント環境内で動作するようゲスト・ソフトウェアを受信する工程であって、前記ゲスト・ソフトウェアは、特定のゲスト・ハードウェア・アーキテクチャにおける実行用に構成されており、前記ネイティブ・クライアント環境内での実行用には構成されていない工程と、
エミュレーション・ソフトウェアを用いて、前記ゲスト・ソフトウェアのネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供する工程であって、前記ネイティブ・クライアント互換性マシン・コードは、前記ネイティブ・クライアント環境用のサンドボックス内で実行され、前記ネイティブ・クライアント互換性マシン・コードはアプリケーション内で実行可能であり、前記サンドボックス内での実行用に前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへの前記バイナリ変換を提供することは、時間通りに、エミュレートされたゲスト・ソフトウェアの実行時に、および前記ゲスト・ソフトウェアをポーティングまたはリコンパイルすることなく起こり、前記バイナリ変換を提供することは、エミュレートされた前記ゲスト・ソフトウェアの実行とインターリーブする工程と、
を備える方法を実施する、非一時的なコンピュータ可読媒体であって、
前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供することは、前記特定のゲスト・ハードウェア・アーキテクチャにおいて実行中の前記ゲスト・ソフトウェアによって用いられるレジスタを表現する1セットの仮想レジスタを生成する工程であって、前記仮想レジスタのアドレスは、所定のオフセットを加えたベース・ポインタ(RBP)によって参照され、前記1セットの仮想レジスタ内の各仮想レジスタは、前記サンドボックス内から1つの命令を介してアクセス可能である工程を含む、
非一時的なコンピュータ可読媒体。 - 前記ネイティブ・クライアント環境用の前記サンドボックスは、ホスト・マシンにおいて利用可能であるメモリまたはレジスタ内に記憶された1セットのエミュレートされたゲスト・レジスタにアクセスし、前記ネイティブ・クライアント互換性マシン・コードと関連付けられているデータは前記ネイティブ・クライアント環境用の前記サンドボックス内に記憶され、エミュレートされた前記ゲスト・レジスタは、前記特定のゲスト・ハードウェア・アーキテクチャのレジスタに対応する、
請求項9に記載の非一時的なコンピュータ可読媒体。 - 前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供することは、前記特定のゲスト・ハードウェア・アーキテクチャのフィーチャと前記ゲスト・ソフトウェアのアプリケーション・プログラミング・インターフェース(API)呼出とを前記ネイティブ・クライアント内でエミュレートする工程を含む、
請求項9に記載の非一時的なコンピュータ可読媒体。 - 前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供することは、前記ゲスト・ソフトウェア内のコードを前記ネイティブ・クライアント環境との互換性があるコードに置き換える工程を含む、
請求項9に記載の非一時的なコンピュータ可読媒体。 - 前記ゲスト・ソフトウェアは、ARMソフトウェアまたはx86ソフトウェアを含む、
請求項9に記載の非一時的なコンピュータ可読媒体。 - 前記ネイティブ・クライアント互換性マシン・コードはセキュアおよびポータブルであって、前記ゲスト・ソフトウェアはセキュアでもポータブルでもない、
請求項9に記載の非一時的なコンピュータ可読媒体。 - 1以上のプロセッサと、
命令を含むメモリと、を備えるシステムであって、前記命令は前記1以上のプロセッサによって実行されるときに前記1以上のプロセッサに、
ネイティブ・クライアント環境内で動作するようゲスト・ソフトウェアを受信する工程であって、前記ゲスト・ソフトウェアは、特定のゲスト・ハードウェア・アーキテクチャにおける実行用に構成されており、前記ネイティブ・クライアント環境内での実行用には構成されていない工程と、
エミュレーション・ソフトウェアを用いて、前記ゲスト・ソフトウェアのネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供する工程であって、前記ネイティブ・クライアント互換性マシン・コードは、前記ネイティブ・クライアント環境用のサンドボックス内で実行され、前記ネイティブ・クライアント互換性マシン・コードはアプリケーション内で実行可能であり、前記サンドボックス内での実行用に前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへの前記バイナリ変換を提供することは、時間通りに、エミュレートされたゲスト・ソフトウェアの実行時に、および前記ゲスト・ソフトウェアをポーティングまたはリコンパイルすることなく起こり、前記バイナリ変換を提供することは、エミュレートされた前記ゲスト・ソフトウェアの実行とインターリーブし、前記ネイティブ・クライアント環境用の前記サンドボックスは、ホスト・マシンにおいて利用可能であるメモリまたはレジスタ内に記憶された1セットのエミュレートされたゲスト・レジスタにアクセスし、前記ネイティブ・クライアント互換性マシン・コードと関連付けられているデータは前記ネイティブ・クライアント環境用の前記サンドボックス内に記憶され、エミュレートされた前記ゲスト・レジスタは、前記特定のゲスト・ハードウェア・アーキテクチャのレジスタに対応する工程と、
を備える方法を実装させる、システム。 - 前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供することは、前記特定のゲスト・ハードウェア・アーキテクチャにおいて実行中の前記ゲスト・ソフトウェアによって用いられるレジスタを表現する1セットの仮想レジスタを生成する工程であって、前記仮想レジスタのアドレスは、所定のオフセットを加えたベース・ポインタ(RBP)によって参照され、前記1セットの仮想レジスタ内の各仮想レジスタは、前記サンドボックス内から1つの命令を介してアクセス可能である工程を含む、
請求項16に記載のシステム。 - 前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供することは、前記特定のゲスト・ハードウェア・アーキテクチャのフィーチャと前記ゲスト・ソフトウェアのアプリケーション・プログラミング・インターフェース(API)呼出とを前記ネイティブ・クライアント内でエミュレートする工程を含む、
請求項16に記載のシステム。 - 前記ゲスト・ソフトウェアの前記ネイティブ・クライアント互換性マシン・コードへのバイナリ変換を提供することは、前記ゲスト・ソフトウェア内のコードを前記ネイティブ・クライアント環境との互換性があるコードに置き換える工程を含む、
請求項16に記載のシステム。 - 前記ゲスト・ソフトウェアは、ARMソフトウェアまたはx86ソフトウェアを含む、
請求項16に記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2015/000883 WO2016162720A1 (en) | 2015-04-10 | 2015-04-10 | Binary translation into native client |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018510433A true JP2018510433A (ja) | 2018-04-12 |
JP6678185B2 JP6678185B2 (ja) | 2020-04-08 |
Family
ID=57071808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017551221A Active JP6678185B2 (ja) | 2015-04-10 | 2015-04-10 | ネイティブ・クライアントへのバイナリ変換 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10162617B2 (ja) |
EP (1) | EP3281105B1 (ja) |
JP (1) | JP6678185B2 (ja) |
KR (1) | KR102002143B1 (ja) |
CN (1) | CN107408053B (ja) |
DE (1) | DE112015006438T5 (ja) |
GB (1) | GB2554201B (ja) |
WO (1) | WO2016162720A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9335982B1 (en) * | 2015-04-28 | 2016-05-10 | Microsoft Technology Licensing, Llc | Processor emulation using multiple translations |
US11240268B1 (en) * | 2017-09-27 | 2022-02-01 | EMC IP Holding Company LLC | Dynamic honeypots for computer program execution environments |
CN112817812B (zh) * | 2020-12-31 | 2022-11-04 | 深圳市联影高端医疗装备创新研究院 | 序列翻译模拟方法、装置、设备及存储介质 |
CN113076106A (zh) * | 2021-03-29 | 2021-07-06 | Oppo广东移动通信有限公司 | 编译应用的方法、运行应用的方法及电子设备 |
CN113741887B (zh) * | 2021-08-19 | 2022-09-27 | 北京百度网讯科技有限公司 | 模型生产方法、系统、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001514411A (ja) * | 1997-08-28 | 2001-09-11 | マイクロソフト コーポレイション | 信頼できない実行可能コードに関するセキュリティ向上 |
JP2011123917A (ja) * | 2003-07-15 | 2011-06-23 | Internatl Business Mach Corp <Ibm> | 対象プログラム・コードを目的プログラム・コードに変換するための方法、並びにコンピュータ・プログラム及びコンピュータ |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4456954A (en) * | 1981-06-15 | 1984-06-26 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations |
US6704925B1 (en) * | 1998-09-10 | 2004-03-09 | Vmware, Inc. | Dynamic binary translator with a system and method for updating and maintaining coherency of a translation cache |
US6463582B1 (en) * | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
JP4130713B2 (ja) * | 1998-10-21 | 2008-08-06 | 松下電器産業株式会社 | プログラム変換装置 |
US6732220B2 (en) * | 1999-02-17 | 2004-05-04 | Elbrus International | Method for emulating hardware features of a foreign architecture in a host operating system environment |
US7092869B2 (en) * | 2001-11-14 | 2006-08-15 | Ronald Hilton | Memory address prediction under emulation |
US20030093775A1 (en) * | 2001-11-14 | 2003-05-15 | Ronald Hilton | Processing of self-modifying code under emulation |
US20030093774A1 (en) * | 2001-11-14 | 2003-05-15 | Ronald Hilton | State-specific variants of translated code under emulation |
US7496494B2 (en) * | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
US20050038892A1 (en) * | 2003-08-13 | 2005-02-17 | Sun Microsystems, Inc. | Method for wireless communication and apparatus for conducting the same |
US7290253B1 (en) * | 2003-09-30 | 2007-10-30 | Vmware, Inc. | Prediction mechanism for subroutine returns in binary translation sub-systems of computers |
US8214622B2 (en) * | 2004-05-27 | 2012-07-03 | International Business Machines Corporation | Facilitating management of storage of a pageable mode virtual environment absent intervention of a host of the environment |
US7496495B2 (en) * | 2005-05-12 | 2009-02-24 | Microsoft Corporation | Virtual operating system device communication relying on memory access violations |
US20070006178A1 (en) * | 2005-05-12 | 2007-01-04 | Microsoft Corporation | Function-level just-in-time translation engine with multiple pass optimization |
US20070074191A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Software executables having virtual hardware, operating systems, and networks |
US20070283324A1 (en) * | 2005-08-30 | 2007-12-06 | Geisinger Nile J | System and method for creating programs that comprise several execution layers |
US20070074192A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Computing platform having transparent access to resources of a host platform |
US20070050765A1 (en) * | 2005-08-30 | 2007-03-01 | Geisinger Nile J | Programming language abstractions for creating and controlling virtual computers, operating systems and networks |
US20070050770A1 (en) * | 2005-08-30 | 2007-03-01 | Geisinger Nile J | Method and apparatus for uniformly integrating operating system resources |
US20070067769A1 (en) * | 2005-08-30 | 2007-03-22 | Geisinger Nile J | Method and apparatus for providing cross-platform hardware support for computer platforms |
US8099730B2 (en) * | 2006-03-30 | 2012-01-17 | Intel Corporation | Heterogeneous virtualization of host and guest OS having different register sizes using translation layer to extract device port numbers for host OS system memory addresses |
US8875114B2 (en) * | 2007-09-21 | 2014-10-28 | International Business Machines Corporation | Employing identifiers provided by an operating system of a processing environment to optimize the processing environment |
US9740637B2 (en) * | 2007-10-30 | 2017-08-22 | Vmware, Inc. | Cryptographic multi-shadowing with integrity verification |
US8819676B2 (en) * | 2007-10-30 | 2014-08-26 | Vmware, Inc. | Transparent memory-mapped emulation of I/O calls |
CN100462922C (zh) * | 2007-11-01 | 2009-02-18 | 上海交通大学 | 利用中间指令集的二进制翻译方法 |
US8176280B2 (en) * | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Use of test protection instruction in computing environments that support pageable guests |
US8086811B2 (en) * | 2008-02-25 | 2011-12-27 | International Business Machines Corporation | Optimizations of a perform frame management function issued by pageable guests |
US8095773B2 (en) * | 2008-02-26 | 2012-01-10 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
US9058483B2 (en) * | 2008-05-08 | 2015-06-16 | Google Inc. | Method for validating an untrusted native code module |
US8424082B2 (en) * | 2008-05-08 | 2013-04-16 | Google Inc. | Safely executing an untrusted native code module on a computing device |
US8346531B2 (en) * | 2008-11-05 | 2013-01-01 | Oracle America, Inc. | Handling mutex locks in a dynamic binary translation across heterogeneous computer systems |
US9766911B2 (en) * | 2009-04-24 | 2017-09-19 | Oracle America, Inc. | Support for a non-native application |
US8640220B1 (en) * | 2009-09-09 | 2014-01-28 | Amazon Technologies, Inc. | Co-operative secure packet management |
US8428930B2 (en) * | 2009-09-18 | 2013-04-23 | International Business Machines Corporation | Page mapped spatially aware emulation of a computer instruction set |
US9158566B2 (en) * | 2009-09-18 | 2015-10-13 | International Business Machines Corporation | Page mapped spatially aware emulation of computer instruction set |
US8301434B2 (en) * | 2009-09-18 | 2012-10-30 | International Buisness Machines Corporation | Host cell spatially aware emulation of a guest wild branch |
US8447583B2 (en) * | 2009-09-18 | 2013-05-21 | International Business Machines Corporation | Self initialized host cell spatially aware emulation of a computer instruction set |
US8949106B2 (en) * | 2009-09-18 | 2015-02-03 | International Business Machines Corporation | Just in time compiler in spatially aware emulation of a guest computer instruction set |
US8555265B2 (en) * | 2010-05-04 | 2013-10-08 | Google Inc. | Parallel processing of data |
US8479176B2 (en) * | 2010-06-14 | 2013-07-02 | Intel Corporation | Register mapping techniques for efficient dynamic binary translation |
US8595469B2 (en) * | 2010-06-24 | 2013-11-26 | International Business Machines Corporation | Diagnose instruction for serializing processing |
US20120159127A1 (en) * | 2010-12-16 | 2012-06-21 | Microsoft Corporation | Security sandbox |
WO2012103253A2 (en) * | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Multilevel conversion table cache for translating guest instructions to native instructions |
US8880851B2 (en) * | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9495183B2 (en) * | 2011-05-16 | 2016-11-15 | Microsoft Technology Licensing, Llc | Instruction set emulation for guest operating systems |
CN102314373B (zh) * | 2011-07-07 | 2013-12-18 | 胡建斌 | 一种基于虚拟化技术实现安全工作环境的方法 |
US9098309B2 (en) * | 2011-09-23 | 2015-08-04 | Qualcomm Incorporated | Power consumption optimized translation of object code partitioned for hardware component based on identified operations |
US8281288B1 (en) * | 2011-10-20 | 2012-10-02 | Google Inc. | Integrated development environment with network-based compilation and sandboxed native machine-language capabilities |
US8812873B2 (en) * | 2012-09-26 | 2014-08-19 | Intel Corporation | Secure execution of a computer program using binary translators |
US9405551B2 (en) * | 2013-03-12 | 2016-08-02 | Intel Corporation | Creating an isolated execution environment in a co-designed processor |
US9525586B2 (en) * | 2013-03-15 | 2016-12-20 | Intel Corporation | QoS based binary translation and application streaming |
US9268549B2 (en) * | 2013-03-27 | 2016-02-23 | Vmware, Inc. | Methods and apparatus to convert a machine to a virtual machine |
US9658867B2 (en) * | 2013-05-30 | 2017-05-23 | Hewlett Packard Enterprise Development Lp | Preserving object code translations of a library for future reuse by an emulator |
CN104462962B (zh) * | 2013-09-13 | 2018-07-03 | 北京安赛创想科技有限公司 | 一种检测未知恶意代码和二进制漏洞的方法 |
US9983894B2 (en) * | 2013-09-25 | 2018-05-29 | Facebook, Inc. | Method and system for providing secure system execution on hardware supporting secure application execution |
US9355246B1 (en) * | 2013-12-05 | 2016-05-31 | Trend Micro Inc. | Tuning sandbox behavior based on static characteristics of malware |
-
2015
- 2015-04-10 US US14/915,204 patent/US10162617B2/en active Active
- 2015-04-10 CN CN201580078466.6A patent/CN107408053B/zh active Active
- 2015-04-10 JP JP2017551221A patent/JP6678185B2/ja active Active
- 2015-04-10 WO PCT/IB2015/000883 patent/WO2016162720A1/en active Application Filing
- 2015-04-10 EP EP15888379.3A patent/EP3281105B1/en active Active
- 2015-04-10 GB GB1715719.9A patent/GB2554201B/en active Active
- 2015-04-10 KR KR1020177027848A patent/KR102002143B1/ko active IP Right Grant
- 2015-04-10 DE DE112015006438.9T patent/DE112015006438T5/de active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001514411A (ja) * | 1997-08-28 | 2001-09-11 | マイクロソフト コーポレイション | 信頼できない実行可能コードに関するセキュリティ向上 |
JP2011123917A (ja) * | 2003-07-15 | 2011-06-23 | Internatl Business Mach Corp <Ibm> | 対象プログラム・コードを目的プログラム・コードに変換するための方法、並びにコンピュータ・プログラム及びコンピュータ |
Also Published As
Publication number | Publication date |
---|---|
DE112015006438T5 (de) | 2018-01-04 |
JP6678185B2 (ja) | 2020-04-08 |
EP3281105A1 (en) | 2018-02-14 |
GB201715719D0 (en) | 2017-11-15 |
WO2016162720A8 (en) | 2017-11-23 |
CN107408053A (zh) | 2017-11-28 |
KR20170129794A (ko) | 2017-11-27 |
KR102002143B1 (ko) | 2019-07-19 |
GB2554201B (en) | 2022-05-11 |
EP3281105A4 (en) | 2018-12-19 |
GB2554201A (en) | 2018-03-28 |
CN107408053B (zh) | 2021-04-16 |
WO2016162720A1 (en) | 2016-10-13 |
EP3281105B1 (en) | 2023-10-25 |
US10162617B2 (en) | 2018-12-25 |
US20170039049A1 (en) | 2017-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6559793B2 (ja) | 共有オブジェクト・レベルにおけるバイナリ変換 | |
US8683462B2 (en) | Handling calls to native code in a managed code environment | |
US8694988B2 (en) | Runtime extensions | |
AU2012352754B2 (en) | Facilitating system service request interactions for hardware-protected applications | |
US8528083B2 (en) | Using a call gate to prevent secure sandbox leakage | |
JP6678185B2 (ja) | ネイティブ・クライアントへのバイナリ変換 | |
US20160085604A1 (en) | Dynamic method invocation via proxy framework | |
US20130167150A1 (en) | Application Management | |
US8768682B2 (en) | ISA bridging including support for call to overidding virtual functions | |
Chen et al. | A lightweight virtualization solution for android devices | |
EP2802983B1 (en) | Isa bridging with callback | |
US9197446B2 (en) | Address pinning | |
US20140358515A1 (en) | Preserving object code translations of a library for future reuse by an emulator | |
US9756149B2 (en) | Machine-specific instruction set translation | |
US10579373B2 (en) | Seamless extension porting | |
Goonasekera et al. | LibVM: an architecture for shared library sandboxing | |
Bertin et al. | Compilation and virtualization in the HiPEAC vision | |
Liu et al. | KMRE: An Efficient and Compatible Runtime to Execute Android Application on Linux System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170929 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180926 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181030 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190625 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200316 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6678185 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |