(57)【特許請求の範囲】
【請求項１】
ユーザコンピュータと、
目的とするソフトウェアをインストールするインストーラが記憶され、該ユーザコンピュータにより読み書き可能な記憶媒体と、
ベンダーコンピュータと、
を有するコンピュータシステムにおいて、
該ユーザコンピュータは該インストーラに従って、
該ユーザコンピュータのマシン識別コードを読み取り、該インストーラにパスワードが設定されているか否かを判定し、
該パスワードが該インストーラに設定されていないと判定した場合には、
該マシン識別コード及び該ソフトウェアの識別コードを含むユーザ登録情報を該ベンダーコンピュータに送信し、
該ベンダーコンピュータからパスワードを受信し、
該記憶媒体に記憶されたインストーラを、該パスワードが設定されたインストーラに更新し、
この更新の後に、目的とするソフトウェアを該ユーザコンピュータの記憶媒体にインストールし、
該パスワードが該インストーラに設定されていると判定した場合には、
該パスワードと該マシン識別コードとの間で所定演算を行ってその演算結果を取得し、
該演算結果が、該インストーラに設定されている許可値に一致したか否かを判定し、
該演算結果が、該許可値に一致したと判定したときには、該インストールを実行し、該演算結果が該許可値に一致しなかったと判定したときには、不正使用事実を前記ベンダーコンピュータに送信し、
該ベンダーコンピュータは、該ユーザコンピュータから、該マシン識別コード及び該ソフトウェアの識別コードを含む該ユーザ登録情報を受信して登録し、該マシン識別コードと該ソフトウェア識別コードにより定まる定数との間で前記所定演算の逆演算を行ってその演算結果をパスワードとし、該パスワードを該ユーザコンピュータに送信する、
ことを特徴とするコンピュータシステム。
【請求項２】
ユーザコンピュータと、
目的とするソフトウェアをインストールするインストーラが記憶され、該ユーザコンピュータにより読み書き可能な記憶媒体と、
ベンダーコンピュータと、
を有するコンピュータシステムにおいて、
該ユーザコンピュータは該インストーラに従って、
該ユーザコンピュータのマシン識別コードを読み取り、該インストーラにパスワードが設定されているか否かを判定し、
該パスワードが該インストーラに設定されていないと判定した場合には、
該マシン識別コード及び該ソフトウェアの識別コードを含むユーザ登録情報を該ベンダーコンピュータに送信し、
該ベンダーコンピュータからパスワードを受信し、
該記憶媒体に記憶されたインストーラを、該パスワードが設定されたインストーラに更新し、
この更新の後に、目的とするソフトウェアを該ユーザコンピュータの記憶媒体にインストールし、
該パスワードが該インストーラに設定されていると判定した場合には、
該パスワードと該マシン識別コードとの間で所定演算を行ってその演算結果を取得し、
該演算結果が、該インストーラに設定されている許可値に一致したときのみ、該インストールを実行し、該演算結果が該許可値に一致しなかったときには、インストール対象の記憶媒体に無意味なファイルを生成して、該インストール対象の記憶媒体の空き領域を、該目的とするソフトウェアのインストールに必要な領域以下にする、
ことを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ソフトウェア不正使用防止機能を備えたコンピュータシステムに関する。
【０００２】
【従来の技術】
ソフトウェアの不正使用は、ソフトウェア会社の存立に関わるので、各種の不正使用防止方法が提案されている。
第１の方法（特開平５−２０４９４５号公報）では、ソフトウェアの製品版を暗号化し、暗号化していない試用版と共にＣＤＲＯＭに記録し、これを無料配布しておき、試用版を実行して気に入ったら、ソフトウェア販売会社のベンダーコンピュータにユーザコンピュータを電話回線で接続して注文し、パスワードを受信し、暗号化ソフトウェアを複号して通常のコードに戻す。
【０００３】
詳説すれば、ユーザは、マシン識別コードメモリ及び暗号解読ＩＣを備えたＣＤＲＯＭ駆動装置及びＣＤＲＯＭ用システムプログラムが記録されたフロッピーディスクを購入した後、ユーザ登録葉書にユーザ情報を記入してソフトウェア販売会社に送付し、ソフトウェア販売会社は、このユーザ情報をベンダーコンピュータに登録し、ユーザへＣＤＲＯＭを無料配布する。
【０００４】
ユーザは、これらフロッピーディスク及びＣＤＲＯＭをユーザコンピュータに装着し、フロッピーディスク内のＣＤＲＯＭ用システムプログラムを起動し、処理メニューの中の購入手続き処理を実行させ、ソフトウェア注文情報をキーボードから入力する。ユーザコンピュータは、これに応答して、電話回線を介しソフトウェア販売会社のベンダーコンピュータに接続し、マシン識別コードを含むソフトウェア注文情報を送信する。
【０００５】
ベンダーコンピュータは、このソフトウェア注文情報に基づいて、販売許否判定を行い、販売を許可すると、注文したソフトウェアに対応したパスワードを、電話回線を介しユーザコンピュータへ送信する。
ユーザコンピュータは、このパスワードとマシン識別コードとを合成して照合用パスワードを生成し、これをＣＤＲＯＭ駆動装置内の照合用登録パスワードと比較し、両者が一致すれば、ＣＤＲＯＭ駆動装置内の暗号解読ＩＣにより、ＣＤＲＯＭ内の暗号化されたソフトウェアを複号して通常のコードに変換し、ソフトウェアを利用可能にする。
【０００６】
このような第１方法では、暗号化されたソフトウェアの不正使用を防止できるが、通常のコードに変換され後のソフトウェアをコピーして不正使用するのを防止できない。
そこで、第２の方法（特開平５−３３４０７２号公報）では、実行形式のソフトウェアモジュールに、例外処理命令及び製品番号を含む資格検証トリガを挿入しておく。ソフトウェア販売会社は、ユーザーからのソフトウェア注文に応じ、ユーザのマシン識別コード及びソフトウェア製品番号に基づいて、暗号化された資格付与キーを生成し、これをユーザに与える。ユーザは、注文したソフトウェアの実行前に、資格付与キーをユーザコンピュータに入力しておく。注文したソフトウェアを実行し、資格検証トリガに出会うと、例外処理ルーチンが実行される。すなわち、ユーザコンピュータのマシン識別コードが読み取られ、マシン識別コードに基づいて資格付与キーが解読され、解読された資格付与キー中の製品番号が、資格検証トリガ中の製品番号と比較され、両者が一致すれば資格検証トリガの次の命令を実行し、不一致であれば処理を終了する。
【０００７】
【発明が解決しようとする課題】
上記第１の方法では、最初、異なるソフトウェア販売会社毎に、ユーザ登録葉書にユーザ情報を記入してソフトウェア販売会社に送付し、このユーザ情報をベンダーコンピュータに予め登録しておかなければならならず、また、所望のソフトウェア以外に、注文用ソフトウェアが必要になる。さらに、特別な暗号解読ＩＣが必要となるので、コスト高になる。
【０００８】
また、第２の方法では、各種条件下で実行の際に必ず資格検証トリガに出会うように、ソフトウェアモジュールに多数の資格検証トリガを挿入しなければならない。使用条件によっては、資格検証トリガに出会わない場合が生じ、不正使用が可能になる。必ず資格検証トリガに出会うようにするには、ソフトウェアモジュール毎に、資格検証トリガ挿入位置を決定する必要があるので、煩雑である。
【０００９】
本発明の目的は、上記問題点に鑑み、簡単な構成又は手続きで不正使用を防止することが可能な、ソフトウェア不正使用防止機能を備えた記憶媒体、コンピュータ及びコンピュータシステムを提供することにある。
【００１０】
本発明の第１態様では、ユーザコンピュータと、目的とするソフトウェアをインストールするインストーラが記憶され、該ユーザコンピュータにより読み書き可能な記憶媒体と、ベンダーコンピュータと、を有するコンピュータシステムにおいて、
該ユーザコンピュータは該インストーラに従って、
該ユーザコンピュータのマシン識別コードを読み取り、該インストーラにパスワードが設定されているか否かを判定し、
該パスワードが該インストーラに設定されていないと判定した場合には、
該マシン識別コード及び該ソフトウェアの識別コードを含むユーザ登録情報を該ベンダーコンピュータに送信し、
該ベンダーコンピュータからパスワードを受信し、
該記憶媒体に記憶されたインストーラを、該パスワードが設定されたインストーラに更新し、
この更新の後に、目的とするソフトウェアをインストールし、
該パスワードが該インストーラに設定されていると判定した場合には、
該パスワードと該マシン識別コードとの間で所定演算を行ってその演算結果を取得し、
該演算結果が、該インストーラに設定されている許可値に一致したか否かを判定し、
該演算結果が、該許可値に一致したと判定したときには、該インストールを実行し、該演算結果が該許可値に一致しなかったと判定したときには、不正使用事実を前記ベンダーコンピュータに送信し、
該ベンダーコンピュータは、該ユーザコンピュータから、該マシン識別コード及び該ソフトウェアの識別コードを含む該ユーザ登録情報を受信して登録し、該マシン識別コードと該ソフトウェア識別コードにより定まる定数との間で前記所定演算の逆演算を行ってその演算結果をパスワードとし、該パスワードを該ユーザコンピュータに送信する。
【００１１】
この態様によれば、インストーラ本体に簡単な構成を付加することにより、マシン識別コードの異なるユーザコンピュータでのインストールができなくなるので、不正使用が防止され、かつ、インストーラと別個の注文用ソフトウェアが不要となり、さらに、初回インストーラ実行の際に、通信によりユーザ登録及びパスワードＰＷの送受が行われるので、ユーザ側及びベンダー側の手間が省ける。
【００１２】
また、初回インストーラの実行によりインストーラ本体も実行されてインストールが行われるため、ユーザ側の手間が省ける。
【００１３】
さらに、ベンダー側において不正インストールを自動的に把握でき、不正インストールに対する救済が容易になり、結果として不正インストール防止効果が高められる。
本発明の第２態様では、上記インストーラは、上記演算結果が上記許可値に一致しなかったときには、インストール対象の記憶媒体に無意味なファイルを生成して、該記憶媒体の空き領域を、上記目的とするソフトウェアのインストールに必要な領域以下にする（４９）プログラムを有する。
【００１４】
この第２態様によれば、不正な再インストールの試行が防止される。
【００２１】
【実施例】
以下、図面に基づいて本発明の一実施例を説明する。
図６は、不正使用防止機能を備えたコンピュータシステムの概略構成を示す。ユーザコンピュータ１０は、 一般的な構成であり、プログラムに従って処理を実行するＭＰＵ１１と、ＩＰＬ等が格納されたＲＯＭ１２と、プログラム及びデータを一時格納するためのＲＡＭ１３と、各種インタフェース回路を含む入出力インタフェース１４との間が、バス１５で接続されている。入出力インタフェース１４には、キーボード１６、表示装置１７、フロッピーディスクドライバ１８、ハードディスクドライバ１９及び通信カード２０が接続されている。
【００２２】
フロッピーディスク１８１には、ベンダーから購入したアプリケーションソフトウェアが記憶されている。このアプリケーションソフトウェアは、図７に示す如く、インストーラＭ０と、モジュールＭ１〜Ｍ４とからなり、モジュールＭ１〜Ｍ４はインストーラＭ０により、図６のハードディスク１９１にインストールされる。インストーラＭ０を使用せずにモジュールＭ１〜Ｍ４をフロッピーディスク１８１からハードディスク１９１へコピーしても実行できないようにするために、モジュールＭ１〜Ｍ４はそれぞれ暗号化モジュールＭ１Ｂ〜Ｍ４Ｂにされて、フロッピーディスク１８１に記憶されている。ハードディスク１９１には、ＯＳがインストールされており、ＯＳは電源投入時にＲＡＭ１３にロードされる。通信カード２０には、ＭＰＵ１１により読み込み可能な不揮発性のマシン識別コードＭＩＤを有する。
【００２３】
通信カード２０は、通信回線２１を介してベンダーコンピュータ３０に接続され、ユーザコンピュータ１０とベンダーコンピュータ３０との間で双方向通信可能となっている。
［１］不正使用防止の為のインストーラ
ＲＡＭ１３にロードされたＯＳの下でインストーラＭ０を実行すると、ＯＳによりインストーラＭ０がＲＡＭ１３上にロードされ、インストーラＭ０により図１に示す処理が行われて、モジュールＭ１〜Ｍ４がハードディスク１９１へインストールされる。以下、括弧内の数値は図中のステップ識別番号を表す。
【００２４】
（４０）マシン識別コードＭＩＤを読み込み、ＲＡＭ１３に書き込む。
（４１）フロッピーディスク１８１上のインストーラＭ０をファイルオープンし、先頭から順次読み込み、後述のパスワードＰＷ設定領域からパスワードＰＷを読み込む。ＰＷ＝０、すなわちパスワードＰＷが設定されていなければ、ステップ４２へ進み、ＰＷ≠０であれば、ステップ４６へ進む。
【００２５】
（４２）通信回線２１を介してベンダーコンピュータ３０に接続し、ユーザ登録情報をベンダーコンピュータ３０へ送信する。ユーザ登録情報は、例えば、マシン識別コードＭＩＤ、ユーザの住所、氏名、電話番号、購入ソフトウェアの識別コード、並びに、ユーザ登録情報送信時の日付及び時間である。ユーザの住所、氏名及び電話番号は、対話的にキーボード１６から入力され、購入ソフトウェアの識別コードは予めインストーラに埋め込まれており、Ｍ０日付及び時間はＯＳから受け取る。
【００２６】
ベンダーコンピュータ３０は、以下のステップ５０〜５３の処理を実行する。
（５０）ユーザ登録情報を受信する。
（５１）ユーザ登録情報をハードディスク３０１に登録する。
（５２）マシン識別コードＭＩＤとＡとの間の演算、例えばＰＷ＝ＭＩＤ＋Ａを演算して、パスワードＰＷを決定する。ここに、Ａはベンダー又は上記ソフトウェア識別コードにより定まる定数であり、インストーラＭ０及びハードディスク３０１に共通に記憶されている。
【００２７】
（５３）パスワードＰＷを、通信回線２１を介しユーザコンピュータ１０に送信する。
（４３）ＭＰＵ１１は、パスワードＰＷを受信する。
（４４）フロッピーディスク１８１上のインストーラ中のパスワードＰＷの領域に、パスワードＰＷを設定する。この設定は通常、フロッピーディスク１８１上のインストーラを入力ファイルとしてＲＡＭ１３上又はハードディスクドライバ１９上に読み込み、フロッピーディスク１８１上のインストーラを削除し、ＲＡＭ１３上又はハードディスクドライバ１９上のインストーラをフロッピーディスク１８１上に出力ファイルとして書き込み、その途中でパスワードＰＷをフロッピーディスク１８１上に書き込むことにより行われる。
【００２８】
（４５）フロッピーディスク１８１上の暗号化モジュールＭ１Ｂ〜Ｍ４Ｂを、後述のように複号化してモジュールＭ１〜Ｍ４にし、目的とするソフトウェアであるモジュールＭ１〜Ｍ４をハードディスク１９１上にインストールする。
以上の処理により、初回インストールが完了する。このような方法によれば、初回インストールの際に、通信によりユーザ登録及びパスワードＰＷの送受が行われるので、ユーザ側及びベンダー側の手間が省ける。
【００２９】
（４６）Ａ＝ＰＷ−ＭＩＤを算出する。
（４７）Ａ＝ＳＡであれば、上記ステップ４５へ進む。ここに、許可値ＳＡは、インストーラＭ０に格納されている定数である。フロッピーディスク１８１上のインストーラＭ０〜Ｍ４をハードディスク１９１上にインストールした後に、フロッピーディスク１８１を他のコンピュータで使用すると、マシン識別コードＭＩＤがユーザコンピュータ１０のそれと異なるので、Ａ≠ＳＡとなり、次のステップ４８へ進む。
【００３０】
（４８）上記ステップ４２で送信するユーザ登録情報を不正使用事実（ユーザ登録情報の一部が欠落していてもかまわない。）としてベンダーコンピュータ３０へ送信する。
（５４、５５）ベンダーコンピュータ３０では、この不正使用事実を受信し、ハードディスク３０１に登録する。
【００３１】
（４９）ＭＰＵ１１は、罰としてハードディスク１９１上に無意味なファイルを生成し、目的とするソフトウエアが再試行によりインストールできないようにする。これは、例えば、適当なファイル名を付けた２５６バイトのファイルを、空き領域が２５６バイト未満になるまでハードディスク１９１上に繰り返し書き込むことにより行われる。このプログラムは、例えばＣ言語で、
0003930576.tif 000002
と記載される。ここに、size＿256＿filemake()は、適当なファイル名を付けた２５６バイトのファイルを生成する関数であり、生成が成功したら関数値１を返し、失敗したら０を変えす。
【００３２】
このような方法により、不正インストールが防止される。また、従来のような別個の注文用ソフトウェアが不要である。
［２］不正使用防止の為の暗号化及びファイル複号化
図２（Ａ）は、例えば図７のモジュールＭ１を暗号化モジュールＭ１Ｂにする手順を示す。図３は、図２の処理の説明図である。
【００３３】
（７０）モジュールＭ１を、汎用のファイル圧縮ソフトウェアにより圧縮して、圧縮モジュールＭ１Ａを生成し、モジュールＭ１を削除する。圧縮モジュールＭ１Ａの先頭から第（ｐ＋ｑ＋１）〜第（ｐ＋ｑ＋ｒ）バイトのコードＸを読み取る。ｑは負であってもよい。図３では、ｐ＝４、ｑ＝２、ｒ＝２となっている。
【００３４】
（７２）コードＸを所定の規則でモディファイする。例えば、コードＸに定数Ｃを加算したものを新たなコードＸとする。図３では、Ｃ＝‘０１０２’である。
（７３〜７５）新たな出力ファイルＭ１Ｂをオープンし、これに、圧縮モジュールＭ１Ａの第１〜ｐバイトと、ｒバイト長のコードＸ及び圧縮モジュールＭ１Ａの第（ｐ＋１）〜最終バイトを書き込み、ファイル（暗号化モジュール）Ｍ１Ｂをクローズし、圧縮モジュールＭ１Ａを削除する。
【００３５】
次に、暗号化モジュールＭ１ＢをモジュールＭ１に戻す手順を説明する。
（８０、８１）暗号化モジュールＭ１Ｂを入力ファイルとしてオープンし、新たな出力ファイルＭ１Ａをオープンし、暗号化モジュールＭ１Ｂの第１〜ｐバイト及び第（ｐ＋ｒ＋１）〜最終バイトを順に読み出してファイルＭ１Ａに書き込み、ファイルＭ１Ｂ及びファイル（圧縮モジュール）Ｍ１Ａをクローズし、暗号化モジュールＭ１Ｂを削除する。
【００３６】
（８２）汎用の解凍ソフトウェアにより圧縮モジュールＭ１Ａを解凍してハードディスク１９１上にモジュールＭ１を生成し、圧縮モジュールＭ１Ａを削除する。
モジュールＭ１は‘００’のバイトを多く含んでいるが、圧縮モジュールＭ１Ａには‘００’のバイトが少ないので、Ｘ＝０になることは殆どない。ここに、‘’で囲まれた数値は１６進数であり、以下同様である。このコードＸが、‘００’でないバイトデータ中に挿入されるので、暗号化モジュールＭ１Ｂのコードを見て無意味なコードＸを捜し出すことが困難となる。
【００３７】
暗号化モジュールＭ１Ｂは、コードＸを含んでいるので汎用の解凍ソフトウェアで解凍してもモジュールＭ１を生成することができず、また、コードＸを除去する処理は、インストーラＭ０中の、図１のステップ４５で実行されるので、不正使用によりステップ４５を実行することができない。
したがって、従来のような特別な暗号解読ＩＣを用いることなく、かつ、新たな圧縮及び解凍のソフトウェアを開発することなく、汎用の圧縮及び解凍ソフトウェアを使用して不正使用を防止することができる。しかも、圧縮及び解凍におけるコードＸの抽出、モディファイ、挿入及び削除処理は容易であり、その処理時間は短時間である。
【００３８】
［３］不正使用防止機能を備えたロードモジュール
ハードディスク１９１上にインストールされたモジュール（実行ファイル）Ｍ１を他のコンピュータのハードディスク１９１にコピーしても使用できないようにするために、モジュールＭ１は、図４に示す如く構成されている。モジュールＭ２〜Ｍ４についてもモジュールＭ１と同様である。モジュールＭ１は、ステップ６１〜６４及び６６〜６８からなる不正使用防止部と、本体部とからなる。図４の処理は、ＯＳによりモジュールＭ１がＲＡＭ１３上にロードされた後に実行される。
【００３９】
モジュールＭ１のデータ領域では、Ｃ言語によりコメント付で例えば次のように記載されている。
0003930576.tif 000003
（６０）ＩＮＩＴ＝０、すなわちモジュールＭ１の実行が初回であれば、ステップ６１へ進み、ＩＮＩＴ≠０であればステップ６６へ進む。
【００４０】
（６１）ロードモジュールＭ１自体のデータ領域中の目印コードＳＰを、検索ルーチンにより検索する。目印コードＳＰは、これを基準とする所定相対位置にパスワードＰＷ及び初回判定値ＩＮＩＴが存在することを示すものである。目印コードＳＰは、例えば図５に示す如く、４バイトのデータ‘０２Ｆ１０００３’であって、目印コードＳＰの次に４バイトのパスワードＰＷが配置され、パスワードＰＷの次に１バイトの初回判定値ＩＮＩＴが配置されている。
【００４１】
このような目印コードＳＰを用いることにより、各モジュールＭ１のプログラマーは、モジュールＭ１中のデータ領域の任意の位置に任意の目印コードＳＰを配置でき、この位置に相対的な位置にパスワードＰＷ及び初回判定値ＩＮＩＴを配置することが可能となり、複数のモジュールの全てについてパスワードＰＷ及び初回判定値ＩＮＩＴの位置を見破ることが困難となる。
【００４２】
ステップ６１は、Ｃ言語によりコメント付で例えば次のように記載される。
0003930576.tif 000004
検索サブルーチンの内容は省略する。
【００４３】
（６２）パスワードＰＷを、手動的又は自動的に入力する。例えば、インストール直後に、インストールされたソフトウェアを必ず実行し、図１のステップ４３でＲＡＭ１３又はハードディスクドライバ１９に書き込まれたパスワードＰＷを、モジュールＭ１の実行中に読み出すことにより、パスワードＰＷを自動入力する。または、モジュールＭ１の実行中に、ユーザにパスワードＰＷの入力を表示装置１７で促し、キーボード１６から入力されたパスワードＰＷを読み取る。得られたパスワードＰＷを、上記データ領域のパスワード格納位置に書き込むことにより、パスワードＰＷの上記初期設定値0x00000000を例えば0x1234568に書き換える。この処理は、モジュールＭ１の初回実行の際のみ行われる。
【００４４】
（６３）上記データ領域の初回判定値格納位置に‘１’を設定する。これにより、上記初回判定値ＩＮＩＴの初期設定値0x00が0x01に書き換えられる。
（６４）ハードディスク１９１上のモジュールＭ１中の初回判定値ＩＮＩＴ及びパスワードＰＷの位置に、それぞれ前記初回判定値ＩＮＩＴ及びパスワードＰＷの値を設定する。この設定は通常、ハードディスク１９１上のモジュールＭ１を入力ファイルとして読み込み、ハードディスク１９１上のモジュールＭ１を削除し、モジュールＭ１中の初回判定値ＩＮＩＴ及びパスワードＰＷの位置にそれぞれ初回判定値ＩＮＩＴ及びパスワードＰＷの値を書き込んだモジュールＭ１をハードディスク１９１上に新たに作成することにより行われる。
【００４５】
（６５）ロードモジュール本体部を実行してモジュールＭ１の初回処理を終了する。
（６６）通信カード２０のマシン識別コードＭＩＤを読み出す。
（６７）式Ａ＝ＰＷ−ＭＩＤによりＡを算出する。
（６８）Ａ＝ＳＡであれば上記ステップ６５を実行し、Ａ≠ＳＡであればモジュールＭ１の処理を終了する。
【００４６】
上記ステップ６１〜６４は、Ｃ言語によりコメント付で例えば次のように記載される。
以上のような構成のモジュールＭ１〜Ｍ４によれば、ハードディスク１９１上にインストールされたモジュールＭ１〜Ｍ４を他のコンピュータのハードディスクにコピーしても使用できなくなる。また、目印コードＳＰ、パスワードＰＷ及び初回判定値ＩＮＩＴをロードモジュール中のデータ領域の任意の１箇所に挿入すればよく、従来のように各種条件下で実行の際に必ず出会うようにロードモジュールに多数の資格検証トリガを挿入する必要がない。また、目印コードＳＰはプログラム毎に任意の値にすることができる。
【００４７】
なお、本発明には外にも種々の変形例が含まれる。
例えば、マシン識別コードＭＩＤはユーザコンピュータ１０の機種であってもよく、インストーラＭ０において、メニューでユーザコンピュータ１０の機種を入力させ、ＲＯＭ１２上の、機種に応じたアドレスからマシン識別コードＭＩＤを読み取る構成であってもよい。
【００４８】
また、図４のステップ６７において、モジュールＭ１により異なるパスワードＰＷを用いる構成であってもよい。
図２及び図４の構成は、モジュールＭ１〜Ｍ４のうち１つ、例えば最初に実行されるモジュールのみに関するものであってもよい。
また、パスワードＰＷは、所定の規則で暗号化しておいて、モジュールＭ０〜Ｍ４の実行により複号化する構成であってもよい。
【００４９】
図１において、ステップ４４からステップ４５へ進まずにインストーラの処理を終了し、２回目以降インストーラを実行したときにステップ４７からステップ４５へ進んでインストールを実行する構成であってもよい。この点は、図４においても同様であり、ステップ６４からステップ６５へ進まずに処理を終了し、２回目以降モジュールを実行したときにステップ６８からステップ６５へ進んでモジュール本体部を実行する構成であってもよい。
【図面の簡単な説明】
【図１】不正使用防止機能を備えたインストーラを示すフローチャートである。
【図２】不正使用防止のためのファイル暗号化手順及びファイル複号化手順を示すフローチャートである。
【図３】図２の処理の説明図である。
【図４】不正使用防止機能を備えたロードモジュールを示すフローチャートである。
【図５】パスワード及び初回判定値のファイル内挿入位置説明図である。
【図６】不正使用防止機能を備えたコンピュータシステムの概略ブロック図である。
【図７】ソフトウェアパッケージの概略説明図である。
【符号の説明】
１０  ユーザコンピュータ
２１  通信回線
３０  ベンダーコンピュータ
１８１  フロッピーディスク
１９１、３０１  ハードディスク
ＭＩＤ  マシン識別コード
Ｍ１〜Ｍ４、Ｍ１  モジュール
Ｍ１Ｂ  暗号化モジュール
【図１】
0003930576.tif 000005
【図２】
0003930576.tif 000006
【図３】
0003930576.tif 000007
【図４】
0003930576.tif 000008
【図５】
0003930576.tif 000009
【図６】
0003930576.tif 000010
【図７】
0003930576.tif 000011