JP2010086410A - メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体 - Google Patents

メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体 Download PDF

Info

Publication number
JP2010086410A
JP2010086410A JP2008256636A JP2008256636A JP2010086410A JP 2010086410 A JP2010086410 A JP 2010086410A JP 2008256636 A JP2008256636 A JP 2008256636A JP 2008256636 A JP2008256636 A JP 2008256636A JP 2010086410 A JP2010086410 A JP 2010086410A
Authority
JP
Japan
Prior art keywords
program
procedure
memory
area
memory protection
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
Application number
JP2008256636A
Other languages
English (en)
Other versions
JP5225003B2 (ja
JP2010086410A5 (ja
Inventor
Shusuke Kobayashi
秀典 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2008256636A priority Critical patent/JP5225003B2/ja
Priority to US12/552,166 priority patent/US20100082929A1/en
Priority to CN2009102044111A priority patent/CN101714124B/zh
Priority to EP09171895A priority patent/EP2172844A1/en
Publication of JP2010086410A publication Critical patent/JP2010086410A/ja
Publication of JP2010086410A5 publication Critical patent/JP2010086410A5/ja
Application granted granted Critical
Publication of JP5225003B2 publication Critical patent/JP5225003B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Abstract

【課題】
メモリ上で分割された領域間の不正アクセスを抑制するとともに、当該領域間に渡る手続きの実行速度の低下を軽減させるようにした技術を提供する。
【解決手段】
プログラムによる不正アクセスからメモリを保護するメモリ保護方法は、メモリ上の単一アドレス空間を複数の領域に分割する領域定義処理工程と、分割された領域間に渡るプログラムの手続きの呼び出しに際して、分割された領域を一時的に結合させる結合処理工程と、領域が結合された後、手続きを呼び出す処理工程と、呼び出された手続きの実行の終了後、結合された領域を該結合前の状態に戻す復帰処理工程とを含む。
【選択図】 図1

Description

本発明は、プログラムによる不正アクセスに対してメモリを保護するメモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体に関する。
一般に、組み込みシステムでは、プログラムが全てのメモリ領域に(直接)アクセスできる。そのため、オーバヘッドは小さく抑えられることになるがその反面、プログラムのバグによる不正なアクセスからメモリを保護することはできなかった。
このような不正アクセスが生じると、開発効率が低下してしまう。すなわち、複雑化したソフトウエアの実行シーケンスを全て網羅してテストするには、多くの手間と時間が必要となるためである。なお、不正アクセスは、ある特定の実行シーケンスにおいてのみ障害を生じてしまうことが多い。複雑なソフトウエアは、論理的に複数のモジュールから構成されることが多いため、全モジュールを統合するまで不正アクセスが障害につながらない場合がある。
システムに生じた障害の原因が不正アクセスである場合、原因となったアクセスの特定は困難となる。それは、不正アクセスが行なわれた時点で即座にシステムダウン等して表面化すればよいが、たいていの場合、障害が表面化しないことが多いためである。例えば、不正アクセスが行なわれてから障害が実際に発生するまでの間に多くの処理が実施された場合、どの処理において不正アクセスが行なわれたのかを特定するのは困難である。
一方、ワークステーションなどの非組み込みシステムでは、一般的に、不正アクセスからメモリを保護するため、プログラム毎に固有の仮想アドレス空間を用いている。この場合、仮想アドレス空間で動作するプログラムは、その空間に対応付けられていないメモリ領域にアクセスすることはできない。別プログラムの仮想アドレス空間の内容を利用する場合には、例えば、オペレーティングシステム(OS)が異なる仮想アドレス空間におけるプログラム間のメッセージ交換を仲介する。また、対応付けられているメモリ領域を仮想アドレス空間から変更することで、元来アクセスが許可されていなかったメモリ領域へのアクセスを許可する技術も知られている(特許文献1参照)。
特開2005−209178号公報
しかし、保護されたメモリ領域へのアクセスは、オーバヘッドが大きく、システムの実行速度を大きく低下させてしまう。OSを介してメッセージを交換する場合、該当するメモリ領域へのアクセスを許可されたプログラムに実行のコンテキストをスイッチしなければならない。その上、メッセージ交換には、データのコピーが必要となるので、アクセスに要するオーバヘッドが大きい。
一方、仮想アドレス空間の一部に複数のメモリ領域を対応付けるようにした場合、例えば、仮想アドレスをインデックスするキャッシュを用いるシステムでは、メモリ領域への対応関係を変更する毎にキャッシュをフラッシュし、無効化する作業が必要となる。更に、仮想アドレスと物理アドレスとの対応関係をキャッシュしている場合には、そのキャッシュも無効化しなければならない。これらの操作は、アクセスに要するオーバヘッドを増加させる上、アクセス後の実行速度を低下させる。
そこで、本発明は、上記課題に鑑みてなされたものであり、メモリ上で分割された領域間の不正アクセスを抑制するとともに、当該領域間に渡る手続きの実行速度の低下を軽減させるようにした技術を提供することを目的とする。
上記目的を達成するため、本発明の一態様は、プログラムによる不正アクセスからメモリを保護するメモリ保護方法であって、前記メモリ上の単一アドレス空間を複数の領域に分割する領域定義処理工程と、前記領域定義処理工程で分割された領域間に渡る前記プログラムの手続きの呼び出しに際して、該分割された領域を一時的に結合させる結合処理工程と、前記結合処理工程で領域が結合された後、前記手続きを呼び出す処理工程と、前記処理工程により呼び出された前記手続きの実行の終了後、前記結合された領域を該結合前の状態に戻す復帰処理工程とを含むことを特徴とする。
また、本発明の一態様は、プログラムによる不正アクセスからメモリを保護する情報処理装置であって、前記メモリ上の単一アドレス空間を複数の領域に分割する領域定義処理手段と、前記領域定義処理手段により分割された領域間に渡る前記プログラムの手続きの呼び出しに際して、該分割された領域を一時的に結合させる結合処理手段と、前記結合処理手段により領域が結合された後、前記手続きを呼び出す処理手段と、前記処理手段により呼び出された前記手続きの実行の終了後、前記結合された領域を該結合前の状態に戻す復帰処理手段とを具備することを特徴とする。
また、本発明の一態様によるメモリ保護プログラムは、プログラムによる不正アクセスからメモリを保護するコンピュータを、前記メモリ上の単一アドレス空間を複数の領域に分割する領域定義処理手段、前記領域定義処理手段により分割された領域間に渡る前記プログラムの手続きの呼び出しに際して、該分割された領域を一時的に結合させる結合処理手段、前記結合処理手段により領域が結合された後、前記手続きを呼び出す処理手段、前記処理手段により呼び出された前記手続きの実行の終了後、前記結合された領域を該結合前の状態に戻す復帰処理手段として機能させる。
本発明によれば、メモリ上で分割された領域間の不正アクセスを抑制するとともに、当該領域間に渡る手続きの実行速度の低下を軽減させることができる。
以下、本発明に係わるメモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体の一実施の形態について添付図面を参照して詳細に説明する。
(実施形態1)
図1は、実施形態1に係わる情報処理装置10の構成の一例を示すブロック図である。
101は、情報処理装置10全体を制御するCPU(Central Processing Unit)である。
102は、メモリである。例えば、変更を必要としないプログラムやパラメータを格納するROM(Read Only Memory)や、外部装置などから供給されるプログラムやデータを一時記憶するRAM(Random Access Memory)から構成される。
104は、外部記憶装置であり、例えば、ハードディスクやメモリカードで構成される。なお、外部記憶装置104は、上記例示した以外にも、情報処理装置から着脱可能なフレキシブルディスク(FD)やCD(Compact Disk)等の光ディスク、磁気や光カード、ICカード等で実現されてもよい。
105は、入出力インターフェースであり、情報処理装置内にデータを入力したり、装置外にデータを出力したりする。入出力インターフェース105は、例えば、情報処理装置10とユーザとの間を繋ぐユーザインターフェースや、外部(例えば、ネットワーク)へ接続するための通信インターフェース等で実現される。106は、上述した各ユニット間におけるデータの授受を可能にするシステムバスである。
ここで、メモリ102上には、各種プログラムやデータが展開される。107は、検証プログラムであり、不正アクセスを引き起こすバグを含む可能性のあるプログラムを示している。この場合、検証プログラム107は、3つのモジュール、具体的には、モジュールM11、モジュールM12、モジュールM13から構成される。なお、本実施形態においては、検証プログラム107の実行は、モジュールM11から開始されるものとする。また、本実施形態においては、検証プログラム107に必要な実行体は1つであるとする。すなわち、2つ以上のタスクやスレッドを必要とすることはない。メモリ上の異なる領域に配置されるモジュール間の手続き(以下、公開手続きと言う)呼出しは、保護管理プログラム108における保護領域一時結合機能付き手続き呼出し処理(以下、結合機能付き手続き呼び出し処理と略す)を呼び出すことで実現される。すなわち、検証プログラム107には、この処理を呼び出す手続きが記述されているものとする。
108は、保護管理プログラム(メモリ保護プログラム)であり、領域定義処理や結合機能付き手続き呼び出し処理を実現する手続きを含む。109は、所定の設定情報を規定する保護機能設定表であり、例えば、領域定義情報を含んで構成される。
103は、メモリ管理ユニットであり、例えば、メモリ102に対するアクセスの正当性を判断するメモリ管理装置として機能する。メモリ管理ユニット103は、例えば、MMU(Memory Management Unit)、或いはMPU(Memory Protection Unit)からなる。なお、メモリ管理ユニット103は、CPU101に内蔵されて構成されてもよい。メモリ管理ユニット103は、CPU101の特権モードでのみ機能する。メモリ管理ユニット103は、例えば、検証プログラム107の実行において、アクセスの許可されていないメモリ上の領域に対してアクセスがなされると、そのアクセス処理を不正アクセスとして検出する。不正アクセスを検出した場合、メモリ管理ユニット103は、CPU101に例外を生じさせる。このとき、メモリ管理ユニット103は、不正アクセスに関する情報を保持する。例えば、不正アクセスのあったアドレス、読み出し及び書き込みいずれのアクセスであったかを示す情報が保持される。例外発生時には、CPU101は、これらの情報を読み出し、不正アクセスが行なわれた箇所を特定する。
次に、図2を用いて、図1に示すCPU101において実現される機能的な構成の一例について説明する。なお、CPU101において実現される機能的な構成は主に、CPU101がメモリ102に記憶(又は展開)された保護管理プログラム108を読み出し実行することで実現される。
CPU101においては、領域定義処理部11と、アクセス制御部12と、が機能的な構成として実現される。
領域定義処理部11は、メモリ102上に領域を確保する。この領域の確保は、保護機能設定表109の参照に基づき行なわれ、メモリ上の単一アドレス空間は、複数の領域に分割されて確保される。以下、この分割された領域各々を保護領域と言う場合もある。なお、領域定義処理部11は、各保護領域に対してモジュールを配置したり、アドレス空間を割り当てたり、また、アクセス権を設定したり等する。
アクセス制御部12は、分割された保護領域間に渡る処理の実行を制御する機能を有し、一時結合処理部13と、実行処理部14と、復帰処理部15とを具備して構成される。一時結合処理部13は、領域定義処理部11により分割された領域を一時的に結合させる。この結合により、例えば、アクセス元領域とアクセス先領域とが一時的に結合されるため、この結合中に呼び出される保護領域間に渡る公開手続きは、両方の領域に直接アクセスできることになる。
実行処理部14は、結合された領域間に渡って実行される公開手続きを呼び出し実行させる。復帰処理部15は、公開手続きの終了後、一時結合処理部13により結合された領域を結合前の状態に復帰させる。
次に、図1に示す情報処理装置10における動作について説明する。ここでは、メモリ管理ユニット103は、CPU101からメモリ102に対する全てのアクセスを許可するように初期化されているものとする。
ここで、CPU101は、常に特権モードで動作する。これにより、メモリ管理ユニット103の設定にかかるオーバヘッドが小さくなる。なお、メモリ管理ユニット103の設定時にのみCPU101を特権モードで動作させることも勿論可能である。また、メモリ管理ユニット103へのアクセスが非特権モードで行なえるのであれば、常に非特権モードで動作させてもよい。
CPU101は、検証プログラム107の実行前に、保護管理プログラム108に従って領域定義処理を実行する。この処理は、例えば、情報処理装置10を初期化する段階で、保護管理プログラム108を呼び出すことで行なわれる。なお、検証プログラム107の実行が要求された後、領域定義処理を行なうようにしてもよい。すなわち、検証プログラム107によりメモリアクセス処理が行なわれる前の段階であれば、そのタイミングは特に問わない。
図3は、領域定義処理の一例を示すフローチャートである。この処理は、CPU101がメモリ102に記憶(又は展開)された保護管理プログラム108を読み出し実行することで実現される。
CPU101は、領域定義処理部11において、まず、図4に示す保護機能設定表109を参照し、要求されたサイズに相当する領域をメモリ102上に確保する(ステップS101)。なお、確保する領域は、必要であればメモリマップされたレジスタを含んでいてもよい。保護機能設定表109には、図4に示すように、領域定義情報301として、保護領域のサイズと配置されるモジュールとが規定される。図4の場合、保護領域R11、保護領域R12、保護領域R13が定義されており、各保護領域のサイズは、メモリ管理ユニット103により異なる領域として認識されうる最小単位で切り上げられている。ここで、例えば、物理アドレス0x0000から0x9fffにより特定されるメモリ領域を使用できる場合を考えてみる。この場合、0x0000から0x1fffを保護領域R11、0x2000から0x5fffを保護領域R12、0x6000から0x9fffを保護領域R13に割り当てれば、要求されたサイズの領域をメモリ上に確保できる。
次に、CPU101は、領域定義処理部11において、ステップS101で確保した領域にモジュール及び保護管理プログラムを配置する(ステップS102)。図4に示す保護機能設定表109によれば、モジュールM11は保護領域R11、モジュールM12は保護領域R12、モジュールM13は保護領域R13に配置される。プログラム(各モジュール)の配置は、メモリに格納された内容を該当の領域にコピーすることで行なわれる。この場合、プログラムの実行によってプログラム自体が変更されても、プログラムを再度コピーすることで再び初期状態に戻すことができる。なお、ステップS101の処理において、各モジュールが格納されているメモリ領域を確保し、ステップS103以降の処理において、その領域を直接使用してもよい。ここで、本実施形態においては、保護領域間の手続き呼出しに必要となる保護管理プログラム108と、モジュールM11とを同一の保護領域R11に配置する。これは、検証プログラム107において、最初に実行されるモジュールM11から保護管理プログラム108を呼び出せるようにするためである。なお、保護領域間の手続き呼出しに必要となる処理(プログラム)のみを分離し、それのみを保護領域R1に配置するようにしてもよい。また、モジュールを配置しない別の保護領域を用意し、そこに保護管理プログラム108を配置してもよい。この場合、保護管理プログラム108を配置した領域に対しては、保護領域間の手続き呼出しを必要とするモジュールからのアクセスを許可するようにすればよい。
次に、CPU101は、領域定義処理部11において、ステップS101で確保した領域にアドレス空間を割り当てる(ステップS103)。アドレス空間の割り当ては、メモリ管理ユニット103を設定することで行なわれる。ここで、割り当てるアドレス空間は、CPU101により各種制御を行なう際に使用するアドレス空間である。なお、本実施形態においては、割り当てるアドレス空間と物理アドレス空間とを一致させる。このようにした場合、検証プログラム107に不具合が発見された場合、CPU101が使用するアドレスを直接用いることができるのでデバッグが容易になる。また、メモリ管理ユニット103としてアドレス変換機能がないMPUを使用することも可能になる。仮想アドレス空間を定義した場合、保護領域に配置されるモジュールを連続した物理アドレス空間に配置できなくても、仮想アドレス空間上では連続した保護領域として扱うことができる。なお、物理アドレス空間と仮想アドレス空間とを異なる空間として定義することも勿論可能である。
最後に、CPU101は、領域定義処理部11において、保護領域に対してアクセス権を設定する(ステップS104)。アクセス権の設定は、検証プログラム107の開始時に最初に実行されるモジュールが配置される領域(この場合、モジュールM11)に対して行なわれる。なお、アクセス権の設定は、メモリ管理ユニット103に設定することで実現される。すなわち、CPU101は、(モジュールM11の配置された)保護領域R11に割り当てたアドレス範囲0x0000から0x1fffに対して読み出し及び書き込みのアクセスを許可するようにメモリ管理ユニット103を設定する。このような設定がなされると、メモリ管理ユニット103は、CPU101により提供されるアドレスに基づいて検証プログラム107によるアクセスの正当性を判断する。これにより、上記以外の範囲のアドレスに対するアクセスは、メモリ管理ユニット103が不正アクセスとして検出することができる。
以上により領域定義処理は終了する。なお、領域定義処理の終了後、例えば、動的メモリ割り当てにより保護領域のサイズを増加させる必要性が生じた場合には、メモリ管理ユニット103の設定を変更することで保護領域を再定義できることは言うまでもない。
図5は、結合機能付き手続き呼び出し処理の一例を示すフローチャートである。この処理は、CPU101がメモリ102に記憶(又は展開)された保護管理プログラム108を読み出し実行することで実現される。結合機能付き手続き呼び出し処理は、上述した図3に示す領域定義処理の後、実施される。結合機能付き手続き呼び出し処理は、例えば、検証プログラム107が実行され、保護管理プログラム108(具体的には、結合機能付き手続き呼び出し処理)を実施する手続きが呼び出されることで開始される。
CPU101は、まず、一時結合処理部13において、対象となる複数の保護領域を一時的に結合する(ステップS201)。すなわち、モジュールM11(実行の起点となるモジュール)及び保護管理プログラム108が配置された保護領域と、公開手続きを含むモジュールが配置された保護領域とを一時的に結合する。具体的には、メモリ管理ユニット103の設定を変更し、公開手続きを含むモジュールが配置された保護領域に対して、保護管理プログラム108等が配置された保護領域に設定されたアクセス権と同じアクセス権を設定する。これにより、両保護領域が結合され、モジュールM11及び保護管理プログラム108は、公開手続きを含むモジュールが配置された保護領域へのアクセスが許可されることになる。
領域の結合がなされると、CPU101は、実行処理部14において、公開手続きを呼び出す(ステップS202)。この公開手続きに伴う処理の終了後、CPU101は、復帰処理部15において、ステップS201で結合した領域を再度分離し、結合前の状態に戻す(ステップS203)。なお、この処理は、上述したステップS201同様に、メモリ管理ユニット103の設定を変更することで行なわれる。これにより、公開手続きのアクセス先となる保護領域へのアクセスは、再度、禁止されることになる。
図6は、メモリ上に確保された複数の保護領域とそのアクセスとの関係を模式的に表した概念図である。
保護領域は、結合機能付き手続き呼び出し処理の実行前の段階では図6(a)に示す状態にある。この図6(a)に示す状態時には、保護領域R11に配置されたモジュールM11から同一の保護領域内に格納された保護管理プログラム108へのアクセス501は許可される。しかし、モジュールM11からの、保護領域R12に配置されたモジュールM12に対するアクセス502や、保護領域R13に配置されたモジュールM13に対するアクセス503は禁止される。すなわち、アクセス502及びアクセス503は、不正アクセスとされる。
一方、結合機能付き手続き呼び出し処理が実行されている間、保護領域は、図6(b)に示す状態になる。この図6(b)に示す状態時には、CPU101が保護管理プログラム108に従って、保護領域R11と保護領域R12とを結合している。この状態で行なわれる公開手続きの呼出しは、アクセス505に該当する。保護領域R11及び保護領域R12に配置されたモジュール間でのアクセスが可能になる。従って、アクセス506は正当なアクセスとなる、なお、モジュール12からの結合されていない保護領域R13に対するアクセス507は不正アクセスとなる。公開手続きの終了後、CPU101が保護管理プログラム108に従って領域分離処理を実施すると、保護領域R11と保護領域R12とが再度分離される。これにより、保護領域は、図6(a)に示す状態に復帰する。
以上説明したように実施形態1によれば、メモリ上で分割された領域間の不正アクセスを抑制するとともに、当該領域間に渡る手続きの実行速度の低下を軽減させることができる。また、保護領域に関する定義情報を保護機能設定表109として検証プログラム107と分離しておくことにより、実際の保護領域のサイズや配置するメモリ領域を柔軟に設定することができる。
(実施形態2)
次に、実施形態2について説明する。実施形態1においては、保護管理プログラム108の結合機能付き手続き呼び出し処理を呼び出す手続きが検証プログラム107に記述されている場合について説明した。これに対して、実施形態2においては、このような記述がなされていないプログラムを対象にして上述した処理を実施する場合について説明する。例えば、検証過程を終えたプログラム等がこのようなプログラムに該当する。
図7は、実施形態2に係わる情報処理装置10の構成の一例を示すブロック図である。なお、実施形態1を説明した図1と同様の機能を果たす構成には、同じ符号を付してある。ここでは、実施形態1を説明した図1と相違する点について説明する。相違点としては、まず、プログラム110は、保護管理プログラム108の結合機能付き手続き呼び出し処理を呼び出す手続きが記述されてはいない。また、プログラム110を構成するモジュールは、モジュールM21、モジュールM22、モジュールM23となる。また、保護管理プログラム108は、手続き呼出し変換処理を実施する手続きを含む。
次に、図8を用いて、実施形態2に係わるCPU101において実現される機能的な構成の一例について説明する。なお、CPU101において実現される機能的な構成は主に、CPU101がメモリ102に記憶(又は展開)された保護管理プログラム108を読み出し実行することで実現される。
CPU101においては、実施形態1の構成に加えて、変換処理部16、が新たな機能的な構成として実現される。なお、実施形態1を説明した図2と同様の機能を果たす構成には、同じ符号を付してある。
変換処理部16は、プログラム110の処理内容を変換する。具体的には、プログラム110の中から公開手続きとして定義されている手続きを検出し、それら手続きを、保護管理プログラム108の結合機能付き手続き呼び出し処理を呼び出すように変換する。
次に、実施形態2に係わる情報処理装置10における動作について説明する。ここでは、実施形態1を説明した情報処理装置10と相違する動作について説明する。相違点としては、上述した領域定義処理の前に手続き呼び出し変換処理を実施する点にある。
図9は、手続き呼出し変換処理の一例を示すフローチャートである。手続き呼出し変換処理は、領域定義処理が実施される前の段階で実施される。
CPU101は、変換処理部16において、まず、保護機能設定表109に基づいて、プログラム110における保護領域間の手続き呼出しを検出する(ステップS301)。実施形態2に係わる保護機能設定表109には、図10に示すように、領域定義情報801として、保護領域のサイズと配置されるモジュールとが定義される。この場合、異なるモジュールへの手続き呼出しは、全て保護領域間の手続き呼出しとなる。
次に、CPU101は、保護機能設定表109を参照し、検出した保護領域間の手続き呼出しのうち、公開手続きとして定義されている手続きを選択する(ステップS302)。ここで、実施形態2に係わる保護機能設定表109は、上述した領域定義情報の他、図11に示す公開手続き定義情報901を含んで構成される。公開手続き定義情報901には、各モジュールにおいて外部モジュールからのアクセスが許可された公開手続きの名前の一覧が保持される。例えば、ステップS301で手続きF1が検出されれば、この手続きF1は、ステップS302において変換対象となる手続きとして選択される。一方、ステップS301で手続きF5が検出されていたとしても、手続きF5は公開手続き定義情報901に含まれていないので、ステップS302においては選択されない。すなわち、プログラム110を実行すると、手続きF5に対する呼出しは不正アクセスになる。このように、手続き呼出し変換処理では、プログラム110を実行しなくても不正なアクセスの一部を検出できるという利点がある。
次に、CPU101は、ステップS302で選択した保護領域間の公開手続きの呼出しを、結合機能付き手続き呼び出し処理を実施する手続きに変換する(ステップS303)。手続き呼出しの変換は、プログラム110のソースコード内の公開手続きを呼び出している箇所において行なわれる。例えば、当該箇所において、手続き呼出しが参照する手続き名を保護管理プログラム108に含まれる結合機能付き手続き呼び出し処理を実現する手続きの参照名に置換する。また、プログラム110の実行前にコンパイル工程とリンク工程とが必要である場合、リンク工程の前にコンパイル工程で生成したオブジェクトコード内の外部参照手続き名(シンボル名)を、結合機能付き手続き呼び出し処理を実現する手続きの参照名に置換する。このようにしても手続き呼出しの変換は実現される。以上により、手続き呼出し変換処理は終了する。
なお、上述した図9の処理では、全ての手続きをプログラムの実行前に一括して変換する場合について説明したが、プログラムの実行中に必要となった箇所の変換を随時変換するようにしてもよい。
また、保護管理プログラム108に含まれる結合機能付き手続き呼び出し処理を実現する手続きは、公開手続き定義情報901を用いて生成することもできる。結合機能付き手続き呼び出し処理における手続き呼出しは全て同じ構造になっている。すなわち、領域の結合処理を実現する手続きと、それを元に戻す分離処理を実現する手続きとの間で、公開手続きを呼び出す構造になっている。上述したように、このうち保護領域の結合処理は、ステップS201により実現され、保護領域の分離処理は、ステップS203により実現される。そこで、この構造をもつ手続きを一つだけテンプレートとして用意し、そのテンプレートにおいて呼び出される公開手続きを、公開手続き定義情報901に定義された公開手続きに変更する。これを公開手続き毎に生成することで、結合機能付き手続き呼出し処理を生成できる。
なお、手続き呼出し変換処理と結合機能付き手続き呼出し生成処理とは、図7に示す情報処理装置とは別の情報処理装置で実行してもよい。この場合、手続き呼出し変換処理及び結合機能付き手続き呼出し生成処理を実行する情報処理装置は、メモリ管理装置を有する必要はない。
以上が、手続き呼出し変換処理の流れについての説明である。なお、実施形態2に係わる領域定義処理、結合機能付き手続き呼び出し処理は、実施形態1を説明した図3及び図5と同様となるため、その説明については省略する。
以上説明したように実施形態2によれば、プログラムが後方互換性を有する。すなわち、本実施形態に係わる処理の適用にあたって、新たにプログラムの記述を変更する必要がない。また、プログラムの変更を伴わずに、保護領域に配置するモジュールを変更できるため、実施形態1の構成よりも更に柔軟性が高くなる
(実施形態3)
次に、実施形態3について説明する。実施形態1、実施形態2においては、検証対象となるプログラムに必要な実行体が1つである場合について説明したが、実施形態3においては、2つ以上の実行体によりプログラムを実行する検証プログラムについて説明する。
ここで、メモリ管理ユニット103において、アクセス権の設定を実行体毎に保持し、更に各アクセスがどの実行体によるものであるかを判断することができれば、実施形態2と同じ形態で実現できる。しかし、一般的には、メモリ管理装置の設定を動的にソフトウェアにより変更することが必要である。そこで、実施形態3では、オペレーティングシステム(OS)によるマルチタスキングを利用して実行体毎のアクセスを管理する。
図12は、実施形態3に係わる情報処理装置10の構成の一例を示すブロック図である。なお、実施形態1を説明した図1、実施形態2を説明した図7と同様の機能を果たす構成には、同じ符号を付してある。
メモリ102上のプログラム111は、モジュールM31、モジュールM32、モジュールM33から構成され、各モジュールは、一つずつの実行体を必要とする。実行体は、OS112により提供される。このうち、タスクT1は、モジュールM31の実行に割り当てられ、タスクT2は、モジュールM32の実行に割り当てられ、タスクT3はモジュールM33の実行に割り当てられる。また、メモリ102上には、タスク毎に保護領域の結合状態を保持するアクセス権保持表113が格納されている。
以上が、情報処理装置10の構成についての説明である。なお、実施形態3に係わるCPU101において実現される機能的な構成は、実施形態2を説明した図8と同様となるため、その説明については省略する。
次に、実施形態3に係わる情報処理装置10における動作について説明する。ここでは、実施形態2を説明した情報処理装置10と相違する動作についてのみ説明する。相違点としては、領域定義処理にある。
図13は、領域定義処理の一例を示すフローチャートである。この処理は、CPU101がメモリ102に記憶(又は展開)された保護管理プログラム108を読み出し実行することで実現される。なお、ここでは、実施形態1における図3と相違する処理についてのみ説明する。相違点としては、ステップS402の処理にある。それ以外の処理は、ステップS401は、図3に示すステップS101と、ステップS403は、図3に示すステップS103と、ステップS404は、図3に示すステップS104と同様となる。
ステップS402において、CPU101は、領域定義処理部11において、ステップS401で確保した領域に、モジュール、保護管理プログラム、OS、アクセス権保持表を配置する。すなわち、ステップS102の処理に加えて、OSとアクセス権保持表を保護領域に配置することになる。
以上が、領域定義処理の流れについての説明である。なお、実施形態3に係わる手続き呼出し変換処理は、実施形態2を説明した図9と同様となるため、その説明については省略する。
次に、図14〜図16を用いて、実施形態3に係わる保護機能設定表109の一例について説明する。
図14には、領域定義情報1201の一例が示される。モジュールが配置されない保護領域(この場合、R33、R34)に対しては、保護機能設定表109に含まれる配置定義情報を用いて、保護管理プログラム108、OS112、アクセス権保持表113を配置する領域を決定する。図15には、配置定義情報1301の一例が示される。図15に示す配置定義情報1301によれば、保護領域R33には、保護管理プログラム108とアクセス権保持表113とが配置され、保護領域R34には、OS112が配置される。
保護領域R33と保護領域R34とに対するアクセス権は、保護機能設定表109に含まれるアクセス権定義情報1401に基づいて設定する。図16には、アクセス権定義情報1401の一例が示される。図16に示すアクセス権定義情報1401におけるチェック記号は、アクセスが許可されていることを示す。例えば、保護領域R33に対するアクセスは、全ての保護領域から許可されていることを示している。
保護領域R33のように全ての領域からのアクセスが許可される領域に対しては、不正アクセスは検出できない。但し、保護領域R33に対するアクセスは高速に行なえる。また、保護領域R33をROM上に確保すれば、不正アクセスによって内容が書き換えられる危険性はなくなる。
図17は、実施形態3に係わる結合機能付き手続き呼び出し処理の一例を示すフローチャートである。この処理は、CPU101がメモリ102に記憶(又は展開)された保護管理プログラム108を読み出し実行することで実現される。結合機能付き手続き呼び出し処理は、上述した図13に示す領域定義処理の後、実施される。結合機能付き手続き呼び出し処理は、例えば、プログラム111が実行され、保護管理プログラム108(結合機能付き手続き呼び出し処理)を実施する手続きが呼び出されることで開始される。なお、ここでは、実施形態1における図5と相違する処理についてのみ説明する。相違点としては、ステップS502及びステップS504の処理にある。それ以外の処理は、ステップS501は、図5に示すステップS201、ステップS503は、図5に示すステップS202、ステップS505は、図5に示すステップS203と同様となる。
ステップS502において、CPU101は、ステップS501の結果に基づいてアクセス権保持表113を更新する(ステップS502)。その後、CPU101は、公開手続きを呼び出す(ステップS503)。そして、それに伴う処理が終了すると、CPU101は、ステップS501で結合した領域を再度分離し、結合前の状態に戻す(ステップS504)。その後、CPU101は、このステップS504の結果に基づいてアクセス権保持表113を再度更新する(ステップS505)。なお、ステップS501の処理の開始後、ステップS502の処理が終了するまでの間、コンテキストスイッチが禁止される。同様にステップS504の処理の開始後、ステップS505の処理が終了までの間もコンテキストスイッチが禁止される。コンテキストスイッチの禁止は、OSの機能を利用すればよい。
図18は、タスク毎に保護領域の結合状態を保持するアクセス権保持表113を示す。アクセス権保持表113におけるチェック記号はアクセスが許可されていることを示す。なお、ここでは、タスクT2が保護領域R31に対する結合機能付き手続き呼出し処理を実行した場合のアクセス権保持表113の変更の態様について説明する。
図18(a)に示すアクセス権保持表113は、結合機能付き手続き呼出し処理実行前の状態である。図17に示すステップS501において、タスクT2から保護領域R31へのアクセスが許可されると、アクセス権保持表113は、ステップS502において、図18(a)から図18(b)に示す状態に変更される。その後、ステップS504において、タスクT2から保護領域R31へのアクセスが禁止されると、アクセス権保持表113は、ステップS505において、図18(b)から図18(a)に示す状態に変更される。
次に、ステップS503において、公開手続きが呼び出され、その実行中にOS112によりコンテキストスイッチが行なわれ、タスクT2からタスクT3に実行が移る場合の動作について説明する。
ここで、例えば、コンテキストスイッチが行なわれる前の段階において、アクセス権保持表113は、図18(b)に示す状態にあるとする。図18(b)によれば、タスクT1による保護領域R31に対するアクセスと、コンテキストスイッチ後実行されるタスクT2による保護領域R31に対するアクセスとは許可されている。ここで、コンテキストスイッチにおいてメモリ管理ユニット103の設定を変更しなければ、スイッチ後のタスクT2は、結合機能付き手続き呼出し処理を実行しなくても、保護領域R31に対してアクセスできてしまう。したがって、タスクT2の実行するモジュールに不正アクセスを生じるバグがあっても、それを検出できなくなってしまう。
そこで、OS112は、コンテキストスイッチにおいて、アクセス権保持表113に基づいてメモリ管理ユニット103の設定を変更し、保護領域R31へのアクセスを禁止する。これにより、スイッチ後、保護領域R31へ結合機能付き手続き呼出し処理を実施せずに、タスクT2が保護領域R31にアクセスした場合、そのアクセスは不正アクセスとして検出される。以上のようにすることで、タスクT2が実行するモジュールに不正アクセスが生じてしまうバグがあったとしても、それを検出できる。
以上説明したように実施形態3によれば、実行体を複数必要とするプログラムを実行する情報処理装置においても、実施形態1及2と同様の処理を行なえる。また、モジュールが配置されない保護領域を利用することで、OSが格納されたメモリ領域をも保護することができる。なお、モジュールが配置されていない保護領域には、OS以外のプログラムやデータ、例えば、共通ライブラリを配置し、保護することができることは言うまでもない。
なお、本発明は、上記及び図面に示す実施形態に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できる。
例えば、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施態様をとることもできる。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
また、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置に内蔵されたコンピュータがそのプログラムコードを読み出して実行することにより前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
したがって、本発明の機能処理をコンピュータで実現するために、当該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OS(Operating System)に供給するスクリプトデータ等の形態であってもよい。
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては以下が挙げられる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどとの協働で実施形態の機能が実現されてもよい。この場合、OSなどが、実際の処理の一部又は全部を行ない、その処理によって前述した実施形態の機能が実現される。
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行なう。
実施形態1に係わる情報処理装置10の構成の一例を示すブロック図である。 図1に示すCPU101において実現される機能的な構成の一例を示すブロック図である。 図1に示す情報処理装置10における動作の一例を示す第1のフローチャートである。 図1に示す保護機能設定表109の一例を示す図である。 図1に示す情報処理装置10における動作の一例を示す第2のフローチャートである。 メモリ上に確保された複数の保護領域とそのアクセスとの関係を模式的に表した概念図である。 実施形態2に係わる情報処理装置10の構成の一例を示すブロック図である。 図7に示すCPU101において実現される機能的な構成の一例を示すブロック図である。 図7に示す情報処理装置10における動作の一例を示すフローチャートである。 図7に示す保護機能設定表109の一例を示す第1の図である。 図7に示す保護機能設定表109の一例を示す第2の図である。 実施形態3に係わる情報処理装置10の構成の一例を示すブロック図である。 図12に示す情報処理装置10における動作の一例を示す第1のフローチャートである。 図12に示す保護機能設定表109の一例を示す第1の図である。 図12に示す保護機能設定表109の一例を示す第2の図である。 図12に示す保護機能設定表109の一例を示す第3の図である。 図12に示す情報処理装置10における動作の一例を示す第2のフローチャートである。 図12に示す保護機能設定表109に含まれるアクセス権保持表113の一例を示す図である。
符号の説明
10 情報処理装置
11 領域定義処理部
12 アクセス制御部
13 一時結合処理部
14 実行処理部
15 復帰処理部
16 変換処理部
101 CPU
102 メモリ
103 メモリ管理ユニット
105 入出力インターフェース
106 システムバス
107 検証プログラム
108 保護管理プログラム
109 保護機能設定表
110、111 プログラム
112 OS
113 アクセス権保持表

Claims (19)

  1. プログラムによる不正アクセスからメモリを保護するメモリ保護方法であって、
    前記メモリ上の単一アドレス空間を複数の領域に分割する領域定義処理工程と、
    前記領域定義処理工程で分割された領域間に渡る前記プログラムの手続きの呼び出しに際して、該分割された領域を一時的に結合させる結合処理工程と、
    前記結合処理工程で領域が結合された後、前記手続きを呼び出す処理工程と、
    前記処理工程により呼び出された前記手続きの実行の終了後、前記結合された領域を該結合前の状態に戻す復帰処理工程と
    を含むことを特徴とするメモリ保護方法。
  2. 前記プログラムは、
    複数の手続きを含むとともに、前記分割された領域間に渡る手続きに際して前記結合処理工程を呼び出す記述がなされており、
    前記結合処理工程は、
    前記プログラムにより呼び出されることで前記結合を行なう
    ことを特徴とする請求項1記載のメモリ保護方法。
  3. 前記プログラムによる前記メモリに対するアクセスの正当性を判断するメモリ管理工程
    を更に含み、
    前記メモリ管理工程では、
    前記プログラムにより前記結合処理工程が呼び出されず前記分割された領域間に渡るアクセスが行なわれた場合に該アクセスを不正アクセスであると判断する
    ことを特徴とする請求項2記載のメモリ保護方法。
  4. 前記プログラムの中から前記分割された領域間に渡る手続きを検出し、該検出した手続きが前記処理工程で呼び出されるように前記プログラムの処理内容を変換する変換工程
    を更に含むことを特徴とする請求項1記載のメモリ保護方法。
  5. 前記変換工程では、
    前記プログラムのソースコードを変更する
    ことを特徴とする請求項4記載のメモリ保護方法。
  6. 前記変換工程では、
    前記プログラムのオブジェクトコードの外部参照手続き名を変更する
    ことを特徴とする請求項4記載のメモリ保護方法。
  7. 前記変換工程では、
    前記プログラムの実行前に前記変換を行なう
    ことを特徴とする請求項4記載のメモリ保護方法。
  8. 前記変換工程では、
    前記分割された領域間で正当に呼び出すことが認められた手続き名を規定する手続き定義情報に基づいて前記検出した手続きの中から変換対象となる手続きを選択し前記変換を行なう
    ことを特徴とする請求項4記載のメモリ保護方法。
  9. 前記単一アドレス空間は、
    物理アドレス空間、又は仮想アドレス空間である
    ことを特徴とする請求項1記載のメモリ保護方法。
  10. 前記不正アクセスは、
    読み出し、又は書き込みである
    ことを特徴とする請求項1記載のメモリ保護方法。
  11. 前記プログラムは、
    1つ以上のモジュールから構成される
    ことを特徴とする請求項1記載のメモリ保護方法。
  12. 前記領域定義処理工程で分割された領域は、
    1つ以上の前記モジュールを含む領域と、前記モジュールを含まない領域とを少なくとも有する
    ことを特徴とする請求項11記載のメモリ保護方法。
  13. 前記領域定義処理工程では、
    分割される領域のサイズと該領域に配置されるモジュールとを規定する領域定義情報に基づいて前記分割を行なう
    ことを特徴とする請求項11記載のメモリ保護方法。
  14. 前記領域定義処理工程では、
    前記分割を行なった後、前記分割される領域ごとにアクセス権を規定するアクセス権定義情報に基づいて前記モジュールを含まない領域に対してアクセス権を設定する
    ことを特徴とする請求項11記載のメモリ保護方法。
  15. 前記領域定義処理工程では、
    前記分割を行なった後、前記モジュールを含まない領域に配置される情報を規定する配置定義情報に基づいて該領域に情報を配置する
    ことを特徴とする請求項11記載のメモリ保護方法。
  16. 前記領域定義処理工程で分割された領域は、
    オペレーティングシステムにおける実行体ごとにその状態が管理される
    ことを特徴とする請求項1記載のメモリ保護方法。
  17. プログラムによる不正アクセスからメモリを保護する情報処理装置であって、
    前記メモリ上の単一アドレス空間を複数の領域に分割する領域定義処理手段と、
    前記領域定義処理手段により分割された領域間に渡る前記プログラムの手続きの呼び出しに際して、該分割された領域を一時的に結合させる結合処理手段と、
    前記結合処理手段により領域が結合された後、前記手続きを呼び出す処理手段と、
    前記処理手段により呼び出された前記手続きの実行の終了後、前記結合された領域を該結合前の状態に戻す復帰処理手段と
    を具備することを特徴とする情報処理装置。
  18. プログラムによる不正アクセスからメモリを保護するコンピュータを、
    前記メモリ上の単一アドレス空間を複数の領域に分割する領域定義処理手段、
    前記領域定義処理手段により分割された領域間に渡る前記プログラムの手続きの呼び出しに際して、該分割された領域を一時的に結合させる結合処理手段、
    前記結合処理手段により領域が結合された後、前記手続きを呼び出す処理手段、
    前記処理手段により呼び出された前記手続きの実行の終了後、前記結合された領域を該結合前の状態に戻す復帰処理手段
    として機能させるためのメモリ保護プログラム。
  19. 請求項18記載のメモリ保護プログラムを記録した記録媒体。
JP2008256636A 2008-10-01 2008-10-01 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体 Expired - Fee Related JP5225003B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008256636A JP5225003B2 (ja) 2008-10-01 2008-10-01 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体
US12/552,166 US20100082929A1 (en) 2008-10-01 2009-09-01 Memory protection method, information processing apparatus, and computer-readable storage medium that stores memory protection program
CN2009102044111A CN101714124B (zh) 2008-10-01 2009-09-30 存储器保护方法及信息处理装置
EP09171895A EP2172844A1 (en) 2008-10-01 2009-09-30 Memory protection method, information processing apparatus, program, and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008256636A JP5225003B2 (ja) 2008-10-01 2008-10-01 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体

Publications (3)

Publication Number Publication Date
JP2010086410A true JP2010086410A (ja) 2010-04-15
JP2010086410A5 JP2010086410A5 (ja) 2011-11-17
JP5225003B2 JP5225003B2 (ja) 2013-07-03

Family

ID=41510734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008256636A Expired - Fee Related JP5225003B2 (ja) 2008-10-01 2008-10-01 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体

Country Status (4)

Country Link
US (1) US20100082929A1 (ja)
EP (1) EP2172844A1 (ja)
JP (1) JP5225003B2 (ja)
CN (1) CN101714124B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014519120A (ja) * 2011-06-03 2014-08-07 アップル インコーポレイテッド サンドボックスにリファレンスを保存するシステム及び方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101799858A (zh) * 2010-04-08 2010-08-11 华为终端有限公司 Flash数据保护方法及装置
JP6214142B2 (ja) * 2012-10-09 2017-10-18 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
CN103699434B (zh) * 2013-12-17 2018-05-08 天津国芯科技有限公司 一种适用于多应用之间安全访问的mpu及其多应用之间安全访问的方法
DE102015223335A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Verfahren zum Betreiben eines Mikrocontrollers
US11416421B2 (en) 2016-07-19 2022-08-16 Cypress Semiconductor Corporation Context-based protection system
US10802853B2 (en) 2016-10-14 2020-10-13 Seagate Technology Llc Active drive
GB2570474B (en) * 2018-01-26 2020-04-15 Advanced Risc Mach Ltd Region fusing
US10809924B2 (en) * 2018-04-12 2020-10-20 Webroot Inc. Executable memory protection
CN109992532A (zh) * 2019-04-10 2019-07-09 北京智芯微电子科技有限公司 存储空间的访问权限管理方法及存储权限管理单元
US11681797B2 (en) * 2019-08-28 2023-06-20 Micron Technology, Inc. Row activation prevention using fuses

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01201751A (ja) * 1988-02-05 1989-08-14 Matsushita Electric Ind Co Ltd メモリー保護装置
JPH05257811A (ja) * 1992-01-16 1993-10-08 Toshiba Corp メモリ管理装置
JPH07200317A (ja) * 1993-12-28 1995-08-04 Toshiba Corp 操作権管理装置
WO2005124560A1 (ja) * 2004-06-15 2005-12-29 Sony Corporation 情報管理装置及び情報管理方法
JP2006040286A (ja) * 2004-07-29 2006-02-09 Hewlett-Packard Development Co Lp パーティショニングされたデバイス間の通信
JP2006318841A (ja) * 2005-05-16 2006-11-24 Funai Electric Co Ltd 液晶用バックライト

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677546A (en) * 1984-08-17 1987-06-30 Signetics Guarded regions for controlling memory access
US5557771A (en) * 1990-12-01 1996-09-17 Hitachi, Ltd. Data processing system and storage device and auxiliary memory bits for controlling data protection in the storage device
CN2249922Y (zh) * 1995-07-24 1997-03-19 刘存亮 微型计算机软硬盘保护装置
JP4621314B2 (ja) * 1999-06-16 2011-01-26 株式会社東芝 記憶媒体
JP4127587B2 (ja) * 1999-07-09 2008-07-30 株式会社東芝 コンテンツ管理方法およびコンテンツ管理装置および記録媒体
US20010034838A1 (en) * 2000-01-14 2001-10-25 Motoshi Ito Control program, device including the control program, method for creating the control program, and method for operating the control program
AU2001243365A1 (en) * 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
US7373646B1 (en) * 2003-04-04 2008-05-13 Nortel Network Limited Method and apparatus for sharing stack space between multiple processes in a network device
JP2005050286A (ja) * 2003-07-31 2005-02-24 Fujitsu Ltd ネットワークノードマシンおよび情報ネットワークシステム
US20050144408A1 (en) * 2003-12-24 2005-06-30 Kenji Ejima Memory protection unit, memory protection method, and computer-readable record medium in which memory protection program is recorded
JP2005209178A (ja) 2003-12-24 2005-08-04 Matsushita Electric Ind Co Ltd メモリ保護装置、メモリ保護方法及びメモリ保護プログラム
DE102006035662A1 (de) * 2006-07-31 2008-02-14 Infineon Technologies Ag Datenverarbeitungseinrichtung und Verfahren zum Überwachen des korrekten Betriebs einer Datenverarbeitungseinrichtung

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01201751A (ja) * 1988-02-05 1989-08-14 Matsushita Electric Ind Co Ltd メモリー保護装置
JPH05257811A (ja) * 1992-01-16 1993-10-08 Toshiba Corp メモリ管理装置
JPH07200317A (ja) * 1993-12-28 1995-08-04 Toshiba Corp 操作権管理装置
WO2005124560A1 (ja) * 2004-06-15 2005-12-29 Sony Corporation 情報管理装置及び情報管理方法
JP2006040286A (ja) * 2004-07-29 2006-02-09 Hewlett-Packard Development Co Lp パーティショニングされたデバイス間の通信
JP2006318841A (ja) * 2005-05-16 2006-11-24 Funai Electric Co Ltd 液晶用バックライト

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014519120A (ja) * 2011-06-03 2014-08-07 アップル インコーポレイテッド サンドボックスにリファレンスを保存するシステム及び方法

Also Published As

Publication number Publication date
EP2172844A1 (en) 2010-04-07
JP5225003B2 (ja) 2013-07-03
CN101714124A (zh) 2010-05-26
CN101714124B (zh) 2012-08-15
US20100082929A1 (en) 2010-04-01

Similar Documents

Publication Publication Date Title
JP5225003B2 (ja) メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体
JP5582971B2 (ja) メモリ保護方法および情報処理装置
EP2549380B1 (en) Information processing device, virtual machine generation method, and application software distribution system
JP5044387B2 (ja) 情報処理装置及びそのスタックポインタ更新方法
JP4939382B2 (ja) 情報処理装置及びそのプログラム実行制御方法
JP4115759B2 (ja) 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
KR20100122924A (ko) 멀티 오퍼레이팅 시스템(os) 기동 장치 및 멀티 os 기동 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 멀티 os 기동 방법
JP2009140256A (ja) データ処理装置及びアドレス空間保護方法
JP2014170515A (ja) 機器、情報記録プログラム、及び情報記録方法
JP2005202523A (ja) コンピュータ装置及びプロセス制御方法
JP5846016B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2008176608A (ja) データバックアップ装置及びデータバックアップ方法
JP4594889B2 (ja) 複数の処理装置を備えたシステム上で実行されるプログラムのトレース方法、および、複数の処理装置を備えたシステム
JP2009020695A (ja) 情報処理装置及びシステム
JP2008140124A (ja) データ処理装置
JP2006048186A (ja) 動的コンパイラの生成コードを保護する言語処理系
JP2005209178A (ja) メモリ保護装置、メモリ保護方法及びメモリ保護プログラム
JP2005157502A (ja) 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP5710547B2 (ja) 情報処理装置、監視方法および監視プログラム
JP2011150457A (ja) 情報処理装置およびメモリアクセス制御方法
JP6541912B2 (ja) 情報処理装置およびアクセス管理プログラム
JP2023159710A (ja) 情報処理装置とインストール方法およびプログラム
JP2009211245A (ja) フラッシュメモリ制御システムおよび制御方法
JP2006113935A (ja) ダイナミックリンクライブラリ呼び出しコード生成方法、プログラム、および、装置
JP6103972B2 (ja) プログラム生成方法、プログラム実行方法、プログラム実行装置およびプログラム実行プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111003

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111003

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130122

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: 20130212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130312

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees