説明

ソフトウェアプロテクト装置およびプロテクタ

【課題】 実行に際してプロテクタの接続を要するアプリケーションを複数使用する場合であっても、プロテクタの接続に専有される外部機器との接続用のインターフェイスを減らし、該インターフェイスを有効利用することができるソフトウェアプロテクト装置およびプロテクタを提供すること。
【解決手段】 接続インターフェイスにアプリケーションの実行を許可するプロテクト情報を記憶したプロテクタが接続されているときにのみ該アプリケーションを実行するソフトウェアプロテクト装置において、ある接続インターフェイスに接続されたプロテクタに記憶された特定のプロテクト情報を、他の接続インターフェイスに接続された他のプロテクタに移動する旨の指示を受付ける。この指示を受付けたとき、移動元のプロテクタに記憶されたプロテクト情報を移動先のプロテクタに記憶する。さらに、移動先のプロテクタに書込んだプロテクト情報を移動元のプロテクタから削除する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステム等で使用されるソフトウェアのライセンス保護等に利用されるソフトウェアプロテクト装置およびプロテクタに関する。
【背景技術】
【0002】
ライセンスが付与されていない者によるソフトウェアの不正使用を防止する方法には、主にソフトウェアプロテクト方式とハードウェアプロテクト方式とがある。
【0003】
ソフトウェアプロテクト方式は、あらかじめメモリの所定領域にプロテクト用のコードを登録しておき、このコードをアプリケーションの実行プログラムが適宜監視する。そして、アプリケーションに対応するプロテクト用のコードが登録されているときにはアプリケーションの実行を続行し、登録されていない場合にはライセンス違反であると判定されて、アプリケーションの実行が中止される。
【0004】
一方、ハードウェアプロテクト方式では、アプリケーションソフトウェアと共に所定のインターフェイスを介してコンピュータシステムに接続できるプロテクタを提供する。アプリケーションファイル及びプロテクタの記憶セクションには、同一のプロテクト用のコードが登録されており、コンピュータシステムがアプリケーションを実行する際に両者のコードを参照して一致するときにのみ当該アプリケーションを実行可能とする。プロテクタがコンピュータシステムに接続されていないとき、或いは両者のコードが一致しないときには、ライセンス違反であると判定されて、当該アプリケーションの実行は中止される。
【0005】
また、上記のようなソフトウェアプロテクト方式及びハードウェアプロテクト方式以外にも種々のソフトウェアプロテクト方式が提案されている。(例えば、特許文献1を参照)
【特許文献1】特開2006―195826号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ハードウェアプロテクト方式では、1つのアプリケーションに対して1つのプロテクタが提供される。すなわち、複数のアプリケーションを1つのコンピュータシステムで使用する場合には、コンピュータシステムに使用するアプリケーションの数と同数のプロテクタを接続する必要がある。そのため、プロテクタとの接続に使用できるインターフェイスの数により、使用可能なアプリケーションの数に制限があった。さらに、複数のプロテクタを接続することで、インターフェイスを他の機器等との接続に有効利用できないという不都合が生じていた。
【0007】
本発明は、上記のような事情に鑑みてなされたもので、その目的は、実行に際してプロテクタの接続を要するアプリケーションを複数使用する場合であっても、プロテクタの接続に専有される外部機器との接続用のインターフェイスを減らし、該インターフェイスを有効利用することができるソフトウェアプロテクト装置およびプロテクタを提供することである。
【課題を解決するための手段】
【0008】
本発明は、外部装置との接続インターフェイスを複数有し、アプリケーションの実行に際して、前記接続インターフェイスのいずれか1つに該アプリケーションの実行を許可するプロテクト情報を記憶したプロテクタが接続されているときに該アプリケーションの実行を許可するソフトウェアプロテクト装置において、前記接続インターフェイスのいずれか1つに接続された第1のプロテクタに記憶されたプロテクト情報を前記接続インターフェイスの他の1つに接続された第2のプロテクタに記憶する情報記憶手段と、この情報記憶手段が前記第2のプロテクタに記憶した前記プロテクト情報を、前記第1のプロテクタから削除する情報削除手段と、を具備してなることを特徴としている。
【発明の効果】
【0009】
かかる手段を講じた本発明によれば、実行に際してプロテクタの接続を要するアプリケーションを複数使用する場合であっても、プロテクタの接続に専有される外部機器との接続用のインターフェイスを減らし、該インターフェイスを有効利用することができるソフトウェアプロテクト装置およびプロテクタを提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明に係るソフトウェアプロテクト装置をパーソナルコンピュータなどのコンピュータシステムに適用した例について、図面を参照して説明する。
図1は、コンピュータシステム1の制御回路を示すブロック図である。各種プログラムの実行などコンピュータシステム1の制御主体となる制御部10に、プロテクト情報管理部11,プロテクト情報判定部12,アプリケーション実行部13,入力部14,表示部15,記憶部16,および外部との接続用の複数のインターフェイス20が接続されている。
【0011】
記憶部16は、当該システム1で実行される各種プログラムなどのデータを一時的に記憶するRAMや、アプリケーションの実行プログラムなどを有するn(整数;>0)個のアプリケーションファイル40-1〜40-nが記憶されたハードディスクドライブなどから構成されている。アプリケーションファイル40-1〜40-nが当該システム1にインストールされる際には、内部に記憶部を有するプロテクタ30がそれぞれ1つ用意されている。このプロテクタ30の記憶部には、アプリケーションの実行に必要なプロテクト情報が記憶されており、このプロテクト情報は、図4の説明にて後述する処理でのみ他のプロテクタ30へ移動が可能である。なお、このプロテクタ30は、インターフェイス20に接続可能であり、プロテクト情報が複数記憶可能となっている。
【0012】
プロテクト情報管理部11は、いずれかのインターフェイス20に接続されたプロテクタ30に記憶されたプロテクト情報の管理を司る。プロテクト情報判定部12は、アプリケーションの実行に際してプロテクタ30が有するプロテクト情報に基づきその実行の可否を判定する。アプリケーション実行部13は、記憶部内に記憶されたアプリケーションファイル40-1〜40-nの中から実行が命令されたものの実行ファイルを呼出して実行する。入力部14は、コンピュータシステム1に接続されたキーボードやポインティングデバイスなどの入力機器による入力信号を処理する。表示部15は、コンピュータシステム1に接続されたディスプレイに各種処理内容たとえば実行されたアプリケーションの処理画面等を表示せしめる。
【0013】
図2は、記憶部16に記憶されたアプリケーションファイル40-1〜40-nのデータ構造の一例を示す模式図である。アプリケーションファイル40-1〜40-nは、アプリケーションごとに割当てられた一意のアプリケーションID,アプリケーションの名称,アプリケーションの実行プログラム及びアプリケーションの実行に必要な各種アプリケーションデータなどを有する。
【0014】
図3は、プロテクタ30の記憶部に記憶されたデータ31の構造の一例を示す模式図である。データ31は、プロテクタ30に割当てられた一意のプロテクタID及び登録されているプロテクト情報の登録数を記憶するためのデータエリアが割当てられ、プロテクト情報を構成するアプリケーションID及びプロテクト情報ごとに割当てられたライセンスコードを記憶するためのデータエリアが複数割当てられている。
【0015】
次に、上記のような構成による作用について説明する。
図4は、システム起動から終了までにコンピュータシステム1の制御回路で実行される処理の流れである。ユーザからの指示によりシステム起動が開始されると、制御部10は、ST1として各デバイスを初期化してOS(Operation System)を立ち上げる。システム起動が完了すると、制御部10は、ST2としてコンピュータシステム1が有する機能の選択入力を受付けたか否かを判定する。制御部10は、機能の選択入力受付けていないと判定したとき(ST2のNo)には、再びST2の処理を行う。すなわち、制御部11は、機能の選択入力を受付けるまで待機することとなる。ここで選択入力が可能な機能としては、少なくともいずれかのインターフェイス20に接続されたプロテクタ30から他のプロテクタ30へのプロテクト情報の移動、特定のアプリケーションの実行、そしてシステムの終了の3種類がある。ST2の処理にて機能の選択入力を受付けたと判定したとき(ST2のYes)には、制御部10は、ST3として選択入力を受付けた機能が上記3つの機能のうちいずれであるかを判定する。
【0016】
ST3の処理にて選択入力を受付けた機能が特定のアプリケーションの実行であったとき(ST3の“アプリケーション実行”)、制御部10は、プロテクト情報判定部12に選択入力されたアプリケーションの実行可否を判断するよう命令し、この命令を受けたプロテクト情報判定部12は、ST4として選択入力されたアプリケーションのアプリケーションIDを該当するアプリケーションファイル40-1〜40-nから取得する。さらに、プロテクト情報判定部12は、ST5としてインターフェイス20のいずれかに接続されたプロテクタ30のプロテクト情報を検索し、同一のアプリケーションIDが記憶されているか否かを判断する。
【0017】
インターフェイス20に接続されたいずれかのプロテクタ30に、アプリケーションファイルから取得したアプリケーションIDが記憶されているとき(ST5のYes)、プロテクト情報判定部12は、アプリケーション実行部13に該アプリケーションの実行を命令し、これを受けたアプリケーション実行部13は、ST6としてアプリケーションファイル40-1〜40-nの中から該当するアプリケーションファイルを読み出して、その実行プログラムを実行する。しかる後、ST2の処理に戻り、制御部10が再び機能の選択入力を待機する。
【0018】
一方、インターフェイス20に接続されたいずれかのプロテクタ30に、選択入力されたアプリケーションIDが記憶されていないとき(ST5のNo)、プロテクト情報判定部12は、アプリケーション実行部13にアプリケーションの実行を命令せずにST2の処理に戻り、制御部10は、再び機能の選択入力を待機する。
【0019】
次に、ST3の処理にて選択入力を受付けた機能がプロテクト情報の移動であったとき(ST3の“プロテクト情報移動”)、制御部10は、ST7として表示部15に接続されたディスプレイにプロテクト情報移動の条件入力を受付けるためのプロテクト情報移動画面を表示し、入力部14に接続されたキーボードやポインティングデバイスからの入力を受付ける(移動受付手段)。
【0020】
図5は、ST7の処理にて表示部15に接続されたディスプレイに表示されるプロテクト情報移動画面50の一例を示す模式図である。該画面50は、移動元のプロテクタ30および移動するプロテクト情報の選択に使用される移動元画面51、移動先のプロテクタ30の選択に使用される移動先画面56、入力された情報での移動を確定する際に操作されるOK釦59、及び入力された情報をキャンセルする際に操作されるキャンセル釦60を有している。
【0021】
さらに、移動元画面51には、移動元のプロテクタ30を選択入力するためのリストボックス52、リストボックス52で選択されたプロテクタ30に登録されているプロテクト情報の登録数を表示する表示ボックス53、リストボックス52で選択されたプロテクタ30に登録されているプロテクト情報のアプリケーションIDを選択入力するためのリストボックス54(選択受付手段)、リストボックス54で選択入力されたアプリケーションIDに対するライセンスコードをユーザが入力するためのテキストボックス55が配置されている(入力受付手段)。
【0022】
一方、移動先画面56には、移動先のプロテクタ30を選択入力するためのリストボックス57及びこのリストボックス57で選択されたプロテクタに登録されているプロテクト情報の登録数を表示する表示ボックス58が配置されている。
【0023】
ここで、リストボックス52の右方にはインターフェイス20に接続されたプロテクタ30のプロテクタIDをリスト表示するための表示釦52aが、リストボックス54の右方にはリストボックス52で選択されたプロテクタ30に記憶されたプロテクト情報が有するアプリケーションIDをリスト表示するための表示釦54aが、リストボックス57の右方にはインターフェイス20に接続されたプロテクタ30のプロテクタIDをリスト表示するための表示釦57aがそれぞれ表示されている。
【0024】
ここで、一例としてユーザによるポインティングデバイスの操作により表示釦52aが操作されたときに表示部15に接続されたディスプレイに表示されるプロテクト情報移動画面61を図6に示す。リストボックス52には、いずれかのインターフェイス20に接続されたプロテクタ30のプロテクタIDが“00000001”,“00000002”,“00000003”のように選択可能にリスト表示される。
【0025】
このようなプロテクト情報移動画面50を用いて移動元のプロテクタ30のプロテクタID,移動するプロテクト情報のアプリケーションID,及び移動先のプロテクタ30のプロテクタIDが選択入力され、さらに移動するプロテクト情報のライセンスコードが入力された状態でOK釦59が操作されたとき、制御部10は、ST8として入力されたライセンスコードの判定処理を実行する(判定手段)。この処理では、リストボックス54に選択入力されたアプリケーションIDで特定される移動元のプロテクタ30に記憶されたプロテクト情報のライセンスコードと、ユーザがテキストボックス55に入力したライセンスコードとが一致するか否かが判定される。
【0026】
そして、ライセンスコードが一致したとき(ST8のYes)には、制御部10は、プロテクト情報管理部11に対してプロテクト情報移動画面50に入力された内容でプロテクト情報を移動するように命令する。そして、この命令を受けたプロテクト情報管理部11は、ST9としてプロテクト情報の移動処理を実行する。
【0027】
ここで、プロテクト情報管理部11が実行するプロテクト情報移動処理の手順の一例を、図7,図8,図9及び図10を用いて具体的に説明する。図7は、プロテクタID“00000001”で特定される移動元のプロテクタ30aに記憶されたデータ32の構造の一例を示す模式図である。データ32は、アプリケーションID“00000101”とライセンスコード“AP2221234”とからなるプロテクト情報を有している。図8は、プロテクタID“00000002”で特定される移動先のプロテクタ30bに記憶されたデータ33の構造の一例を示す模式図である。データ33は、アプリケーションID“00000102”とライセンスコード“AP1114321”とからなるプロテクト情報を有している。図9は、プロテクタ30aに記憶されたプロテクト情報がプロテクタ30bに移動された後にプロテクタ30bに記憶されるデータ34の構造の一例を示す模式図である。図10は、プロテクタ30aに記憶されたプロテクト情報がプロテクタ30bに移動された後にプロテクタ30bに記憶されるデータ35の構造の一例を示す模式図である。
【0028】
まず、制御部10からプロテクト情報移動の命令を受けたプロテクト情報管理部11は、移動元に選択されたプロテクタ30に記憶されたプロテクト情報のうち移動対象に選択されたプロテクト情報を記憶部16の一時メモリに取得し、この一時メモリに記憶したプロテクト情報を移動先に選択されたプロテクタ30に記憶する(情報記憶手段)。
【0029】
すなわち、図7に示したデータ32が有するアプリケーションID“00000101”及びライセンスコード“AP2221234”からなるプロテクト情報が移動対象に選択された場合には、そのプロテクト情報が図8に示したデータ33に記憶され、その結果プロテクタ30bには、図9に示したデータ34のようにアプリケーションID“00000101”及びライセンスコード“AP2221234”とからなるプロテクト情報と、アプリケーションID“00000102”及びライセンスコード“AP1114321”とからなるプロテクト情報が記憶され、登録数が“2”にカウントアップされた状態となる。
【0030】
次に、プロテクト情報管理部11は、記憶部16の一時メモリに記憶したプロテクト情報と同一のプロテクト情報、すなわち移動対象に選択されたプロテクト情報を移動元に選択されたプロテクタ30から削除する(情報削除手段)。
【0031】
すなわち、図7に示したデータ32が有するアプリケーションID“00000101”及びライセンスコード“AP2221234”とからなるプロテクト情報が削除され、その結果プロテクタ30aには、図10に示したデータ35のようにプロテクト情報が記憶されておらず、登録数が“0”にカウントダウンされた状態となる。
【0032】
一方、ST8の処理にてライセンスコードが一致しなかったとき(ST8のNo)、制御部10は、プロテクト情報管理部11にプロテクト情報の移動を命令せずにST2の処理に戻り、再び機能の選択入力を待機する。
【0033】
このように、移動元のプロテクタ30aに記憶された移動対象のプロテクト情報は、入力されたライセンスコードが一致したときにのみ移動先のプロテクタ30bに記憶される。また、その際には移動元のプロテクタ30aから移動対象のプロテクト情報が削除されるので、不正にプロテクト情報がコピーされることもない。
【0034】
次に、ST3の処理にて選択入力を受付けた機能が終了であったとき(ST3の“終了”)、制御部10は、ST10として各デバイスの終了処理を実行して当該処理を終了する。
【0035】
本実施形態で説明したように、本発明によれば、特定のアプリケーションに対するプロテクト情報を1つのプロテクタに複数記憶できるので、実行に際してプロテクタの接続を要するアプリケーションを同一のコンピュータシステムで複数使用する場合であってもそれらアプリケーションと同数のプロテクタを接続する必要がない。そのため、プロテクタとの接続に専有される外部機器との接続用のインターフェイスが減り、該インターフェイスを有効活用できる。
【0036】
また、移動元のプロテクタから移動先のプロテクタへプロテクト情報を移動する際には、ライセンスコードの入力を要する構成であるため、不正なプロテクト情報のコピーも防止できる。
【0037】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【0038】
例えば、プロテクト情報の移動受付手段は、プロテクト情報移動画面50からの選択入力による受付けに限定されず、他の方法により移動元,移動先のプロテクタ30および移動するプロテクト情報の選択を受付けてもよい。
【0039】
また、ST9の処理におけるプロテクト情報の移動において、移動先のプロテクタ30bに移動対象のプロテクト情報を記憶した後に移動元のプロテクタ30aから移動対象のプロテクト情報を消去するのではなく、移動元のプロテクタ30aから移動対象のプロテクト情報を記憶部16の一時メモリに取得するとともにプロテクタ30aから移動対象のプロテクト情報を削除し、その後に記憶部16の一時メモリに格納した移動対象のプロテクト情報を移動先のプロテクタ30bに記憶してもよい。
【0040】
この他、前記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される構成要素から幾つかの構成要素を削除しても良い。
【図面の簡単な説明】
【0041】
【図1】本発明の一実施形態におけるコンピュータシステムの制御回路を示すブロック図。
【図2】同実施形態におけるアプリケーションファイルのデータ構造の一例を示す模式図。
【図3】同実施形態においてプロテクタに記憶されたデータ構造の一例を示す模式図。
【図4】同実施形態においてコンピュータシステムの制御回路で実行される処理の流れ図。
【図5】同実施形態におけるプロテクト情報移動画面の一例を示す模式図。
【図6】同実施形態におけるプロテクト情報移動画面の一例を示す模式図。
【図7】同実施形態においてプロテクタに記憶されたデータ構造の一例を示す模式図。
【図8】同実施形態においてプロテクタに記憶されたデータ構造の一例を示す模式図。
【図9】同実施形態においてプロテクタに記憶されたデータ構造の一例を示す模式図。
【図10】同実施形態においてプロテクタに記憶されたデータ構造の一例を示す模式図。
【符号の説明】
【0042】
1…コンピュータシステム、10…制御部、11…プロテクト情報管理部、12…プロテクト情報判定部、13…アプリケーション実行部、14…入力部、15…表示部、16…記憶部、20…インターフェイス、30…プロテクタ、50…プロテクト情報移動画面

