(57)【要約】【課題】画面をキャプチャする操作を検出でき、画面の２次利用等を防ぐこと。【解決手段】クライアント３は、サーバ１から最新のキャプチャテーブル１０を取得してキャプチャライブラリ１５に格納する。クライアント３のキャプチャ保護手段３ｃは、キャプチャテーブル１０に基づき、起動しているプログラムのプロセス名、正式ファイル名、バイナリデータを比較して画面をキャプチャするキャプチャプログラムの起動を検出する。検出時には画面のキャプチャを防止する制御を行う。【選択図】        図１
2005227990.tif 000002
【特許請求の範囲】
【請求項１】
起動しているプログラムのバイナリデータを取得し、当該バイナリデータの内容に基づいて表示されている画面をキャプチャするキャプチャプログラムの起動を検出する起動検出手段と、
前記起動検出手段によりキャプチャプログラムの起動が検出されたとき、表示されている画面のキャプチャを防ぐ処理を行うキャプチャ防止制御手段と、
を備えることを特徴とするキャプチャ保護装置。
【請求項２】
前記起動検出手段は、
前記バイナリデータのうち、画面の表示情報を含む所定範囲の領域を取得することを特徴とする請求項１に記載のキャプチャ保護装置。
【請求項３】
前記起動検出手段は、
前記起動しているプログラムから当該プログラムのプロセス名と、実行ファイルの正式ファイル名と、当該プログラムを構成しているバイナリデータ、のうち取得できた一つあるいは複数を用いてキャプチャプログラムの起動を検出することを特徴とする請求項１または２に記載のキャプチャ保護装置。
【請求項４】
予めキャプチャプログラムのプロセス名と、実行ファイルの正式ファイル名と、当該プログラムを構成しているバイナリデータと、を定義ファイルとして格納する格納手段を備え、
前記起動検出手段は、
取得したプログラムのプロセス名と、実行ファイルの正式ファイル名と、当該プログラムを構成しているバイナリデータと、のうち一つあるいは複数を前記格納手段に格納された定義ファイルの内容と比較してキャプチャプログラムの起動を検出することを特徴とする請求項３に記載のキャプチャ保護装置。
【請求項５】
前記起動検出手段は、
前記取得したバイナリデータと、前記定義ファイルとして格納されたバイナリデータと、をそれぞれハッシュ値を用いて比較することを特徴とする請求項４に記載のキャプチャ保護装置。
【請求項６】
更新された新たな前記定義ファイルを外部から取得して前記格納手段に格納する定義ファイル更新手段を備えたことを特徴とする請求項４または５に記載のキャプチャ保護装置。
【請求項７】
前記キャプチャ防止制御手段は、
検出された前記キャプチャプログラムによるキャプチャ操作があったときに、当該キャプチャされた画面を予め用意した保護用の画面に切り替える、あるいは当該キャプチャされた画面を予め用意した保護用の画面を用いて隠す処理を行うことを特徴とする請求項１〜６のいずれか一つに記載のキャプチャ保護装置。
【請求項８】
前記キャプチャ防止制御手段は、
検出された前記キャプチャプログラムによるキャプチャ操作があったときに、当該キャプチャプログラムを強制終了させることを特徴とする請求項１〜６のいずれか一つに記載のキャプチャ保護装置。
【請求項９】
起動しているプログラムのバイナリデータを取得し、当該バイナリデータの内容に基づいて表示されている画面をキャプチャするキャプチャプログラムの起動を検出する起動検出工程と、
前記起動検出工程によりキャプチャプログラムの起動が検出されたとき、表示されている画面のキャプチャを防ぐ処理を行うキャプチャ防止制御工程と、
を含むことを特徴とするキャプチャ保護方法。
【請求項１０】
前記起動検出工程は、
前記バイナリデータのうち、画面の表示情報を含む所定範囲の領域を取得することを特徴とする請求項９に記載のキャプチャ保護方法。
【請求項１１】
前記起動検出工程は、
前記起動しているプログラムのプロセス名に基づきキャプチャプログラムの検出を行う第１の検出工程と、
前記第１の検出工程において前記プロセス名が取得できなかったときに、前記起動しているプログラムの実行ファイルの正式ファイル名に基づきキャプチャプログラムの検出を行う第２の検出工程と、
前記第２の検出工程において前記正式ファイル名が取得できなかったときに、前記起動しているプログラムを構成するバイナリデータに基づきキャプチャプログラムの検出を行う第３の検出工程と、
を含むことを特徴とする請求項９または１０に記載のキャプチャ保護方法。
【請求項１２】
予めキャプチャプログラムのプロセス名と、実行ファイルの正式ファイル名と、当該プログラムを構成しているバイナリデータと、を定義ファイルとして格納する格納工程を含み、
前記起動検出工程は、
取得したプログラムのプロセス名と、実行ファイルの正式ファイル名と、当該プログラムを構成しているバイナリデータと、のうち一つあるいは複数を前記格納工程により格納されている定義ファイルの内容と比較してキャプチャプログラムの起動を検出することを特徴とする請求項１１に記載のキャプチャ保護方法。
【請求項１３】
前記起動検出工程は、
前記取得したバイナリデータと、前記定義ファイルとして格納されたバイナリデータと、をそれぞれハッシュ値を用いて比較することを特徴とする請求項１２に記載のキャプチャ保護方法。
【請求項１４】
更新された新たな前記定義ファイルを外部から取得して前記格納工程を実行させる定義ファイル更新工程を含むことを特徴とする請求項１２または１３に記載のキャプチャ保護方法。
【請求項１５】
前記キャプチャ防止制御工程は、
検出された前記キャプチャプログラムによるキャプチャ操作があったときに、当該キャプチャされた画面を予め用意した保護用の画面に切り替える、あるいは当該キャプチャされた画面を予め用意した保護用の画面を用いて隠す処理を行うことを特徴とする請求項９〜１４のいずれか一つに記載のキャプチャ保護方法。
【請求項１６】
前記キャプチャ防止制御工程は、
検出された前記キャプチャプログラムによるキャプチャ操作があったときに、当該キャプチャプログラムを強制終了させることを特徴とする請求項９〜１４のいずれか一つに記載のキャプチャ保護方法。
【請求項１７】
前記請求項９〜１６のいずれか一つに記載の方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、表示部に表示されている表示画面の不正なキャプチャを防ぎ、表示されているコンテンツや生成された画面を保護するキャプチャ保護装置、キャプチャ保護方法およびそのプログラムに関する。
【背景技術】
【０００２】
従来、コンピュータシステムを構成するＣＲＴ、ＬＣＤ等の表示部上にはデータの表示画面が表示される。このような表示画面は、キャプチャソフトを用いてキャプチャ（取り込み）することができる。このようなキャプチャソフトを構成するプログラムは、単純でかつ利用価値が高いため多くのフリーウェアが存在している（例えば、下記非特許文献１参照。）。また、テレビのディスプレイのディジタル信号から情報をキャプチャするコンピュータシステムも提案されている（例えば、下記特許文献１参照。）。
【０００３】
【特許文献１】特表２００２−５６１５８５号公報
【非特許文献１】“キャプチャソフト紹介”［平成１６年１月２０日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｋｊｐｓ．ｎｅｔ／ｕｓｅｒ／ｒ２−ｍ２／ｃｌａｒｅ／ｄｔｖ／ｃａｐ＿ｓｔｅｐ０４．ｈｔｍｌ＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のキャプチャソフトは、コンテンツ等の表示画面を簡単にキャプチャすることができるようになっている。この表示画面は、静止画や動画の画像、特別にレイアウト編集した画面等を含む。また、アプリケーションがネットワーク等を介して配信されたコンテンツを表示することもある。表示部に表示される画面は、著作権者の意に反した２次利用等を防ぐよう、保護する必要がある。
【０００５】
この発明は、上述した従来技術による問題点を解消するため、画面をキャプチャする操作を検出でき、画面の２次利用等を防ぐことができるキャプチャ保護装置、キャプチャ保護方法およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、請求項１の発明にかかるキャプチャ保護装置は、起動しているプログラムのバイナリデータを取得し、当該バイナリデータの内容に基づいて表示されている画面をキャプチャするキャプチャプログラムの起動を検出する起動検出手段と、前記起動検出手段によりキャプチャプログラムの起動が検出されたとき、表示されている画面のキャプチャを防ぐ処理を行うキャプチャ防止制御手段と、を備えることを特徴とする。
【０００７】
この請求項１の発明によれば、起動しているプログラムのバイナリデータの内容によってキャプチャプログラムの起動を検出することができるようになり、表示されている画面のキャプチャを防ぐことができる。
【０００８】
また、請求項２の発明にかかるキャプチャ保護装置は、請求項１に記載の発明において、前記起動検出手段は、前記バイナリデータのうち、画面の表示情報を含む所定範囲の領域を取得することを特徴とする。
【０００９】
この請求項２の発明によれば、キャプチャプログラムを構成するバイナリデータのうち、画面の表示情報にかかる部分だけを取得しデータサイズが増大することなくキャプチャプログラムの起動を検出できる。
【００１０】
また、請求項３の発明にかかるキャプチャ保護装置は、請求項１または２に記載の発明において、前記起動検出手段は、前記起動しているプログラムから当該プログラムのプロセス名と、実行ファイルの正式ファイル名と、当該プログラムを構成しているバイナリデータと、のうち取得できた一つあるいは複数を用いてキャプチャプログラムの起動を検出することを特徴とする。
【００１１】
この請求項３の発明によれば、複数項目の検出によってキャプチャプログラムの起動を適切に検出できる。
【００１２】
また、請求項４の発明にかかるキャプチャ保護装置は、請求項３に記載の発明において、予めキャプチャプログラムのプロセス名と、実行ファイルの正式ファイル名と、当該プログラムを構成しているバイナリデータと、を定義ファイルとして格納する格納手段を備え、前記起動検出手段は、取得したプログラムのプロセス名と、実行ファイルの正式ファイル名と、当該プログラムを構成しているバイナリデータと、のうち一つあるいは複数を前記格納手段に格納された定義ファイルの内容と比較してキャプチャプログラムの起動を検出することを特徴とする。
【００１３】
この請求項４の発明によれば、格納された定義ファイルの内容と、取得した内容とを比較するだけでキャプチャプログラムの起動を簡単に検出できる。
【００１４】
また、請求項５の発明にかかるキャプチャ保護装置は、請求項４に記載の発明において、前記起動検出手段は、前記取得したバイナリデータと、前記定義ファイルとして格納されたバイナリデータとをそれぞれハッシュ値を用いて比較することを特徴とする。
【００１５】
この請求項５の発明によれば、ハッシュ値を用いることにより取得したバイナリデータと、定義ファイルとして格納されたバイナリデータとの比較時のデータサイズを小さくでき、処理時間の短縮化と処理効率の向上を図ることができる。また、格納手段に格納する定義ファイルのデータサイズを小さくできる。
【００１６】
また、請求項６の発明にかかるキャプチャ保護装置は、請求項４または５に記載の発明において、更新された新たな前記定義ファイルを外部から取得して前記格納手段に格納する定義ファイル更新手段を備えたことを特徴とする。
【００１７】
この請求項６の発明によれば、常に更新された定義ファイルを用いることができ、新たなキャプチャプログラムであってもこれを検出できるようになる。
【００１８】
また、請求項７の発明にかかるキャプチャ保護装置は、請求項１〜６のいずれか一つに記載の発明において、前記キャプチャ防止制御手段は、検出された前記キャプチャプログラムによるキャプチャ操作があったときに、当該キャプチャされた画面を予め用意した保護用の画面に切り替える、あるいは当該キャプチャされた画面を予め用意した保護用の画面を用いて隠す処理を行うことを特徴とする。
【００１９】
この請求項７の発明によれば、表示されている画面のキャプチャを防止でき、画面の内容を保護することができる。
【００２０】
また、請求項８の発明にかかるキャプチャ保護装置は、請求項１〜６のいずれか一つに記載の発明において、前記キャプチャ防止制御手段は、検出された前記キャプチャプログラムによるキャプチャ操作があったときに、当該キャプチャプログラムを強制終了させることを特徴とする。
【００２１】
この請求項８の発明によれば、表示されている画面のキャプチャを防止でき、画面の内容を保護することができる。
【００２２】
また、請求項９の発明にかかるキャプチャ保護方法は、起動しているプログラムのバイナリデータを取得し、当該バイナリデータの内容に基づいて表示されている画面をキャプチャするキャプチャプログラムの起動を検出する起動検出工程と、前記起動検出工程によりキャプチャプログラムの起動が検出されたとき、表示されている画面のキャプチャを防ぐ処理を行うキャプチャ防止制御工程と、を含むことを特徴とする。
【００２３】
この請求項９の発明によれば、起動しているプログラムのバイナリデータの内容によってキャプチャプログラムの起動を検出することができるようになり、表示されている画面のキャプチャを防ぐことができる。
【００２４】
また、請求項１０の発明にかかるキャプチャ保護方法は、請求項９に記載の発明において、前記起動検出工程は、前記バイナリデータのうち、画面の表示情報を含む所定範囲の領域を取得することを特徴とする。
【００２５】
この請求項１０の発明によれば、キャプチャプログラムを構成するバイナリデータのうち、画面の表示情報にかかる部分だけを取得しデータサイズが増大することなくキャプチャプログラムの起動を検出できる。
【００２６】
また、請求項１１の発明にかかるキャプチャ保護方法は、請求項９または１０に記載の発明において、前記起動検出工程は、前記起動しているプログラムのプロセス名に基づきキャプチャプログラムの検出を行う第１の検出工程と、前記第１の検出工程において前記プロセス名が取得できなかったときに、前記起動しているプログラムの実行ファイルの正式ファイル名に基づきキャプチャプログラムの検出を行う第２の検出工程と、前記第２の検出工程において前記正式ファイル名が取得できなかったときに、前記起動しているプログラムを構成するバイナリデータに基づきキャプチャプログラムの検出を行う第３の検出工程と、を含むことを特徴とする。
【００２７】
この請求項１１の発明によれば、複数項目の検出によってキャプチャプログラムの起動を適切に検出できるようになる。特に、第１〜第３の検出工程を順に実行することにより、キャプチャプログラムの検出時には、以降の検出工程を行わずに済み、検出の処理効率を向上できる。
【００２８】
また、請求項１２の発明にかかるキャプチャ保護方法は、請求項１１に記載の発明において、予めキャプチャプログラムのプロセス名と、実行ファイルの正式ファイル名と、当該プログラムを構成しているバイナリデータと、を定義ファイルとして格納する格納工程を含み、前記起動検出工程は、取得したプログラムのプロセス名と、実行ファイルの正式ファイル名と、当該プログラムを構成しているバイナリデータと、のうち一つあるいは複数を前記格納工程により格納されている定義ファイルの内容と比較してキャプチャプログラムの起動を検出することを特徴とする。
【００２９】
この請求項１２の発明によれば、格納された定義ファイルの内容と、取得した内容とを比較するだけでキャプチャプログラムの起動を簡単に検出できるようになる。
【００３０】
また、請求項１３の発明にかかるキャプチャ保護方法は、請求項１２に記載の発明において、前記起動検出工程は、前記取得したバイナリデータと、前記定義ファイルとして格納されたバイナリデータとをそれぞれハッシュ値を用いて比較することを特徴とする。
【００３１】
この請求項１３の発明によれば、比較時のデータサイズを小さくでき、処理時間の短縮化と処理効率の向上を図ることができる。また、予め格納しておく定義ファイルのデータサイズを小さくできる。
【００３２】
また、請求項１４の発明にかかるキャプチャ保護方法は、請求項１２または１３に記載の発明において、更新された新たな前記定義ファイルを外部から取得して前記格納工程を実行させる定義ファイル更新工程を備えたことを特徴とする。
【００３３】
この請求項１４の発明によれば、常に更新された定義ファイルを用いることができ、新たなキャプチャプログラムであってもこれを検出できるようになる。
【００３４】
また、請求項１５の発明にかかるキャプチャ保護方法は、請求項９〜１４のいずれか一つに記載の発明において、前記キャプチャ防止制御工程は、検出された前記キャプチャプログラムによるキャプチャ操作があったときに、当該キャプチャされた画面を予め用意した保護用の画面に切り替える、あるいは当該キャプチャされた画面を予め用意した保護用の画面を用いて隠す処理を行うことを特徴とする。
【００３５】
この請求項１５の発明によれば、表示されている画面のキャプチャを防止でき、画面の内容を保護することができる。
【００３６】
また、請求項１６の発明にかかるキャプチャ保護方法は、請求項９〜１４のいずれか一つに記載の発明において、前記キャプチャ防止制御工程は、検出された前記キャプチャプログラムによるキャプチャ操作があったときに、当該キャプチャプログラムを強制終了させることを特徴とする。
【００３７】
この請求項１６の発明によれば、表示されている画面のキャプチャを防止でき、画面の内容を保護することができる。
【００３８】
また、請求項１７の発明にかかるプログラムは、前記請求項９〜１６のいずれか一つに記載の方法をコンピュータに実行させることを特徴とする。
【発明の効果】
【００３９】
本発明にかかるキャプチャ保護装置、キャプチャ保護方法およびそのプログラムによれば、キャプチャプログラムの起動をより正確に検出できるため、このキャプチャプログラムによる画面のキャプチャを防止し画面の表示内容を保護することができるという効果を奏する。
【発明を実施するための最良の形態】
【００４０】
以下に添付図面を参照して、この発明にかかるキャプチャ保護装置、キャプチャ保護方法およびそのプログラムの好適な実施の形態を詳細に説明する。
【００４１】
（キャプチャ保護システムの全体構成）
図１は、この発明のキャプチャ保護システムを示す全体構成図である。サーバ１には、更新可能に常に最新のキャプチャテーブル１０が格納されている。クライアント３は、インターネット等のネットワーク２を介してサーバ１にアクセスし、最新のキャプチャテーブル１０を取得（ダウンロード：ＤＬ）し、キャプチャライブラリ１５内部のキャプチャテーブル１０に更新保持する。キャプチャライブラリ１５は、図示しないＨＤＤ等の格納手段の記憶領域を用いて形成される。
【００４２】
クライアント３は、ネットワーク２を介してコンテンツサーバ５や、配布された記録媒体等を介して取得した画面（以下、キャプチャ保護対象をコンテンツと称する）を表示部３ａに表示可能である。そして、このこのクライアント３は、表示画面をキャプチャするキャプチャプログラムをインストールすることにより、表示部３ａに表示状態の画面をキャプチャ（データ取得）可能である。クライアント３において各種プログラムを実行し、制御するＣＰＵ等を含むシステムをシステム３ｂとした。
【００４３】
クライアント３は、キャプチャプログラムの起動を検出するキャプチャ保護手段３ｃを備えている。このキャプチャ保護手段３ｃは、クライアント３のシステム３ｂに設けられたＣＰＵ等によりアプリケーション（プログラム）を実行することにより構成されている。キャプチャ保護手段３ｃは、キャプチャライブラリ１５に格納された最新のキャプチャテーブル１０を参照して、クライアント３のキャプチャプログラムの起動を検出する検出機能と、検出時に表示されている画面のキャプチャを防ぐためのキャプチャ防止制御機能とを有している。キャプチャテーブル１０には、流通している複数のキャプチャプログラムの起動を検出するためのプロセス情報が記載されている。キャプチャ保護手段３ｃが実行するキャプチャ保護の動作の詳細は後述する。
【００４４】
（キャプチャテーブルの取得処理について）
図２は、キャプチャ保護システムによるキャプチャテーブル１０の取得処理を示すシーケンス図である。図１記載のサーバ１には、キャプチャライブラリ１５、およびキャプチャテーブル１０のバージョンを確認するためのスクリプトが存在している。クライアント３側では、上記のキャプチャ保護手段３ｃとしてキャプチャライブラリ１５を組み込んだアプリケーションが動作する。以下に、クライアント３がサーバ１からキャプチャテーブル１０を取得する手順を説明する。
【００４５】
クライアント３のキャプチャライブラリ１５は、起動した後、サーバ１にキャプチャテーブル１０のバージョンを問い合わせ（ステップＳ１）、サーバ１は、バージョン番号をクライアント３に送信する（ステップＳ２）。そして、クライアント３では、キャプチャライブラリ１５が最新のバーションであるかを確認する（ステップＳ３）。キャプチャライブラリ１５が最新のバーションのときには、サーバ１からの取得（ダウンロード）を行わないが、キャプチャライブラリ１５が最新のバージョンでないときには、サーバ１に対して最新のキャプチャテーブル１０を要求し（ステップＳ４）、サーバ１から最新のキャプチャテーブル１０を取得し（ステップＳ５）、キャプチャライブラリ１５に格納する。この際、サーバ１は、暗号化されたキャプチャテーブル１０を送信し、クライアント３は、このキャプチャテーブル１０を復号したデータをキャプチャライブラリ１５に格納する（ステップＳ６）。
【００４６】
この後、クライアント３のキャプチャ保護手段３ｃ（図１参照）は、定期的にシステム３ｂ上で起動しているアプリケーションのプロセス情報を要求し（ステップＳ７）、起動しているアプリケーションのプロセス情報を取得する（ステップＳ８）。この後、キャプチャプログラムが起動しているか検出する処理を実行する。具体的には、取得したプロセス情報をキャプチャテーブル１０に記述されているプロセス情報と比較して行う（ステップＳ９）。プロセス情報が一致したときには、キャプチャアプリケーションの起動であると検出し、キャプチャ保護の処理を実行する。
【００４７】
（キャプチャプログラムの起動検出について）
次に、キャプチャプログラムの起動検出の処理（図２のステップＳ９における処理）を説明する。キャプチャ保護手段３ｃは、システム３ｂ上で起動している複数のプログラムのうち、キャプチャプログラムを識別して認識する。このために、キャプチャプログラムと認識される実行ファイルを、予めキャプチャテーブル１０に記述しておく。キャプチャ保護手段３ｃは、システム３ｂのオペレーティングシステム（ＯＳ）上で起動しているすべてのプロセスと、キャプチャテーブル１０に定義されている情報を比較することにより、キャプチャプログラムが起動しているかを判断する。
【００４８】
キャプチャ保護手段３ｃにおけるキャプチャプログラムの起動検出は、下記の３項目について行う。
１．プロセス名の確認
２．実行ファイルの正式ファイル名の比較
３．バイナリデータの比較
【００４９】
１．プロセス名の確認について
システム３ｂ上で実行ファイルを実行すると、ＯＳはプロセスの管理を行う。その際の名前はプロセス名としてＡＰＩを介してＯＳから取得可能である。キャプチャ保護手段３ｃは、取得したプロセス名と、キャプチャテーブル１０内に定義されているキャプチャプログラムのプロセス名とを比較し、合致する場合はキャプチャプログラムと判断する。
【００５０】
２．実行ファイルの正式ファイル名の比較について
プロセス名は、実行ファイル名から作成されるため、実行ファイルを任意にリネームしたとき対応してプロセス名が変更されることになる。そのため、ユーザが故意にキャプチャプログラムのプロセス名を変更した場合、上記「１．プロセス名の確認」の処理だけではキャプチャ保護が行えなくなる。これを回避するため、実行ファイルの正式ファイル名の比較を行う。正式ファイル名は、実行ファイルを作成するときに作者が設定する情報の一つである。その情報をキャプチャテーブル１０に予め登録しておき、比較することでキャプチャプログラムと判断する。
【００５１】
３．バイナリデータの比較について
フリーウェア、シェアウェアは、正式ファイル名が存在しない実行ファイルが存在する。このため、キャプチャ保護手段３ｃは、上記「１．プロセス名の確認」、および「２．正式ファイル名の比較」の処理によりキャプチャプログラムが検出できないとき、バイナリデータの比較を用いて検出する。具体的には、実行ファイルの特定の領域を読み込み、その情報をハッシュしたデータを比較する。ハッシュにより比較するデータが肥大化することや、キャプチャテーブルが肥大化することを防ぐことができる。
【００５２】
図３は、キャプチャプログラムの検出に用いるバイナリデータの取得を説明するための図表である。システム３ｂ上で起動している実行ファイル内において、キャプチャプログラムの検出に用いるバイナリデータは、６５Ｂｙｔｅ目から１０２４Ｂｙｔｅ分の情報を読み取ることで判断する。
【００５３】
１．６５Ｂｙｔｅ目の判断について
オールドヘッダ３０のサイズは、合計６５Ｂｙｔｅであり、オールドヘッダ３０内の情報は、可変領域のリザーブ（ＲＥＳＥＲＶＥ）も含まれるためサイズ変更が可能となっている。最も改竄されにくい値は、ＷＩＮＩＮＦＯ４１を含むＷＩＮヘッダ４０の内容である。この部分を改竄するとファイルを実行できないと考えられる。ＷＩＮヘッダ４０の位置は可変であり、読み込み時の動作の高速化を考えて６５Ｂｙｔｅ目から読み込む。
【００５４】
ＷＩＮＩＮＦＯ４１は、画面上に表示するウインドウの位置情報である。この実施の形態では、ＯＳとしてＷｉｎｄｏｗｓ（Ｒ）を例に説明している。
【００５５】
２．１０２４Ｂｙｔｅの判断について
ＷＩＮヘッダ４０のサイズは可変であるため、読み込むサイズは正確に判断するのが困難である。１０２４Ｂｙｔｅを超える可能性もある。しかし、読み込み速度の高速化、およびユニークな情報の取得を考えると１０２４Ｂｙｔｅは十分な値である。この読み込む範囲には、ＷＩＮＩＮＦＯ４１と、セグメントテーブルと、リソーステーブルと、常駐名テーブルと、モジュール参照テーブルと、インポート名テーブルと、非常駐名テーブルと、コードセグメント、データセグメント等が含まれる。
【００５６】
３．ハッシュについて
読み込んだバイナリデータのまま直接比較すると処理時間がかかると考えられる。また、キャプチャテーブル１０のサイズが肥大化することにつながるため、例えば、ＭＤ５のハッシュ関数でハッシュした値を比較する（１２８ｂｉｔ）。これにより、「３．バイナリデータの比較」にかかる処理時間を短縮化できるようになる。
【００５７】
図４は、キャプチャ保護の手順を示すフローチャートである。キャプチャ保護手段３ｃの実行内容が記載されている。はじめに、キャプチャ保護処理のための初期化処理を行う（ステップＳ２０）。この初期化処理は、図２を用いて説明したキャプチャテーブル１０のダウンロードや、バージョン確認などの処理が含まれる。この後、キャプチャ保護手段３ｃは、キャプチャテーブル１０（図１参照）を読み込む（ステップＳ２１）。
【００５８】
この後、定期的にシステム３ｂのＯＳ上で起動しているアプリケーションのプロセス情報を取得する。このプロセス情報として、まず「１．プロセス名」を取得する（ステップＳ２２）。また、プロセス名と、実行ファイルパスから「２．正式ファイル名」を取得する（ステップＳ２３）。そして、取得したプロセス名がキャプチャテーブル１０に存在するか判断する（ステップＳ２４）。取得したプロセス名がキャプチャテーブル１０に存在する場合には（ステップＳ２４：Ｙｅｓ）、起動しているアプリケーションがキャプチャプログラムであるとし、キャプチャ保護処理を実行する（ステップＳ２５）。
【００５９】
一方、取得したプロセス名がキャプチャテーブル１０に存在しない場合には（ステップＳ２４：Ｎｏ）、次に、実行ファイルに「２．正式ファイル名」が存在するか判断する（ステップＳ２６）。正式ファイル名が存在したときには（ステップＳ２６：Ｙｅｓ）、次に、この正式ファイル名がキャプチャテーブル１０に存在するか判断する（ステップＳ２７）。正式ファイル名がキャプチャテーブル１０に存在する場合には（ステップＳ２７：Ｙｅｓ）、起動しているアプリケーションがキャプチャプログラムであるとし、キャプチャ保護処理を実行する（ステップＳ２５）。一方、正式ファイル名がキャプチャテーブル１０に存在しない場合には（ステップＳ２７：Ｎｏ）、キャプチャ保護処理を実行せず、処理終了する。
【００６０】
ステップＳ２６の処理において、正式ファイル名が存在しないときには（ステップＳ２６：Ｎｏ）、次に、「３．バイナリデータの比較」の処理を実行する。すなわち、フリーウェアやシェアウェアは、正式ファイル名が存在しない実行ファイルの場合があり、このような場合には、バイナリデータの比較によりキャプチャプログラムの起動を検出する。
【００６１】
まず、この実行プログラムのバイナリデータを読み込み、ハッシュ値を作成する（ステップＳ２８）。読み込むバイナリデータの範囲は、図３に記載された所定範囲（１０２４Ｂｙｔｅ）である。そして、読み込んだハッシュ値と同じハッシュ値がキャプチャテーブル１０に存在するか判断する（ステップＳ２９）。読み込んだハッシュ値と同じハッシュ値がキャプチャテーブル１０に存在する場合には（ステップＳ２９：Ｙｅｓ）、起動しているアプリケーションがキャプチャプログラムであるとし、キャプチャ保護処理を実行する（ステップＳ２５）。一方、読み込んだハッシュ値と同じハッシュ値がキャプチャテーブル１０に存在しない場合には（ステップＳ２９：Ｎｏ）、キャプチャ保護処理を実行せず、処理終了する。
【００６２】
（キャプチャ保護内容について）
キャプチャ保護手段３ｃにおける画面のキャプチャ保護内容は、下記の３項目について行う。図４のステップＳ２５において実行する処理例を挙げる。
１．  対象画面の切り替え
２．  対象画面を隠す
３．  キャプチャプログラムの実行を強制終了させる
【００６３】
１．対象画面の切り替えについて
キャプチャ保護手段３ｃが検出されたキャプチャプログラム（アプリケーション）を直接、内部操作できる場合には、起動しているキャプチャプログラムを内部から操作して表示されている保護対象の画面を切り替え、キャプチャを許可した画面を表示させる。この場合、キャプチャ保護手段３ｃは、予め切り替えて表示するための画面を用意しておく。
【００６４】
２．対象画面を隠す処理について
キャプチャ保護手段３ｃが保護対象の画面を操作できない場合は、保護対象の画面のＺオーダーの上位に、キャプチャを許可した画面を表示させる。なお、Ｚオーダーとは、フォームのＺ軸（奥行）を基準として、ウインドウ（画面）に表示されるコントロールの階層構造を示す。
【００６５】
３．キャプチャソフトのプロセスの実行を強制終了させる処理について
上記１．２．のような画面を保護する方式のほかに、キャプチャソフトのプロセスの実行自体を強制終了させてもよい。上記１．２．の処理による画面の保護が困難なときに有効となる。
【００６６】
ところで、ＶＭＷａｒｅ、ＶｉｒｔｕａｌＰＣ，リモートデスクトップ、ターミナルサービスなどの仮想マシン環境や、リモートデスクトップ環境では、ホスト側ＰＣの環境を制御することはできない。そのため、上記のような仮想マシン環境や、リモートデスクトップ環境の場合には、常にキャプチャソフトが起動している状態と見なして表示されている画面を常時保護（すなわち表示画面のキャプチャ動作をすべて防止）する処理を行う。
【００６７】
上記実施の形態によれば、起動しているプロセスのプロセス名およびリソース情報から、キャプチャプログラムの起動を検出し、表示されている画面のキャプチャを防止するキャプチャ保護が行えるようになる。これに加えて、キャプチャプログラムのリソース情報がない、または空の実行ファイルの場合であっても、バイナリデータを比較することによりキャプチャプログラムであるかを判断できる。これにより、キャプチャプログラムのファイル名が故意に変更されたとしても、キャプチャプログラムを検出できるようになり、キャプチャ保護が行えるようになる。
【００６８】
なお、本実施の形態で説明したキャプチャ保護にかかる方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【００６９】
以上のように、本発明にかかるキャプチャ保護装置、キャプチャ保護方法およびそのプログラムは、キャプチャソフトを用いた画面のキャプチャを防いで画面内容を保護するシステムに有用であり、特に、画面の２次利用等を防ぎ画面等のコンテンツを保護する用途に適している。
【図面の簡単な説明】
【００７０】
【図１】この発明のキャプチャ保護システムを示す全体構成図である。
【図２】キャプチャ保護システムによるキャプチャテーブルの取得処理を示すシーケンス図である。
【図３】キャプチャプログラムの検出に用いるバイナリデータの取得を説明するための図表である。
【図４】キャプチャ保護の手順を示すフローチャートである。
【符号の説明】
【００７１】
１  サーバ
２  ネットワーク
３  クライアント
３ａ  表示部
３ｂ  システム
３ｃ  キャプチャ保護手段
５  コンテンツサーバ
１０  キャプチャテーブル
１５  キャプチャライブラリ
【図１】
2005227990.tif 000003
【図２】
2005227990.tif 000004
【図３】
2005227990.tif 000005
【図４】
2005227990.tif 000006