(57)【要約】【課題】不正プロセスを容易に特定することのできる不正プロセス検出装置を提供する。【解決手段】不正プロセス検出装置では、メモリ２０からＣＰＵ１０に送信されるレジスタ情報を記憶デバイス３１に一時的に記憶する（ステップＳ２）。この信号の情報をステップＳ３，４，５によって判定する。これにより、不正プロセスを特定すると共に、その不正情報も不正プロセス情報領域に書き込まれる（ステップＳ８）。不正プロセスを特定するだけでなく、不正情報も分かるため、システムデバック処理に大いに役立つ。【選択図】図５
2008209990.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムＯＳが実装されたシステムであって、前記複数のプロセスを順次実行するＣＰＵと、前記プロセスの情報を順次退避させて記憶するメモリと、プロセスの情報を切り替えるタスクスイッチと、を具備したシステムの不正プロセス検出装置において、
前記メモリの退避領域の範囲を設定する退避領域範囲設定手段と、
前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、
前記情報が前記タスクスイッチによって情報が切り替えられていないと判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えた
ことを特徴とする不正プロセス検出装置。
【請求項２】
複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムＯＳが実装されたシステムであって、前記複数のプロセスを順次実行するＣＰＵと、前記ＣＰＵで次に実行されるプロセスのアドレスを記憶するプログラムカウンタと、前記プロセスの情報を順次退避させて記憶するメモリと、を具備したシステムの不正プロセス検出装置において、
前記メモリの退避領域の範囲を設定する退避領域範囲設定手段と、
前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、
前記プログラムカウンタに記憶されたアドレスに対応した次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えた
ことを特徴とする不正プロセス検出装置。
【請求項３】
複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムＯＳが実装されたシステムであって、前記複数のプロセスを順次実行するＣＰＵと、前記プロセスの情報を順次退避させて記憶するメモリと、前記ＣＰＵで次に実行されるプロセスのアドレスを記憶するプログラムカウンタと、を具備したシステムの不正プロセス検出装置において、
前記メモリの不正アクセスの範囲を設定する不正アクセス範囲設定手段と、
前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、
前記プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えた
ことを特徴とする不正プロセス検出装置。
【請求項４】
請求項１乃至３のいずれか１に記載の不正プロセス検出装置において、
前記判定手段によって不正プロセスと判定した場合には、前記記憶手段に記憶されたプロセスの情報を前記メモリに書き込む書込手段を備えた
ことを特徴とする不正プロセス検出装置。
【請求項５】
複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムＯＳが実装されたシステムであって、前記複数のプロセスを順次実行するＣＰＵと、前記プロセスの情報を順次退避させて記憶するメモリと、プロセスの情報を切り替えるタスクスイッチと、前記ＣＰＵで次に実行されるプロセスのアドレスを記憶するプログラムカウンタと、を具備したシステムの不正プロセス検出装置において、
前記メモリの退避領域の範囲と不正アクセスの範囲をそれぞれ設定する退避領域範囲設定手段と、
前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、
前記情報が前記タスクスイッチによって情報が切り替られていないと判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第１の判定手段と、
前記プログラムカウンタに記憶されたアドレスに対応した次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第２の判定手段と、
前記プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第３の判定手段と、
前記各判定手段のいずれかによって不正プロセスと判定した場合には、前記記憶手段に記憶されたプロセスの情報を前記メモリに書き込む書込手段と、を備えた
ことを特徴とする不正プロセス検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の割込処理が実行されるリアルタイムＯＳにおける不正プロセスを検出する不正プロセス検出装置に関する。
【背景技術】
【０００２】
従来、複数のプロセス（タスク）をリアルタイムに実行できるリアルタイムＯＳは、制御系システム、コンピュータ等のワンチップマイコンに多く使用されており、近年、これに対する要求も高まる傾向にある。さらに、このリアルタイムＯＳは、種々様々なデータ等を扱うマルチメディアシステムに対応することも要求されている。
【０００３】
リアルタイムＯＳの具体的な動作は、ＣＰＵがプログラムの実行中に新しいプログラムが割込処理が入ると、実行途中のプログラムのアドレスと処理結果等の値をメモリの退避領域（レジスタ）に退避させる。このレジスタには、計算用等に使える汎用レジスタと使用目的が決まっている専用レジスタ、プログラムカウンタ、フラグレジスタ、スタックポインタ等がある。例えば、プログラムカウンタには、次にどのアドレス（旧プログラムの実行途中のアドレスの次のアドレス）の命令を読み込むかが記憶され、汎用レジスタには、旧プログラムの実行途中の処理結果が記憶される。新プログラムが実行された後、退避領域に書き込まれたメモリ番地と処理結果を読み出し、この番地と処理結果から旧プログラムの処理を実行する。
【０００４】
一方、システムの開発にあっては、ＣＰＵにＩＣＥ（In Circuit Emulator）を接続することにより外部バスを監視し、不正アクセス等のバグを検出するデバッグ処理を行っていた。しかし、昨今の組み込みシステムに使用されるＣＰＵは、高速動作と周辺デバイスを同一パッケージに取り込む関係からＩＣＥが接続できなくなってきている。また、その代用として、デバック処理を行う方法としてＪＴＡＧシステム（ＣＰＵに内蔵されたデバッグ機能を利用したエミュレータ）がある。しかし、このＪＴＡＧシステムでは、ＣＰＵ自体がハングした場合にはＣＰＵの内部情報を読み出すことができない。
このように、リアルタイムＯＳのシステムでは、バグの検出、つまり不正プロセス（タスク）を特定するのが困難であった。
【０００５】
そこで、特許文献１，２に記載されるようなバグ検出装置がある。
文献１には、バス監視装置にアドレス範囲を設定し、このアドレスにアクセスされることを不正として診断する故障診断装置が開示されており、文献２には、スタック領域アドレスの上限と下限を設定し、退避される情報が前記アドレスを超えた際に、スタックオーバーフローとして検出するスタックオーバーフロー検出回路が開示されている。
【特許文献１】特開平８−１６４２６号公報
【特許文献２】特開平９−１９８２５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記各文献に記載の装置では、バスの挙動をハード的に監視することは可能であるが、その原因がソフトウェアにある場合、不正アクセスしたプロセスまたは、スタックオーバーフローをしたプロセスを特定することは困難であった。
【０００７】
本発明は、上述した課題に鑑なみてなされたもので、不正プロセスを容易に特定することのできる不正プロセス検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために、請求項１に記載の発明は、複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムＯＳが実装されたシステムであって、前記複数のプロセスを順次実行するＣＰＵと、前記プロセスの情報を順次退避させて記憶するメモリと、プロセスの情報を切り替えるタスクスイッチと、を具備したシステムの不正プロセス検出装置において、
前記メモリの退避領域の範囲を設定する退避領域範囲設定手段と、前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、前記情報が前記タスクスイッチによって情報が切り替られていないと判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えたことを特徴とする不正プロセス検出装置を提供することにある。
【０００９】
請求項１に記載の不正プロセス検出装置は、判定手段により、プロセスによる情報がタスクスイッチによって情報が切り替られていないと判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。これにより、不正プロセスを容易に特定することが可能となる。
【００１０】
請求項２に記載の発明は、複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムＯＳが実装されたシステムであって、前記複数のプロセスを順次実行するＣＰＵと、前記ＣＰＵで次に実行されるプロセスのアドレスを記憶するプログラムカウンタと、前記プロセスの情報を順次退避させて記憶するメモリと、を具備したシステムの不正プロセス検出装置において、
前記メモリの退避領域の範囲を設定する退避領域範囲設定手段と、前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、
前記プログラムカウンタに記憶されたアドレスに対応した次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えたことを特徴とする不正プロセス検出装置を提供することにある。
【００１１】
請求項２に記載の不正プロセス検出装置は、判定手段により、プログラムカウンタに記憶されたアドレスに対応した次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。これにより、不正プロセスを容易に特定することが可能となる。
【００１２】
請求項３に記載の発明は、複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムＯＳが実装されたシステムであって、前記複数のプロセスを順次実行するＣＰＵと、前記プロセスの情報を順次退避させて記憶するメモリと、前記ＣＰＵで次に実行されるプロセスのアドレスを記憶するプログラムカウンタと、を具備したシステムの不正プロセス検出装置において、
前記メモリの不正アクセスの範囲を設定する不正アクセス範囲設定手段と、前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、前記プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えたことを特徴とする不正プロセス検出装置を提供することにある。
【００１３】
請求項３に記載の不正プロセス検出装置は、判定手段により、プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。これにより、不正プロセスを容易に特定することが可能となる。
【００１４】
請求項４に記載の不正プロセス検出装置は、上記記載の不正プロセス検出装置において、前記判定手段によって不正プロセスと判定した場合には、前記記憶手段に記憶されたプロセスの情報を前記メモリに書き込む書込手段を備えたことを特徴とする。
【００１５】
請求項５に記載の発明は、複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムＯＳが実装されたシステムであって、前記複数のプロセスを順次実行するＣＰＵと、前記プロセスの情報を順次退避させて記憶するメモリと、プロセスの情報を切り替えるタスクスイッチと、前記ＣＰＵで次に実行されるプロセスのアドレスを記憶するプログラムカウンタと、を具備したシステムの不正プロセス検出装置において、
前記メモリの退避領域の範囲と不正アクセスの範囲をそれぞれ設定する退避領域範囲設定手段と、前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、前記情報が前記タスクスイッチによって情報が切り替られていないと判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第１の判定手段と、前記プログラムカウンタに記憶されたアドレスに対応した次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第２の判定手段と、前記プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第３の判定手段と、前記各判定手段のいずれかによって不正プロセスと判定した場合には、前記記憶手段に記憶されたプロセスの情報を前記メモリに書き込む書込手段と、を備えたことを特徴とする不正プロセス検出装置を提供することにある。
【００１６】
請求項５に記載の不正プロセス検出装置は、第１の判定手段により、プロセスによる情報がタスクスイッチによって情報が切り替られていないと判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。第２の判定手段により、プログラムカウンタに記憶された次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および／または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。第３の判定手段により、プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。これにより、不正プロセスおよびその理由を容易に特定することが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【００１８】
（１）  全体構成
図１は、本発明の実施形態の不正プロセス検出装置を含むシステムの全体構成を示す図である。
システム１は、ＣＰＵ１０と、このＣＰＵ１０とバス１５を介して接続されるメモリ２０とから構成されている。このシステム１はワンチップマイコンによって構成されるため、メモリ２０は、不揮発性メモリのＲＯＭと揮発性メモリのＲＡＭ（いずれも図示せず）とからなる。そして、このシステム１はリアルタイムＯＳを実行するプログラムがメモリ２０のプログラム領域に格納されており、外部からの割込処理および定期的な割込処理をリアルタイムに実行する。
メモリ２０は、図２に示すメモリマップのように、プログラム領域とプロセススタック領域等の領域に分けられ、プログラム領域には、複数のプログラムが領域毎に格納されており、割込処理を実行する場合には、プログラム退避領域に書き込まれたレジスタから情報を受け、この情報中の要求により対応するプログラムが処理されるようになっている。また、メモリ２０には、図示しない不正プロセス情報領域も確保されている。
なお、本実施形態の場合、例えば、プログラム領域のアドレスがａａａａ〜ｎｎｎｎ、プロセス退避領域のアドレスがｙｙｙｙ〜ｚｚｚｚというように設定される。
【００１９】
リアルタイムＯＳの動作を、図２〜４を参照しつつ説明する。
まず、ＣＰＵ１０は、図２中の左側に示すプログラムシーケンスに沿って、上側のアドレスから順に下側に向けて実行する。
その途中で、矢印ａのように割込み（他のプログラムの実行要求）が発生すると、実行されていたプログラムのうち、このアドレスａａａａまでをプロセス０，アドレスａａａａ＋１移行をプロセス１として区切る。そして、矢印ｂのように実行中のデータ、戻りアドレス等をプロセス退避領域に書き込む。例えば、図３に示すように、２つのレジスタエリアがメインメモリに設定されている場合には、プロセス０に対してレジスタＡ，Ｂが書き込まれる。なお、割込みの信号には、次にＣＰＵ１０に要求するプログラムのアドレス、各種条件等の情報が含まれている。
【００２０】
さらに、具体的には、プロセス領域に書き込まれた情報（レジスタ）は、図４に示すような構造で書き込まれる。つまり、レジスタは、戻りアドレス（アドレスａａａａ＋１）を示すプログラムカウンタ、ＣＰＵ１０の演算状態を示すフラグレジスタ（ステータスレジスタ）、割込処理の回数「１」を示すスタックレジスタ、その他の情報（例えば、プロセスをコード化したデータ）を示す汎用レジスタ、以上４個のレジスタからなる。
そして、ＣＰＵ１０が他のプログラムの処理を終了すると、矢印ｃのように、レジスタのプログラムカウンタの戻りアドレスを参照して、アドレスａａａａ＋１に戻り、このアドレス移行の処理を実行する。この際、レジスタに書き込まれた各情報に基づき、先のプロセス０の処理を受けた処理が再度実行される。
【００２１】
順次、割込みが発生する度に、この処理が繰り返される。また、他のプログラムを実行中にさらに別のプログラムの割込みが発生した場合には、プロセス退避領域には２つ目のレジスタが書き込まれる。この際、レジスタ中のプログラムカウンタには他のプログラムに対応した戻りアドレスが、スタックレジスタには割込処理の回数「２」が書き込まれる。
例えば、図４では、８ビットの記憶エリアを設定した場合を記載しているため、十進数では２５５までの数字が書き込まれることになる。そして、別のプログラムの処理が終了すると、２個目のレジスタの情報に基づき、他のプログラムに戻って、それ以降の処理を実行する。このように、プロセス退避領域に書き込まれるレジスタは、ＦＩＦＯ（First In First Out）の動作を行うことになる。
【００２２】
また、プロセスの情報をレジスタとして書き込む場合、プロセスの処理言語に対応したデータを二進数に書き換えるため、プロセスを切り替える、所謂タスクスイッチを行っている。このタスクスイッチを行ってデータを変換したことも、レジスタ中の例えばフラグレジスタに書き込まれる。
【００２３】
（２）  不正プロセス検出装置
次に、図１に戻って本実施形態による不正プロセス検出装置について説明する。
不正プロセス検出装置３０は記憶デバイス３１を備えており、バス１５を介してＣＰＵ１０とメモリ２０との間に配置されている。不正プロセス検出装置３０はバス１５の信号を監視するものであり、便宜上図示しているが、このシステムを構成するＲＯＭ内に格納されている。
記憶デバイス３１は情報を一時的に記憶するものであり、便宜上図示しているが、メモリ２０内の別領域に確保される。
【００２４】
（３）  処理動作
不正プロセス検出装置３０の動作を、図５のフローチャートを参照しつつ説明する。
まず、装置３０は、プロセス退避領域のアドレス範囲とプログラム領域の不正アドレスを設定する（ステップＳ１）。本実施形態の場合、前述した如く、プロセス退避領域のアドレスがｙｙｙｙ〜ｚｚｚｚに設定し、不正アドレスは、プログラム領域のアドレスａａａａ〜ｎｎｎｎ以外のアドレスに設定する。また、図４に示すように、プロセス退避領域の１つのプロセスに対応したレジスタが４個の場合、そのデータ量は８ビット×４個＝３２ビットのデータ量となる。
【００２５】
次に、不正プロセス検出装置３０はメモリ２０からＣＰＵ１０に送信されるレジスタ情報を記憶デバイス３１に一時的に記憶する（ステップＳ２）。
さらに、不正プロセス検出装置３０は、この信号の情報を判定する。つまり、信号がプロセス退避領域から送信されるレジスタの場合には、そのデータ量は３２ビットとなるため、まず読み出されたレジスタが３２ビット以内であるか否かを判定し、かつタスクスイッチによってレジスタの情報を書き替えているか否かを判定する（ステップＳ３）。
このステップＳ３における判定処理で「ＹＥＳ」の場合には、ステップＳ４以降の処理に移り、「ＮＯ」の場合にはＣＰＵ１０に対して割込処理を発生させ（ステップＳ７）、記憶デバイス３１に記憶されたレジスタを読み出し、メモリ２０の不正プロセス情報領域に書き込む（ステップＳ８）。
【００２６】
レジスタは、先に説明したように、戻りアドレスを示すプログラムカウンタ、ＣＰＵ１０の演算状態を示すフラグレジスタ（ステータスレジスタ）、割込処理の回数を示すスタックレジスタ、その他の情報（例えば、プロセスをコード化したデータ）を示す汎用レジスタから構成されている。このため、ユーザおよび作業者は、このレジスタ情報を参照することにより、不具合が発生した際のプロセスおよび不正状況を容易に把握することが可能となる。
また、レジスタが不正プロセス情報領域に書き込まれる際には、どのような不正（判定処理）が発生したかが分かるように、その不正をコード化させてレジスタに書き込んでおけば、より正確な不正状況が記憶される。この際、比較的下位ビットしか使用されないスタックレジスタの上位ビットに二値化されたコードを書き込んでもよい。
【００２７】
このステップＳ３における判定処理で否定された場合の不正は、具体的にはプロセス退避領域から読み出されたレジスタがバス１５を送信する間に、その信号にノイズ等の不正信号が重畳してビット数が変化したり、バス１５を介して送信される別の信号等による不具合である。この判定処理によって、正しいレジスタと間違ってＣＰＵ１０が認識してしまうのを防止する。
【００２８】
一方、不正プロセス検出装置３０はレジスタのプログラムカウンタに記憶された戻りアドレスがプログラム領域のアドレスであるか否か、さらにレジスタのデータ量がプロセス退避領域のレジスタのデータ量（例えば、３２ビット）を超えているか否かのオーバーフローを判定する（ステップＳ４）。
【００２９】
このステップＳ４における判定処理で「ＮＯ」の場合には、ステップＳ５以降の処理に移り、「ＹＥＳ」の場合にはＣＰＵ１０に対して割込処理を発生させ、ステップＳ７以降の処理を行う。
このステップＳ４における判定処理で肯定された場合の不正は、レジスタのプログラムカウンタに記憶された戻りアドレスがプログラム領域のアドレス範囲に存在せず、或いはレジスタに何らかのノイズが重畳されてデータ量がオーバーフローしている場合等がある。特に、戻りアドレスがプログラム領域にないアドレスとなっている場合には、ＣＰＵ１０をハングさせる可能性がある。
【００３０】
さらに、不正プロセス検出装置３０はメモリ２０からＣＰＵ１０に送信されるレジスタ情報を判定する。つまり、信号がＣＰＵ１０から送信されるレジスタの場合には、そのデータ量は３２ビットとなるため、まず読み出されたレジスタが３２ビット以内であるか否かを判定し、かつタスクスイッチによってレジスタの情報を書き替えているか否かを判定する（ステップＳ５）。
このステップＳ５における判定処理で「ＹＥＳ」の場合には、ステップＳ６に移行して記憶デバイス３１に記憶されたレジスタ情報を削除し、ステップＳ２以降の処理を繰り返す。一方、「ＮＯ」の場合にはＣＰＵ１０に対して割込処理を発生させ、ステップＳ７以降の処理を行う。
【００３１】
（４）  実施形態の効果
上述した如く、本実施形態による不正プロセス検出装置３０では、ＣＰＵ１０とメモリ２０との間のレジスタを監視し、各種判定を行うことで不正プロセスを検出する。また、レジスタのデータ量およびタスクスイッチを判定することにより、外部からのノイズ等によって不正なレジスタが生成されているか否かが分かる。レジスタ中のプログラムカウントに記憶された戻りアドレスがプログラム領域範囲内のアドレスを指しているか否かを判定することにより、何らかの理由によりレジストの改竄が行われているか否かが分かる。
このように、この不正プロセス検出装置３０は、不正プロセスを特定するだけでなく、不正情報も分かるため、システムデバック処理における不正プロセスの特定および不正原因の究明等に大いに役立てることができる。
【００３２】
（５）  変形例
なお、前記実施形態では、不正プロセス検出装置３０は、ＣＰＵ１０とメモリ２０とからなるワンチップマイコン内に組み込まれるようにしたが、バス１５の部分に信号を監視するプローブを当てて、このポローブを介して信号を外付けのパソコンで判定処理を実行するようにしてもよい。
【００３３】
前記実施形態の処理動作では、ステップＳ３とＳ５の判定処理を、レジスタのデータ量が３２ビット以内であるか否かの判定と、タスクスイッチによってレジスタの情報を書き替えているか否かを判定することを、アンド条件で判定した場合を例示したが、いずれかの判定が「ＮＯ」であった場合でも不正として判定するようにしてもよい。さらに、この判定処理は別々に行うようにしてもよい。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施形態に係る不正プロセス検出装置を含むシステム構成を示す図である。
【図２】同実施形態におけるプログラムシーケンスおよびメモリマップを示す図である。
【図３】同実施形態におけるメモリマップの構成を示す図である。
【図４】同実施形態におけるレジスタの構成を示す図である。
【図５】同実施形態における不正プロセス検出動作を示す流れ図である。
【符号の説明】
【００３５】
１…システム、１０…ＣＰＵ、１５…バス、２０…メモリ、３０…不正プロセス検出装置、３１…記憶デバイス。
【図１】
2008209990.tif 000003
【図２】
2008209990.tif 000004
【図３】
2008209990.tif 000005
【図４】
2008209990.tif 000006
【図５】
2008209990.tif 000007