【特許請求の範囲】
【請求項1】
外部装置との接続インターフェイスを複数有し、アプリケーションの実行に際して、前記接続インターフェイスのいずれか1つに該アプリケーションの実行を許可するプロテクト情報を記憶したプロテクタが接続されているときに該アプリケーションの実行を許可するソフトウェアプロテクト装置において、
前記接続インターフェイスのいずれか1つに接続された第1のプロテクタに記憶されたプロテクト情報を前記接続インターフェイスの他の1つに接続された第2のプロテクタに記憶する情報記憶手段と、
この情報記憶手段が前記第2のプロテクタに記憶した前記プロテクト情報を、前記第1のプロテクタから削除する情報削除手段と、
を具備してなることを特徴とするソフトウェアプロテクト装置。
【請求項2】
前記接続インターフェイスのいずれか1つに接続された前記第1のプロテクタに記憶されたプロテクト情報を、前記接続インターフェイスの他の1つに接続された前記第2のプロテクタに移動する旨の指示を受付ける移動受付手段、
をさらに備え、
この移動受付手段がプロテクト情報を移動する旨の指示を受付けたとき、前記情報記憶手段は、前記第1のプロテクタに記憶されたプロテクト情報を前記第2のプロテクタに記憶し、前記情報削除手段は、前記情報記憶手段が前記第2のプロテクタに記憶した前記プロテクト情報を前記第1のプロテクタから削除することを特徴とする請求項1に記載のソフトウェアプロテクト装置。
【請求項3】
前記プロテクト情報は、前記プロテクト情報ごとに割当てられたライセンスコードを有し、
前記移動受付手段は、
前記第1のプロテクタに記憶されたプロテクト情報の中から移動対象となるプロテクト情報の選択を受付ける選択受付手段と、
この選択受付手段が受付けた前記移動対象のプロテクト情報が有する前記ライセンスコードの入力を受付ける入力受付手段と、
この入力受付手段が入力を受付けた前記ライセンスコードと前記移動対象のプロテクト情報が有する前記ライセンスコードとに基づいて移動を許可するか否かを判定する判定手段と、
を備え、
前記判定手段が前記プロテクト情報の移動を許可したときにのみ、前記情報記憶手段が前記第2のプロテクタに前記移動対象のプロテクト情報を書込み、前記情報削除手段が前記第1のプロテクタから前記移動対象のプロテクト情報を削除することを特徴とする請求項1又は2に記載のソフトウェアプロテクト装置。
【請求項4】
コンピュータシステム上で稼動するアプリケーションの実行を許可するプロテクト情報を記憶したプロテクタであって、複数の前記プロテクト情報を記憶可能な記憶手段を有することを特徴とするプロテクタ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−163483(P2009−163483A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2008−184(P2008−184)
【出願日】平成20年1月4日(2008.1.4)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】