JP4796625B2 - 仮想化検出 - Google Patents
仮想化検出 Download PDFInfo
- Publication number
- JP4796625B2 JP4796625B2 JP2008514946A JP2008514946A JP4796625B2 JP 4796625 B2 JP4796625 B2 JP 4796625B2 JP 2008514946 A JP2008514946 A JP 2008514946A JP 2008514946 A JP2008514946 A JP 2008514946A JP 4796625 B2 JP4796625 B2 JP 4796625B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- program
- executing
- computer
- frequency
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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/45533—Hypervisors; Virtual machine monitors
-
- 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
-
- 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/54—Link editing before load time
Description
デスクトップ、サーバ、ワークステーション、もしくはノートブックコンピュータを含むコンピュータのようなプロセッサに基づくシステムにおいて、パーソナルデジタルアシスタントすなわちPDA、「スマート」携帯電話、もしくはポータブルゲームシステムのようなハンドヘルドデバイスにおいて、または、ゲームコンソールもしくはステーション、セットトップボックスその他のホームエンターテイメントデバイス等においてはプロセッサが使用される。それぞれの場合において、プロセッサは基本的な実行サイクルに基づいて作動し、一つのプロセッサパラメータはそのプロセッササイクルが発生する周波数である。この周波数は、1秒当たりのサイクル数で測定される。すなわち、ヘルツ(Hz)、またはメガヘルツ(MHz)およびギガヘルツ(GHz)のようなその倍数である。
Claims (13)
- コンピュータが、物理プロセッサまたは仮想プロセッサの何れか一方であり、プログラムを実行しているプロセッサの動作周波数を測定する段階と、
コンピュータが、前記プログラムを実行しているプロセッサの測定された前記動作周波数の値と、前記物理プロセッサがその周波数で動作するべく特定された周波数である特定周波数の値であって、前記コンピュータのメモリに格納されている値とを比較する段階と、
コンピュータが、前記比較の結果に基づいて、前記プログラムを実行しているプロセッサが、前記物理プロセッサであるか前記仮想プロセッサであるかを決定する段階と、
を有し、
前記プログラムを実行しているプロセッサの前記動作周波数を測定する段階は、
コンピュータが、その間の時間が既知であるインターバルの間に、前記プログラムを実行しているプロセッサのクロックサイクルをカウントする段階と、
コンピュータが、前記インターバルの間にカウントされた前記クロックサイクルの個数を、前記インターバルの時間で割ることによって、前記プログラムを実行しているプロセッサの前記動作周波数を計算する段階と、
を含む、
方法。 - 前記比較する段階は、
コンピュータが、前記プログラムを実行しているプロセッサの測定された前記動作周波数が、前記特定周波数に対する特定の範囲内にあるか否かを決定する段階を含む、
請求項1に記載の方法。 - 前記プログラムを実行しているプロセッサが前記物理プロセッサであるか前記仮想プロセッサであるかを決定する段階は、
コンピュータが、
前記プログラムを実行しているプロセッサの測定された前記動作周波数が前記特定周波数に対する前記特定の範囲内にある場合に、前記プログラムを実行しているプロセッサは前記仮想プロセッサではないと決定し、
そうでない場合に、前記プログラムを実行しているプロセッサは前記仮想プロセッサであると決定する段階をさらに含む、
請求項2に記載の方法。 - 前記プログラムを実行しているプロセッサのクロックサイクルをカウントする段階は、
コンピュータが、前記プログラムを実行しているプロセッサの第1のサイクルカウントを取得すべく、前記プログラムを実行しているプロセッサへの命令を実行する段階と、
コンピュータが、リアルタイムクロックにアクセスして、前記インターバルの時間が経過するまで前記プログラムを待機またはループさせるべく命令を実行する段階と、
コンピュータが、前記インターバルが終了した後、前記プログラムを実行しているプロセッサの第2のサイクルカウントを取得すべく、前記プログラムを実行しているプロセッサへの命令を実行する段階と、
コンピュータが、前記第2のサイクルカウントと、前記第1のサイクルカウントとの差を算出する段階と、
を含む、
請求項3に記載の方法。 - 前記特定周波数を取得する段階をさらに有し、
前記特定周波数を取得する段階は、
コンピュータが、前記コンピュータのプロセッサを識別する命令を実行して、前記コンピュータのプロセッサを識別する識別情報を取得する段階と、
コンピュータが、取得した前記識別情報を用いて、前記コンピュータのプロセッサの仕様の少なくとも一部を格納するテーブルに格納された情報の中から、前記コンピュータのプロセッサの前記特定周波数を選択する段階と、
を含む、
請求項3または請求項4に記載の方法。 - 前記プログラムを実行しているプロセッサが前記物理プロセッサであるか前記仮想プロセッサであるかを決定する段階は、
コンピュータが、前記プログラムを実行しているプロセッサの測定された前記動作周波数と前記特定周波数との差が予め定められた閾値を超える場合に、前記プログラムを実行しているプロセッサは前記仮想プロセッサであると決定する段階を含む、
請求項1から請求項5までの何れか一項に記載の方法。 - コンピュータに、
物理プロセッサまたは仮想プロセッサの何れか一方であり、プログラムを実行しているプロセッサの動作周波数を測定する手順と、
前記プログラムを実行しているプロセッサの測定された前記動作周波数の値と、前記物理プロセッサがその周波数で動作するべく特定された周波数である特定周波数の値であって、前記コンピュータのメモリに格納されている値とを比較する手順と、
前記比較の結果に基づいて、前記プログラムを実行しているプロセッサが前記物理プロセッサであるか前記仮想プロセッサであるかを決定する手順と、
を実行させるためのプログラムであって、
前記プログラムを実行しているプロセッサの前記動作周波数を測定する手順は、
その間の時間が既知であるインターバルの間に、前記プログラムを実行しているプロセッサのクロックサイクルをカウントする手順と、
前記インターバルの間にカウントされた前記クロックサイクルの個数を、前記インターバルの時間で割ることによって、前記プログラムを実行しているプロセッサの前記動作周波数を計算する手順と、
を含む、
プログラム。 - 前記比較する手順は、
前記プログラムを実行しているプロセッサの前記測定された前記動作周波数が、前記特定周波数に対する特定の範囲内にあるか否かを決定する手順を含む、
請求項7に記載のプログラム。 - 前記プログラムを実行しているプロセッサが前記物理プロセッサであるか前記仮想プロセッサであるかを決定する手順は、
前記プログラムを実行しているプロセッサの測定された前記動作周波数が、前記特定周波数に対する前記特定の範囲内にある場合に、前記プログラムを実行しているプロセッサは前記仮想プロセッサではないと決定し、
そうでない場合に、前記プログラムを実行しているプロセッサは前記仮想プロセッサであると決定する手順をさらに含む、
請求項8に記載のプログラム。 - 前記プログラムを実行しているプロセッサのクロックサイクルをカウントする手順は、
前記プログラムを実行しているプロセッサの第1のサイクルカウントを取得すべく、前記プログラムを実行しているプロセッサへの命令を実行する手順と、
リアルタイムクロックにアクセスして、前記インターバルの時間が経過するまで前記プログラムを待機またはループさせるべく命令を実行する手順と、
前記インターバルが終了した後、前記プログラムを実行しているプロセッサの第2のサイクルカウントを取得すべく、前記プログラムを実行しているプロセッサへの命令を実行する手順と、
前記第2のサイクルカウントと、前記第1のサイクルカウントとの差を算出する手順と、
を含む、
請求項9に記載のプログラム。 - コンピュータに、
前記特定周波数を取得する手順をさらに実行させ、
前記特定周波数を取得する手順は、
前記コンピュータのプロセッサを識別する命令を実行して、前記コンピュータのプロセッサを識別する識別情報を取得する手順と、
取得した前記識別情報を用いて、前記コンピュータのプロセッサの仕様の少なくとも一部を格納するテーブルに格納された情報の中から、前記コンピュータのプロセッサの前記特定周波数を選択する手順と、
を含む、
請求項9または請求項10に記載のプログラム。 - 前記プログラムを実行しているプロセッサが前記物理プロセッサであるか前記仮想プロセッサであるかを決定する手順は、
前記プログラムを実行しているプロセッサの測定された前記動作周波数と前記特定周波数との差が予め定められた閾値を超える場合に、前記プログラムを実行しているプロセッサは前記仮想プロセッサであると決定する手順を含む、
請求項7から請求項11までの何れか一項に記載のプログラム。 - プロセッサと、ストレージとを備えるシステムであって、
前記ストレージは、請求項7から請求項12までの何れか一項に記載のプログラムを格納し、
前記プロセッサは、前記プログラムを前記システム上で実行させる、
システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/144,527 | 2005-06-02 | ||
US11/144,527 US20060277546A1 (en) | 2005-06-02 | 2005-06-02 | Detecting virtualization |
PCT/US2006/021652 WO2006130876A2 (en) | 2005-06-02 | 2006-06-02 | Detecting virtualization |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008542928A JP2008542928A (ja) | 2008-11-27 |
JP2008542928A5 JP2008542928A5 (ja) | 2010-12-24 |
JP4796625B2 true JP4796625B2 (ja) | 2011-10-19 |
Family
ID=37036881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008514946A Expired - Fee Related JP4796625B2 (ja) | 2005-06-02 | 2006-06-02 | 仮想化検出 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060277546A1 (ja) |
EP (1) | EP1886221A2 (ja) |
JP (1) | JP4796625B2 (ja) |
KR (1) | KR100937062B1 (ja) |
CN (1) | CN101460924B (ja) |
WO (1) | WO2006130876A2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7577820B1 (en) | 2006-04-14 | 2009-08-18 | Tilera Corporation | Managing data in a parallel processing environment |
US7774579B1 (en) * | 2006-04-14 | 2010-08-10 | Tilera Corporation | Protection in a parallel processing environment using access information associated with each switch to prevent data from being forwarded outside a plurality of tiles |
US8776041B2 (en) * | 2007-02-05 | 2014-07-08 | Microsoft Corporation | Updating a virtual machine monitor from a guest partition |
US8205241B2 (en) * | 2008-01-30 | 2012-06-19 | Microsoft Corporation | Detection of hardware-based virtual machine environment |
US9459890B2 (en) * | 2008-07-10 | 2016-10-04 | Mentor Graphics Corporation | Controlling real time during embedded system development |
US8966475B2 (en) * | 2009-08-10 | 2015-02-24 | Novell, Inc. | Workload management for heterogeneous hosts in a computing system environment |
US9003404B2 (en) * | 2012-03-22 | 2015-04-07 | Verizon Patent And Licensing Inc. | Determining hardware functionality in a cloud computing environment |
US8813240B1 (en) | 2012-05-30 | 2014-08-19 | Google Inc. | Defensive techniques to increase computer security |
US9015838B1 (en) * | 2012-05-30 | 2015-04-21 | Google Inc. | Defensive techniques to increase computer security |
US9195492B2 (en) * | 2012-10-25 | 2015-11-24 | Empire Technology Development Llc | Secure system time reporting |
GB2512376A (en) * | 2013-03-28 | 2014-10-01 | Ibm | Secure execution of software modules on a computer |
US10628204B2 (en) * | 2018-02-27 | 2020-04-21 | Performance Software Corporation | Virtual communication router with time-quantum synchronization |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546568A (en) * | 1993-12-29 | 1996-08-13 | Intel Corporation | CPU clock control unit |
US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US7035963B2 (en) * | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US7017060B2 (en) * | 2001-03-19 | 2006-03-21 | Intel Corporation | Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down |
US6961806B1 (en) * | 2001-12-10 | 2005-11-01 | Vmware, Inc. | System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems |
JP3781758B2 (ja) * | 2004-06-04 | 2006-05-31 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサ、プロセッサシステム、温度推定装置、情報処理装置および温度推定方法 |
US20060005190A1 (en) * | 2004-06-30 | 2006-01-05 | Microsoft Corporation | Systems and methods for implementing an operating system in a virtual machine environment |
-
2005
- 2005-06-02 US US11/144,527 patent/US20060277546A1/en not_active Abandoned
-
2006
- 2006-06-02 WO PCT/US2006/021652 patent/WO2006130876A2/en active Application Filing
- 2006-06-02 KR KR1020077029864A patent/KR100937062B1/ko not_active IP Right Cessation
- 2006-06-02 EP EP06784577A patent/EP1886221A2/en not_active Withdrawn
- 2006-06-02 CN CN200680018961.9A patent/CN101460924B/zh not_active Expired - Fee Related
- 2006-06-02 JP JP2008514946A patent/JP4796625B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100937062B1 (ko) | 2010-01-15 |
CN101460924B (zh) | 2014-02-12 |
JP2008542928A (ja) | 2008-11-27 |
CN101460924A (zh) | 2009-06-17 |
EP1886221A2 (en) | 2008-02-13 |
KR20080010464A (ko) | 2008-01-30 |
US20060277546A1 (en) | 2006-12-07 |
WO2006130876A2 (en) | 2006-12-07 |
WO2006130876A3 (en) | 2007-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4796625B2 (ja) | 仮想化検出 | |
JP4354488B2 (ja) | 特権イベントを処理するための複数のバーチャルマシーンモニタの利用 | |
JP4584315B2 (ja) | 仮想マシン環境におけるタイマ・オフセット機構 | |
Vidas et al. | Evading android runtime analysis via sandbox detection | |
JP4564536B2 (ja) | 仮想マシンモニタに関連するタイマへのサポートを提供する方法及び装置 | |
US7827550B2 (en) | Method and system for measuring a program using a measurement agent | |
US9529614B2 (en) | Automatically bridging the semantic gap in machine introspection | |
US7748037B2 (en) | Validating a memory type modification attempt | |
US8099574B2 (en) | Providing protected access to critical memory regions | |
EP1761850B1 (en) | Support for nested faults in a virtual machine environment | |
Franklin et al. | Remote detection of virtual machine monitors with fuzzy benchmarking | |
JP2007528084A (ja) | 仮想マシン環境におけるゲストソフトウェアの実行中にオープン・イベント・ウィンドウの認識を容易にする方法および装置 | |
Klingensmith et al. | Hermes: A real time hypervisor for mobile and iot systems | |
Shropshire | Analysis of monolithic and microkernel architectures: Towards secure hypervisor design | |
Klingensmith et al. | Using virtualized task isolation to improve responsiveness in mobile and iot software | |
US20040193394A1 (en) | Method for CPU simulation using virtual machine extensions | |
US7752030B2 (en) | Virtualization as emulation support | |
Shizukuishi et al. | An efficient tinification of the linux kernel for minimizing resource consumption | |
Nordholz | Design and provability of a statically configurable hypervisor | |
Kauer | Improving System Security Through TCB Reduction | |
Algawi et al. | Modern Blue Pills and Red Pills | |
島田裕正 | A VMM based Integrity Checker for Operating System Kernels | |
Li et al. | Local-memory-based integrity checking for embedded systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100810 |
|
A524 | Written submission of copy of amendment under section 19 (pct) |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20101102 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110308 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110506 |
|
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: 20110712 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110729 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140805 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |