(57)【要約】  ＤＬＬインジェクション機能を持つコンピュータ装置及びＤＬＬインジェクション方法が開示される。運用体制から、ユーザが実行を命令したプログラムに対応する対象プロセスの生成如何が通知されれば、インジェクションプログラムのプロセス生成モジュールは、ランチャープロセスを行ってランチャープロセスの子プロセスとして対象プロセスを生成し、対象プロセスを中止モードに設定する。コード挿入モジュールは、対象プロセスのプロセスハンドルを用いて対象プロセスの積載されたメモリ領域を割り当てられ、対象プロセスにインジェクションしようとするＤＬＬファイルを行うコードを挿入する。復元モジュールは、対象プロセスの中止モードを解除して対象プロセスを行わせる。本発明によれば、中止モードで生成された対象プロセスのメモリ領域にＤＬＬ実行コードを挿入することで、他のＤＬＬインジェクション技法と衝突せずに安定してＤＬＬインジェクションを行える。
2014518582.tif 000002
【特許請求の範囲】
【請求項１】
対象プロセスにＤＬＬインジェクションを行うためのインジェクションプログラム及び運用体制を行うプロセッサと、
前記運用体制、前記インジェクションプログラム及び前記対象プロセスが保存されるメモリと、を備え、
前記インジェクションプログラムは、
ランチャープロセスを行って前記ランチャープロセスの子プロセスとして前記対象プロセスを生成し、前記対象プロセスを中止（ｓｕｓｐｅｎｄ）モードに設定するプロセス生成モジュールと、
前記対象プロセスのプロセスハンドルを用いて前記対象プロセスが積載されたメモリ領域を割り当てられ、前記対象プロセスにインジェクションしようとするＤＬＬファイルを行うコードを挿入するコード挿入モジュールと、
前記対象プロセスの中止モードを解除して前記対象プロセスを行わせる復元モジュールと、を備えることを特徴とするコンピュータ装置。
【請求項２】
前記インジェクションプログラムは、
前記運用体制でシステム権限で動作するプロセスのプロセスＩＤを使って前記対象プロセスをシステム権限で行わせる権限変更モジュールをさらに備えることを特徴とする請求項１に記載のコンピュータ装置。
【請求項３】
前記権限変更モジュールは、前記運用体制でシステム権限で動作するプロセスのプロセスＩＤを使って得られたプロセスハンドルによってトークンを開き、前記トークンをコピーし、
前記プロセス生成モジュールは、前記コピーされたトークンを使って前記対象プロセスを生成することを特徴とする請求項２に記載のコンピュータ装置。
【請求項４】
前記プロセス生成モジュールはね前記運用体制でシステム権限で動作するプロセスのプロセスＩＤを使って前記ランチャープロセスをシステム権限で行わせることを特徴とする請求項１に記載のコンピュータ装置。
【請求項５】
（ａ）運用体制から、ユーザが実行を命令したプログラムに対応する対象プロセスの生成如何を通知される段階と、
（ｂ）ランチャープロセスを行って前記ランチャープロセスの子プロセスとして前記対象プロセスを生成し、前記対象プロセスを中止モードに設定する段階と、
（ｃ）前記対象プロセスのプロセスハンドルを用いて前記対象プロセスの積載されたメモリ領域を割り当てられ、前記対象プロセスにインジェクションしようとするＤＬＬファイルを行うコードを挿入する段階と、
（ｄ）前記対象プロセスの中止モードを解除して前記対象プロセスを行わせる段階と、を含むことを特徴とするＤＬＬインジェクション方法。
【請求項６】
前記（ａ）段階及び前記（ｂ）段階の間に、
（ｅ）前記運用体制でシステム権限で動作するプロセスのプロセスＩＤを使って前記対象プロセスをシステム権限で行わせる段階をさらに含むことを特徴とする請求項５に記載のＤＬＬインジェクション方法。
【請求項７】
請求項５または６に記載のＤＬＬインジェクション方法をコンピュータで行わせるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＬＬインジェクション機能を持つコンピュータ装置及びＤＬＬインジェクション方法に係り、さらに詳細には、ランチャーが行われて子プロセスとして対象プロセスが行われる時にＤＬＬインジェクションを行う装置及び方法に関する。
【背景技術】
【０００２】
ＤＬＬインジェクションとは、他のプロセスに特定ＤＬＬを強制に挿入させることをいう。すなわち、他のプロセスが行われる過程で強制に挿入したＤＬＬをロードさせて処理させることである。ＤＬＬインジェクションは、ルートキットをはじめとしてウイルス及び悪性コードなどいろいろな分野で使われ、強制に挿入されたＤＬＬは該プロセスのメモリへの接近権限を持つので、フッキング及び機能追加などによりプロセスを容易に制御する。
【０００３】
既存の代表的なＤＬＬインジェクション技術としては、ＳｅｔＷｉｎｄｏｗｓＨｏｏｋＥｘ（）関数を使う方法、ＣｒｅａｔｅＲｅｍｏｔｅＴｈｒｅａｄ（）関数を使う方法及びレジストリの値を操作する方法などがある。このような既存のＤＬＬインジェクション方法では、ユーザがプロセスを始めれば該プロセスがメモリに積載され、積載されたプロセスが行われつつＤＬＬインジェクションが行われる。
【０００４】
以上のような既存のＤＬＬインジェクション技法は、同じプロセスに対して同時に適用されることで衝突が発生する場合があり、ＤＬＬインジェクション時点が動作環境の影響を受けて変わるか、または同じ環境であっても毎動作瞬間に変わりうるので、失敗する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする技術的課題は、既存のＤＬＬインジェクション技法に比べて安定性が高く、他のＤＬＬインジェクション技法と衝突する恐れのないＤＬＬインジェクション機能を持つコンピュータ装置及びＤＬＬインジェクション方法を提供するところにある。
【０００６】
本発明が解決しようとする他の技術的課題は、既存のＤＬＬインジェクション技法に比べて安定性が高く、他のＤＬＬインジェクション技法と衝突する恐れのないＤＬＬインジェクション機能を持つコンピュータ装置及びＤＬＬインジェクション方法をコンピュータで行わせるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供するところにある。
【課題を解決するための手段】
【０００７】
前記技術的課題を解決すための本発明によるＤＬＬインジェクション機能を持つコンピュータ装置は、対象プロセスにＤＬＬインジェクションを行うためのインジェクションプログラム及び運用体制を行うプロセッサと、前記運用体制、前記インジェクションプログラム及び前記対象プロセスが保存されるメモリと、を備え、前記インジェクションプログラムは、ランチャープロセスを行って前記ランチャープロセスの子プロセスとして前記対象プロセスを生成し、前記対象プロセスを中止（ｓｕｓｐｅｎｄ）モードに設定するプロセス生成モジュールと、前記対象プロセスのプロセスハンドルを用いて前記対象プロセスが積載されたメモリ領域を割り当てられ、前記対象プロセスにインジェクションしようとするＤＬＬファイルを行うコードを挿入するコード挿入モジュールと、前記対象プロセスの中止モードを解除して前記対象プロセスを行わせる復元モジュールと、を備える。
【０００８】
前記技術的課題を解決すための、本発明によるＤＬＬインジェクション方法は、（ａ）運用体制から、ユーザが実行を命令したプログラムに対応する対象プロセスの生成如何を通知される段階と、（ｂ）ランチャープロセスを行って前記ランチャープロセスの子プロセスとして前記対象プロセスを生成し、前記対象プロセスを中止モードに設定する段階と、（ｃ）前記対象プロセスのプロセスハンドルを用いて前記対象プロセスの積載されたメモリ領域を割り当てられ、前記対象プロセスにインジェクションしようとするＤＬＬファイルを行うコードを挿入する段階と、（ｄ）前記対象プロセスの中止モードを解除して前記対象プロセスを行わせる段階と、を含む。
【発明の効果】
【０００９】
本発明によるＤＬＬインジェクション機能を持つコンピュータ装置及びＤＬＬインジェクション方法によれば、中止モードで生成された対象プロセスのメモリ領域にＤＬＬ実行コードを挿入することで、他のＤＬＬインジェクション技法と衝突せずに安定してＤＬＬインジェクションを行える。また対象プロセスをシステム権限で行うことで、ＤＬＬインジェクションを行う他のプロセスが対象プロセスに対して行われることを防止する。
【図面の簡単な説明】
【００１０】
【図１】本発明によるＤＬＬインジェクション機能を持つコンピュータ装置についての望ましい実施形態の構成を示すブロック図である。
【図２】インジェクションプログラムの構成を示す図面である。
【図３】コード挿入モジュールによって行われるインジェクションコードの挿入過程を示すフローチャートである。
【図４】ＰＥ構造の構成を示す図面である。
【図５】権限変更モジュールによって対象プログラムをシステム権限で行わせる過程を示すフローチャートである。
【図６】本発明によるＤＬＬインジェクション方法についての望ましい実施形態の実行過程を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付した図面を参照して、本発明によるＤＬＬインジェクション機能を持つコンピュータ装置及びＤＬＬインジェクション方法の望ましい実施形態について詳細に説明する。
【００１２】
図１は、本発明によるＤＬＬインジェクション機能を持つコンピュータ装置についての望ましい実施形態の構成を示すブロック図である。図１を参照すれば、本発明によるＤＬＬインジェクション機能を持つコンピュータ装置は、プロセッサ１１０及びメモリ１２０を備える。
【００１３】
プロセッサ１１０は、特に、メモリ１２０に保存されたソフトウェアを行うためのハードウェアデバイスである。またプロセッサ１１０は、任意の注文製作または商用で入手できるプロセッサ、中央処理装置（ＣＰＵ）、コンピュータと連関したいくつかのプロセッサのうち補助プロセッサ、半導体基盤マイクロプロセッサ、マクロプロセッサまたは一般的にソフトウェア命令語を行うための任意のデバイスである。
【００１４】
図１に示したように、プロセッサ１１０は運用体制１１２を実行し、運用体制１１２は、メモリ１２０に保存される。またプロセッサ１１０は、メモリ１２０に保存されているプログラムアプリケーション１２２からコンピュータプログラム指示事項を検索して実行し、インジェクションプログラム１１４を実行する。この時、インジェクションプログラム１１４はドライバ形態に具現され、レジストリ設定により運用体制１１２の起動時に適切な時点に自動で実行され、共通プログラムアプリケーションの一要素として具現されることもある。
【００１５】
メモリ１２０は、揮発性メモリ要素、例えば、ＲＡＭ（ＤＲＡＭ、ＳＲＡＭ及びＳＤＲＡＭなど及び非揮発性メモリ要素、例えば、ＲＯＭ、消去可能なプログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能なプログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ）、テープ、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、ディスク、ディスケット、カートリッジ、カセットなどのうちいずれか一つまたはこれらの結合を含む。さらには、メモリ１２０は、電子的、磁気的、光学的及び／または他のタイプの記録媒体を採択する。メモリ１２０は、多様なコンポネントが互いから遠く離れて位置している分散アキテクチャーを持つが、プロセッサ１１０によってアクセスされる。
【００１６】
また図１に示したように、メモリ１２０には文書、マルチメディアファイル及びデータファイルなどのプログラムデータ１２４が保存され、さらには、メモリ１２０の一部空間をインジェクションプログラム１１４が使える。このようにメモリ１２０に保存されたソフトウェアは、一つ以上の個別プログラムを含み、それぞれのプログラムは、論理的機能を具現するための実行可能命令語の整列されたリストを含む。
【００１７】
図１のインジェクションプログラム１１４は、対象プロセスにＤＬＬインジェクションを行うためのものであり、図２には、インジェクションプログラム１１４の構成が示されている。図２を参照すれば、インジェクションプログラム１１４は、プロセス生成モジュール１１４−１、コード挿入モジュール１１４−２及び復元モジュール１１４−３からなって対象プロセスの実行完了前にＤＬＬインジェクションを行う。
【００１８】
既存のＤＬＬインジェクション技法では、ユーザからプロセス実行命令が入力されれば、該プロセスがメモリに積載された後で行われつつＤＬＬインジェクションが行われる。しかし、前述したように、このような既存のＤＬＬインジェクション技法は、失敗または他のＤＬＬインジェクション技法との衝突可能性がある。
【００１９】
したがって、本発明で提案するインジェクションプログラム１１４は、ランチャープロセスを行って対象プロセスを子プロセスとして行うが、対象プロセスが積載されたメモリ領域にＤＬＬファイルの経路を示すインジェクションコードを挿入することで、対象プロセスの実行前にＤＬＬインジェクションを行わせる。
【００２０】
プロセス生成モジュール１１４−１は、ランチャープロセスを行ってランチャープロセスの子プロセスとして対象プロセスを生成し、生成した対象プロセスを中止モードに設定する。これは、対象プロセスが実行のためにメモリに積載された状態で、プロセス実行の完了前にインジェクションコードを挿入するためである。また対象プロセスは、ランチャープロセスの子プロセスとして生成されるので、プロセス生成モジュール１１４−１は、‘実行プロセス経路’及び‘実行プロセスパラメータ’を入力して子プロセスを生成する。
【００２１】
このように本発明で提案するインジェクションプログラム１１４が、中止モードとして実行が中止された対象プロセスのメモリ領域にインジェクションコードを挿入した後、中止モードを解除して対象プロセスを行わせれば、ＤＬＬインジェクションの時点が調節できてＤＬＬインジェクションの失敗を防止する。
【００２２】
次いで、コード挿入モジュール１１４−２は、対象プロセスのプロセスハンドルを用いて対象プロセスの積載されたメモリ領域を割り当てられ、インジェクションしようとするＤＬＬファイルの経路を示すインジェクションコード（Ｌｏａｄ  ＤＬＬ  Ｃｏｄｅ）を挿入する。
【００２３】
図３は、コード挿入モジュールによって行われるインジェクションコードの挿入過程を示すフローチャートである。
【００２４】
プロセス生成モジュール１１４−１によって対象プロセスが子プロセスとして生成されたので、コード挿入モジュール１１４−２は、対象プロセスのメモリ領域に直接近付けられる権限を持つ。したがって、コード挿入モジュール１１４−２は、対象プロセスの生成過程で得られたプロセスハンドルを用いてメモリ１２０で対象プロセスが積載された位置を探し、該位置から実行コードを読み込む（Ｓ２１０）。
【００２５】
コード挿入モジュール１１４−２が読み込んだ実行コードは、マイクロソフトで支援する実行ファイルの形式であるＰＥ（Ｐｏｒｔａｂｌｅ  Ｅｘｃｕｔａｂｌｅ）構造を持つ。図４には、ＰＥ構造の構成が示されている。コード挿入モジュール１１４−２は、実行コードがＰＥ構造であるかどうかを確認するために、図４に示した構成のＩＭＡＧＥ＿ＤＯＳ＿ＨＥＡＤＥＲの最初の２バイトがＩＭＡＧＥ＿ＤＯＳ＿ＳＩＧＮＡＴＵＲＥ（文字ＭＺ）であるかどうかを確認する。またＩＭＡＧＥ＿ＮＴ＿ＨＥＡＤＥＲの最初の４バイトがＩＭＡＧＥ＿ＮＴ＿ＳＩＧＮＡＴＵＲＥ（文字ＰＥ００）であるかどうかを確認する。その結果、実行コードがＰＥ構造を持つと確認されれば、ＰＥ構造からエントリーポイント（ＥｎｔｒｙＰｏｉｎｔ）を探す（Ｓ２２０）。
【００２６】
次いで、コード挿入モジュール１１４−２は、プロセスハンドルを用いてプロセス仮想メモリ領域の一部を割り当てられる（Ｓ２３０）。割り当てられたメモリ領域は、今後挿入されるＬｏａｄ  ＤＬＬ  Ｃｏｄｅが保存されるための空間である。また地域変数にＬｏａｄＬｉｂｒａｒｙを呼び出し、元のエントリーポイントにリターンさせるＬｏａｄ  ＤＬＬ  Ｃｏｄｅを作成して記録する（Ｓ２４０）。
【００２７】
実行コードのエントリーポイントを変更して対象プログラムの実行過程でＬｏａｄＤＬＬ  Ｃｏｄｅを行わせるためには、エントリーポイントの接近権限を書き込み可能な（ｗｒｉｔａｂｌｅ）状態に変更せねばならない（Ｓ２５０）。またコード挿入モジュール１１４−２は、Ｌｏａｄ  ＤＬＬ  Ｃｏｄｅが実行された後、元のエントリーポイントにリターンできるように、前記で生成された地域変数の一部であるＢａｃｋｕｐＥｎｔｒｙに変更前の現在のエントリーポイントを保存する（Ｓ２６０）。
【００２８】
次いで、コード挿入モジュール１１４−２は、前記で割り当てられた仮想メモリ領域に地域変数に保存しているＬｏａｄ  ＤＬＬ  Ｃｏｄｅを挿入し（Ｓ２７０）、書き込み可能な状態に変更されたエントリーポイントに、Ｌｏａｄ  ＤＬＬ  Ｃｏｄｅの位置に移動するためのジャンプコード（Ｊｕｍｐ  Ｃｏｄｅ）を挿入する（Ｓ２８０）。
【００２９】
以上で説明した過程によって、ＤＬＬインジェクションのためのＬｏａｄ  ＤＬＬＣｏｄｅの挿入過程が完了する。最後にコード挿入モジュール１１４−２は、エントリーポイントへの接近権限を元の状態で復旧させる（Ｓ２９０）。このように対象プロセスのメモリ領域にＬｏａｄ  ＤＬＬ  Ｃｏｄｅが挿入された後、復元モジュール１１４−３は、対象プロセスの中止モードを解除し、対象プロセスを正常に行わせる。この時、コード挿入モジュール１１４−２によって対象プロセスのメモリ領域に挿入されたＬｏａｄ  ＤＬＬ  ＣｏｄｅによってインジェクションされたＤＬＬが対象プロセスと共に行われる。
【００３０】
一方、インジェクションプログラム１１４が対象プロセスを中止モードで実行してＤＬＬインジェクションを行うのは、他のＤＬＬインジェクション技法との衝突を防止して安定的にＤＬＬインジェクションを行わせるためである。このためには、前述したようにＤＬＬインジェクションの時点を異ならせるだけではなく、対象プロセスを他のＤＬＬインジェクション技法から防御する必要がある。
【００３１】
一般的なＤＬＬインジェクション方式では、ユーザ権限での対象プロセスの実行時に同一にユーザ権限で行われていたＤＬＬインジェクションを試みるプロセスが対象プロセスの実行を感知し、ＤＬＬインジェクションを試みる。それによってＤＬＬインジェクションが成功し、対象プロセスが行われる時にインジェクションされたＤＬＬがロードされて共に行われる。
【００３２】
本発明で提案するインジェクションプログラム１１４には権限変更モジュール１１４−４がさらに備えられ、ユーザ権限で行われるプロセスによるＤＬＬインジェクションから対象プロセスを防御するために、対象プロセスをシステム権限で行う。これにより、一般的なＤＬＬインジェクションプロセスは権限の高いプロセスについてのＤＬＬインジェクションに失敗し、インジェクションプログラム１１４は、他のＤＬＬインジェクション技法の対象プロセスへの適用を回避すると共に、安定してＤＬＬインジェクションを行える。
【００３３】
図５は、権限変更モジュール１１４−４によって対象プログラムをシステム権限で行わせる過程を示すフローチャートである。図５を参照すれば、権限変更モジュール１１４−４は、先ず、すべてのウィンドウズ（登録商標）運用体制で常にシステム権限で動作しているプロセス、例えば、‘ｗｉｎｌｏｇｏｎ．ｅｘｅ’のプロセスＩＤを得る（Ｓ４１０）。プロセスＩＤを得る方式としては、マイクロソフト社でプロセス情報を得られるように提供するＴｏｏｌ  Ｈｅｌｐライブラリのスナップショット方式を使う。
【００３４】
次いで、権限変更モジュール１１４−４は、得たプロセスＩＤを使って‘ｗｉｎｌｏｇｏｎ．ｅｘｅ’のプロセスハンドルを開き（Ｓ４２０）、これを使って‘ｗｉｎｌｏｇｏｎ．ｅｘｅ’のトークンを開く（Ｓ４３０）。一つのトークンには、ログオンセッションについての保安情報が含まれており、ユーザが運用体制にログオンする時に作られた一つのトークンをコピーし、ユーザーが行うすべてのプロセスが行われる。
【００３５】
ウィンドウズ運用体制では、それぞれのユーザを独立して管理するためにセッションで権限を管理するが、基本的に一つのユーザがログオンすれば、一つのセッションを割り当てられて、割り当てられたセッション内で作業を行う。ログオンしたユーザに割り当てられるセッションと類似した方式で、最上位権限であるシステムについてもセッションが割り当てられ、運用体制内部の重要な作業が処理される。
【００３６】
したがって、権限変更モジュール１１４−４がシステム権限で動作する‘ｗｉｎｌｏｇｏｎ．ｅｘｅ’のトークンを得ることは、システムに割り当てられたセッションに対象プロセスを進入させるための権限獲得の意味を持つ。
【００３７】
次いで、権限変更モジュール１１４−４は、得たトークンをコピーして新たなトークンを生成する（Ｓ４５０）。コピーされたトークンは、‘ｗｉｎｌｏｇｏｎ．ｅｘｅ’のシステム権限を内包している。一方、現在ローカルシステムを区分できる値であるＬＵＩＤを得て（Ｓ４４０）、コピーしたトークンを使えるように権限を変更する（Ｓ４６０）。
【００３８】
最後に、権限変更モジュール１１４−４は、プロセス生成モジュール１１４−１がコピーされたトークンを使って対象プロセスを生成させる（Ｓ４７０）。この時、プロセス経路及びプロセスパラメータを指定することで、所望のプロセスを生成する。また本発明で対象プロセスが、本発明によるＤＬＬインジェクション装置の子プロセスとして生成されるという点は、前述した通りである。一方、プロセス生成モジュール１１４−１は、運用体制でシステム権限で動作するプロセスのプロセスＩＤを使って、対象プロセスではないランチャープロセスをシステム権限で行え、それによって生成される子プロセスである対象プロセスもシステム権限で行われる。
【００３９】
以後、対象プロセスはシステム権限で行われ、コード挿入モジュール１１４−２は、外部プロセスによるＤＬＬインジェクションの影響を受けず、対象プロセスが積載されたメモリ領域にＬｏａｄ  ＤＬＬ  Ｃｏｄｅを挿入して所望のＤＬＬを行わせる。
【００４０】
以上で説明したような、権限変更モジュール１１４−４によるＤＬＬインジェクション防御技法は、ＤＬＬインジェクション技法を分析してＤＬＬインジェクションの発生をモニタリングすることで防御する既存の技法に比べて、根本的に対象プロセスをＤＬＬインジェクションから防御できるという効果を持つ。
【００４１】
図６は、本発明によるＤＬＬインジェクション方法についての望ましい実施形態の実行過程を示すフローチャートである。図６を参照すれば、運用体制１１２からユーザが実行を命令したプログラムに対応する対象プロセスの生成如何が通知されれば（Ｓ５１０）、インジェクションプログラム１１４のプロセス生成モジュール１１４−１は、ランチャープロセスを行ってランチャープロセスの子プロセスとして対象プロセスを生成し、生成された対象プロセスを中止モードに設定する（Ｓ５２０）。この時、前述したように、権限変更モジュール１１４−４がシステム権限で行われる‘ｗｉｎｌｏｇｏｎ．ｅｘｅ’のトークンをコピーし、対象プロセスをシステム権限で生成させる。
【００４２】
次いで、コード挿入モジュール１１４−２は、対象プロセスのプロセスハンドルを用いて対象プロセスが積載されたメモリ領域を割り当てられ、対象プロセスにインジェクションしようとするＤＬＬファイルを行うコードを挿入する（Ｓ５３０）。コード挿入モジュール１１４−２の詳細な動作は、前記図３を参照して説明した通りである。
【００４３】
コード挿入モジュール１１４−２によって対象プロセスのメモリ領域にＤＬＬファイルを行うためのＬｏａｄ  ＤＬＬ  Ｃｏｄｅが挿入されれば、復元モジュール１１４−３は、対象プロセスの中止モードを解除して対象プロセスを行わせる（Ｓ５４０）。
【００４４】
本発明はまた、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現できる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取られるデータが保存される全種の記録装置を含む。コンピュータで読み取り可能な記録媒体の例には、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、またキャリアウェーブ（例えば、インターネットを通じる送信）の形態で具現されるものも含む。またコンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードが保存されて実行される。
【００４５】
以上、本発明の望ましい実施形態について図示して説明したが、本発明は前述した特定の望ましい実施形態に限定されず、特許請求の範囲で請求する本発明の趣旨を逸脱せずに当業者ならば多様な変形実施が可能であるということはいうまでもなく、かかる変更は特許請求の範囲に記載の範囲内にある。
【図１】
2014518582.tif 000003
【図２】
2014518582.tif 000004
【図３】
2014518582.tif 000005
【図４】
2014518582.tif 000006
【図５】
2014518582.tif 000007
【図６】
2014518582.tif 000008
【国際調査報告】
2014518582.tif 000009
2014518582.tif 000010
2014518582.tif 000011
2014518582.tif 000012