JP2000112750A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2000112750A
JP2000112750A JP10296188A JP29618898A JP2000112750A JP 2000112750 A JP2000112750 A JP 2000112750A JP 10296188 A JP10296188 A JP 10296188A JP 29618898 A JP29618898 A JP 29618898A JP 2000112750 A JP2000112750 A JP 2000112750A
Authority
JP
Japan
Prior art keywords
subprogram
information processing
program
storage medium
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10296188A
Other languages
English (en)
Other versions
JP4234825B2 (ja
Inventor
Mutsumi Ogawa
睦美 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HYPER TEC KK
Original Assignee
HYPER TEC KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HYPER TEC KK filed Critical HYPER TEC KK
Priority to JP29618898A priority Critical patent/JP4234825B2/ja
Publication of JP2000112750A publication Critical patent/JP2000112750A/ja
Application granted granted Critical
Publication of JP4234825B2 publication Critical patent/JP4234825B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 本発明は,プログラムやデータの複製を作成
する場合に,プログラム等のポインタ情報に記憶媒体識
別子を入れることにより,他の記憶媒体への不正な複製
をさせないことを目的とする。 【解決手段】 一連の情報処理を行うプログラムを複数
のサブプログラムに分割し,複数の記憶媒体に分割して
記憶されることを特徴とする情報処理装置であって,記
憶媒体を識別するための記憶媒体識別子からなるポイン
タ情報を有することを特徴とする情報処理装置。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】コンピュータソフトウェアの
不正コピーを防止または困難にするための構成を有する
プログラム構成方法により構成された情報処理装置に関
するものである。
【0002】
【従来の技術】従来の技術として,特開平2―2134
4がある。本発明は,ファイルのコピーを防止するため
にファイルを分割しランダムな空き領域に書き込み,フ
ァイルを復元する情報はファイル・アロケーション・テ
ーブルという表で一括管理するものである。
【0003】
【発明が解決しようとする課題】しかしながら,従来の
技術では,ファイルを復元する情報が一括管理されてお
り,復元するための情報を一箇所見つけることができれ
ば,容易に復元可能,つまりファイルのコピーが可能と
なる,という課題を有していた。また,一括管理された
情報が復元するための情報であることが比較的容易に判
断できた。
【0004】
【課題を解決するための手段】請求項1の発明は,一連
の情報処理を行う複数のプログラムであり,情報処理の
一部を行うサブモジュールと他のサブプログラムが記憶
されている記憶媒体を識別するための記憶媒体識別子か
らなるポインタ情報を有するサブプログラムを有するこ
とを特徴としている。
【0005】請求項2の発明は,請求項1の発明におい
て,ポインタ情報が他のサブプログラムが記憶されてい
る記憶媒体を識別するための記憶媒体識別子とその記憶
媒体識別子で識別される記憶媒体中のアドレスを識別す
るアドレス識別子からなることを特徴としている。請求
項3の発明は,請求項1の発明において,一連の情報処
理を行う複数のプログラムであり,情報処理の一部を行
うサブモジュールと他のサブプログラムが記憶されてい
るアドレスを識別するアドレス識別子からなるポインタ
情報を有し,そのアドレス識別子をサブプログラム中の
予め決められたプログラム変数の値をパラメータとする
関数から生成するサブプログラムを有することを特徴と
している。
【0006】請求項4の発明は,請求項2の発明におい
て,記憶媒体識別子をサブプログラム中の予め決められ
たプログラム変数の値をパラメータとする関数から生成
することを特徴としている。請求項5の発明は,請求項
2の発明において,アドレス識別子をサブプログラム中
の予め決められたプログラム変数の値をパラメータとす
る関数から生成することを特徴としている。
【0007】請求項6の発明は,請求項2の発明におい
て,アドレス識別子と記憶媒体識別子の双方をサブプロ
グラム中の予め決められた異なるプログラム変数の値を
パラメータとする関数から生成することを特徴としてい
る。
【0008】
【発明の実施の形態】以下,本発明の実施の形態を図面
を用いて詳細に説明する。 実施の形態1 図1は本発明に係る情報処理装置のブロ
ック図で,入力部101と,プログラム記憶部(1)1
02と,プログラム記憶部(2)103と,プログラム
読み込み部104と,情報処理部105とからなる。
【0009】入力部101は,例えば,キーボードやマ
ウスなどで,情報処理の開始指示および当該情報処理の
命令群の開始アドレスを特定する記憶媒体識別子および
記憶媒体識別子で識別される記憶媒体中のアドレスから
なる開始指示命令を入力する。プログラム記憶部(1)
102は,例えば,ハードディスクやフロッピーディス
クなどであり,一連の情報処理の命令群をサブプログラ
ムと呼ぶ一部の情報処理の命令群を有する情報に分割し
て記憶している。そして,当該サブプログラムは,情報
処理の一部を行うための命令の集合であるサブモジュー
ルと次の情報処理の一部を行うサブプログラムを識別す
るポインタ情報を有する。
【0010】プログラム記憶部(2)103は,プログ
ラム記憶部(1)102とは別の記憶媒体であり,CD
−ROMやプロテクトモジュールなどである。ここで,
プロテクトモジュールとは,プリンタのコネクタに接続
する小容量のメモリを持った記憶媒体で,プロテクトモ
ジュールに記憶されている情報を読み込むには,特別な
ドライバが必要となる。
【0011】プログラム読み込み部104は,指示に従
ってプログラム記憶部(1)102またはプログラム記
憶部(2)103に記憶されているサブプログラムを読
み込む。このプログラム読み込み部104は,プログラ
ム記憶部(1)102とプログラム記憶部(2)103
に記憶されているサブプログラムを読み込むためのドラ
イバを有し,サブプログラムの読み込みの指示に含まれ
る記憶媒体識別子で識別される記憶媒体用のドライバを
起動して,サブプログラムを読み込む。
【0012】情報処理部105は,例えばコンピュータ
の演算処理部(CPU)などがあり,入力部101から
入力された開始指示命令が有する記憶媒体識別子とアド
レスで特定されるサブプログラムの読み込みをプログラ
ム読み込み部104に指示し,またプログラム読み込み
部104が読み込んだサブプログラムを処理する。次に
図1に示す情報処理装置における情報処理の動作を図2
のフローチャートを参照しながら説明する。
【0013】ステップS201 情報処理部105は,
入力部101から開始指示命令が入力されたか否か判断
する。開始指示命令が入力されれば,ステップS202
に行き,入力されていなければステップS201に戻
る。 ステップS202 情報処理部105は,開始指示命令
が有する記憶媒体識別子とアドレスで識別されるサブプ
ログラムを読み込むことをプログラム読み込み部104
に指示する。
【0014】ステップS203 プログラム読み込み部
104はステップS202で識別されたサブプログラム
を読み込む。 ステップS204 情報処理部105は,サブプログラ
ム中のプログラムカウンタ(P)を1にセットする。 ステップS205 情報処理部105は,P番目の命令
がサブプログラムに存在するか否か判断する。P番目の
命令が存在すれば,ステップS206に行き,存在しな
ければ処理を終了する。
【0015】ステップS206 情報処理部105は,
P番目の命令が記憶媒体識別子とアドレスからなるポイ
ンタ情報を有する次のサブプログラムへのジャンプ命令
か否か判断する。 次のサブプログラムへのジャンプ命令であればステップ
S202に戻る。当該ジャンプ命令でなければステップ
S207に行く。
【0016】ステップS207 情報処理部105は,
P番目の命令を解釈し,処理する。 ステップS208 情報処理部105は,PにP+1を
代入する。ステップS205に戻る。 次に上記情報処理装置において,プログラム記憶部
(1)102がハードディスクであり,プログラム記憶
部(2)103がCD−ROMである場合に,複数のサ
ブプログラムがハードディスク(プログラム記憶部
(1)102)とCD−ROM(プログラム記憶部
(2)103)に分割されている場合の具体的な動作に
ついて説明する。
【0017】今,図3に示されるようにハードディスク
(プログラム記憶部(1)102)とCD−ROM(プ
ログラム記憶部(2)103)に一連の情報処理の一部
を行うサブプログラムが分割して記憶されている。そし
て,各サブプログラムは,次のサブプログラムへ処理を
移行するための記憶媒体識別子とアドレスからなるポイ
ンタ情報が存在する。
【0018】かかる場合に,入力部101から「処理開
始 ‘ハードディスク’ ‘0’」という開始指示命令
が入力されるとする。ここで,「処理開始 ‘ハードデ
ィスク’ ‘0’」の「処理開始」は命令であり,「‘ハー
ドディスク’」は記憶媒体識別子であり,「‘0’」はア
ドレスである。そして,「‘ハードディスク’」と
「‘0’」で最初に処理するサブプログラムが「サブプロ
グラム1」と決定される。
【0019】上記の開始指示命令が入力されれば,情報
処理部105は,ハードディスク上のサブプログラム1
を読み込むようにプログラム読み込み部104に指示
し,プログラム読み込み部104はサブプログラム1を
読み込む。そして,情報処理部105は順次サブプログ
ラム1中の命令を順次処理し,「JAMP ‘CD−R
OM’ ‘BBB’」の命令の処理によりCD−ROM
上のサブプログラム2に処理は移行する。
【0020】なお,「JAMP ‘CD−ROM’
‘BBB’」の命令の以降に他の命令が存在するが,そ
の命令の存在により,次のサブプログラムへの処理への
移行命令であることが解析しにくくなっている。また,
「JAMP ‘CD−ROM’ ‘BBB’」の命令で
は,記憶媒体識別子は「CD−ROM」となっているが,
説明の都合上記憶媒体名を記載しているが,実際のプロ
グラムでは「CD−ROM」であることを識別するための
数値などの識別子でも良い。
【0021】サブプログラム2に処理が移行するとは,
情報処理部105が,プログラム読み込み部104にC
D−ROM上のサブプログラム2を読み込むことを指示
し,上記の説明と同様にプログラム読み込み部104は
サブプログラム2を読み込み,情報処理部105は順次
サブプログラム2中の命令を順次処理することを意味す
る。
【0022】そのサブプログラム2の命令の処理中の
「JAMP ‘ハードディスク’ ‘456’」の命令の
処理によりハードディスク上のサブプログラム3に処理
は移行する。以降,同様にサブプログラム4からサブプ
ログラム8が処理されて,一連の処理が終了する。
【0023】なお,上記の具体的な動作の説明におい
て,プログラム記憶部(1)102がハードディスクで
あり,プログラム記憶部(2)103がCD−ROMで
あったが,それぞれのプログラム記憶部がフロッピーデ
ィスクやプロテクトモジュールなどの記憶媒体であって
も良いし,他方のプログラム記憶部がネットワーク上の
他のマシンのハードディスクなどの記憶媒体であっても
よい。他方のプログラム記憶媒体がネットワーク上の他
のマシンのハードディスクである場合とは,例えば,イ
ンターネット上のURLで識別されるホームページであ
り,当該ホームページからHTTPなどのプロトコルに
よりサブプログラムを逐次取り出して,一連の処理を行
ってもよい。
【0024】また,上記の具体的な動作の説明におい
て,2つの異なる記憶媒体であるプログラム記憶部にサ
ブプログラムを分割して持たせたが,3つ以上の異なる
記憶媒体にサブプログラムを分割してもよい。また,図
4に示すように,他のサブプログラムへのポインタ情報
が記憶媒体識別子だけでも良い。図4のようにプログラ
ムがサブプログラムに分割された場合は,入力部101
から「処理開始 アドレス識別子」(この場合「処理開始
‘0’」)が入力され,デフォルトの記憶媒体である
ハードディスクの「アドレス識別子‘0’」で示されたプ
ログラムを処理する。従って,情報処理部105は,ハ
ードディスク上のサブプログラム1をまず処理し,次に
記憶媒体識別子(CD−ROM)で識別される記憶媒体
中の予めきめられたアドレス(0)に記憶されたサブプ
ログラム(サブプログラム2)を処理し,続いてデフォ
ルトの記憶媒体であるハードディスク上の「処理開始
アドレス識別子」の後のサブプログラム(サブプログラ
ム3)を処理することとなる。
【0025】この場合,CD−ROMの中のプログラム
はアドレス‘0’から開始されていることが前提となっ
ている。また,次に移行するサブプログラムを特定する
ポインタ情報が記憶媒体識別子とアドレスであったが,
記憶媒体の種類によりトラック番号やセクタ番号などの
異なるものであってもよい。
【0026】以上のように本実施の形態で説明したプロ
グラム構成方法によりプログラムを構成すれば,単にコ
ピーして,分割されたプログラムを合成しても,記憶媒
体識別子がプログラム中に存在することにより,当該記
憶媒体識別子で識別される記憶媒体を読みにいくことに
なり,正常に一連の情報処理が行われず,コピーの効果
を発揮できない。従って,不正コピーを有効に防止する
ことができる。
【0027】さらに,例えば,本情報処理装置の処理は
データの検索処理であり,「Jump CD−ROM」の
後ろに「if(error)………」があり,CD−RO
Mへのジャンプ命令のエラー処理が記載されている場合
(図5参照),エラーの時は遅い検索(例えば,逐次検
索)を行い,正常な時(CD−ROMのサブプログラム
2の処理)は速い検索(例えば,二分検索)を行うこと
とする,ということも可能である。かかる場合,不正コ
ピーした情報処理装置は,正常な情報処理装置と比較し
て非常に遅い情報処理(検索)しかできない,というこ
とになり,不正コピー者に対して正規なサービスを享受
できないという不具合を与えることができる。
【0028】実施の形態2 図6は本発明に係る情報処
理装置のブロック図で,入力部101と,プログラム記
憶部602と,プログラム読み込み部104と,情報処
理部605とからなる。プログラム記憶部602は,例
えば,ハードディスクやフロッピーディスクなどであ
り,一連の情報処理の命令群をサブプログラムと呼ぶ一
部の情報処理の命令群を有する情報に分割して記憶して
いる。そして,当該サブプログラムは,情報処理の一部
を行うための命令の集合であるサブモジュールと次の情
報処理の一部を行うサブシステムの開始位置を示すアド
レスを有する。
【0029】そして,アドレスは,前記サブプログラム
中の一部のプログラムコードとして使用されている予め
決められたプログラム変数の値をパラメータとした関数
により生成されることとする。情報処理部605は,入
力部101から入力された開始指示命令が有するアドレ
スで特定されるサブプログラムの読み込みをプログラム
読み込み部104に指示し,またプログラム読み込み部
104が読み込んだサブプログラムを処理する。
【0030】次に,上記図6に示す情報処理装置におけ
る情報処理の動作を図7のフローチャートを参照しなが
ら説明する。 ステップS701 情報処理部605は,入力部101
から開始指示命令が入力されたか否か判断する。開始指
示命令が入力されれば,ステップS702に行き,入力
されていなければステップS701に戻る。
【0031】ステップS702 情報処理部605は,
開始指示命令が有するアドレスで識別されるサブプログ
ラムを読み込むことをプログラム読み込み部104に指
示する。 ステップS703 プログラム読み込み部104はステ
ップS702で識別されたサブプログラムを読み込む。
【0032】ステップS704 情報処理部605は,
サブプログラム中のプログラムカウンタ(P)を1にセ
ットする。 ステップS705 情報処理部605は,P番目の命令
がサブプログラムに存在するか否か判断する。P番目の
命令が存在すれば,ステップS706に行き,存在しな
ければ処理を終了する。
【0033】ステップS706 情報処理部605は,
P番目の命令が予め決められたプログラム変数をパラメ
ータとした関数からなるポインタ情報を有する次のサブ
プログラムへの移行命令か否か判断する。次のサブプロ
グラムへの移行命令であればステップS707に行き,
当該移行命令でなければステップS708に行く。
【0034】ステップS707 情報処理部605は,
プログラム変数の値を読みだし,アドレスを算出するた
めの予め決められた関数を適用してアドレスを算出す
る。ステップS702に戻る。 ステップS708 情報処理部605は,P番目の命令
を解釈し,処理する。 ステップS709 情報処理部605は,PにP+1を
代入する。ステップS705に戻る。
【0035】次に,上記情報処理装置において,プログ
ラム記憶部602に図8のような分割されたサブプログ
ラムが複数記憶されている場合の具体的な動作について
説明する。今,図8に示されるように,例えばハードデ
ィスク(プログラム記憶部602)にサブプログラムが
分割して記憶されている。
【0036】かかる場合に,入力部101から「処理開
始 ‘123’」という開始指示命令が入力されるとす
る。ここで,「処理開始 ‘123’」の「処理開始」
は命令であり,「‘123’」はアドレスである。そし
て,「‘123’」のアドレスにより最初に処理するサ
ブプログラムがサブプログラム1と決定される。上記の
開始指示命令が入力されれば,情報処理部605は,プ
ログラム記憶部602のアドレス‘123’で始まるサ
ブプログラム1を読み込むようにプログラム読み込み部
104に指示し,プログラム読み込み部104はサブプ
ログラム1を読み込む。そして,情報処理部605は順
次サブプログラム1中の命令を順次処理し,予め決めら
れた変数「A」をパラメータとする予め決められた関数
「f1」の適用により算出された値を次に処理するサブ
プログラムの開始アドレスだと判断し,つまり「f1
(A)」の命令の処理により算出された値を次に処理す
るサブプログラムの開始アドレスであると判断し,プロ
グラム読み込み部104に当該算出したアドレスで開始
されるサブプログラムの読み込みを指示する。
【0037】今,Aの値が「4」であり「f1(x)=
111x+12」だとすると,f1(A)の計算により
「‘456’」が算出され,次にサブプログラム2に処
理は移行する。そして,情報処理部605は順次サブプ
ログラム2中の命令を順次処理し,予め決められた変数
「B」をパラメータとする関数の適用により算出された
値を次に処理するサブプログラムの開始アドレスだと判
断し,つまり「f2(B)」の命令の処理により算出さ
れた値を次に処理するサブプログラムの開始アドレスで
あると判断し,プログラム読み込み部104に当該算出
したアドレスで開始されるサブプログラムの読み込みを
指示する。
【0038】今,例えばBの値が「2」であり,「f2
(x)=2x−4」だとすると,f2(B)の処理によ
り「‘0’」が算出され,次にサブプログラム3に処理
は移行する。情報処理部605は順次サブプログラム3
中の命令を順次処理し,サブプログラム3中には予め決
められた次のサブプログラムのアドレスを算出するため
のプログラム変数が存在しなかったために,サブプログ
ラム3の全処理を完了して,一連の情報処理は終了す
る。
【0039】なお,上記の具体的な動作の説明におい
て,アドレスを算出するための関数が予め決められた関
数としたが,サブプログラム中に埋め込まれて他の処理
で使用する関数であっても良い。かかる他の処理で使用
する関数によりアドレスを算出するほうが,不正コピー
のための命令であることが解析されにくい。プログラム
変数も同様に,他の処理で使用される変数でも良いし,
アドレス算出用の変数でも良い。
【0040】以上のように本実施の形態で説明したプロ
グラム構成方法によりプログラムを構成すれば,サブプ
ログラム中で使用されている予め決められた変数をパラ
メータとする関数を適用してアドレスを算出し,当該ア
ドレスにより次のサブプログラムを決定するので,たと
え分割されたサブプログラムをすべて読み出すことがで
きたとしても,どのように連結するのかを判断すること
が極めて困難であり,不正コピーは非常に困難となる。
【0041】実施の形態3 図9は本発明に係る情報処
理装置のブロック図で,入力部101と,プログラム記
憶部(3)902と,プログラム記憶部(4)903
と,プログラム読み込み部104と,情報処理部905
とからなる。プログラム記憶部(3)902は,例え
ば,ハードディスクやフロッピーディスクなどであり,
一連の情報処理の命令群をサブプログラムと呼ぶ一部の
情報処理の命令群を有する情報に分割して記憶してい
る。そして,当該サブプログラムは,情報処理の一部を
行うための命令の集合であるサブモジュールと次の情報
処理の一部を行うサブプログラムを識別する記憶媒体識
別子と記憶媒体識別子で識別される記憶媒体中の位置を
示すアドレスを有する。
【0042】そして,記憶媒体識別子とアドレスは,前
記サブプログラム中の一部のプログラムコードとして使
用されている予め決められたプログラム変数の値をパラ
メータとした関数により各々生成されることとする。プ
ログラム記憶部(4)903は,プログラム記憶部
(3)902とは別の記憶媒体であり,CD−ROMや
プロテクトモジュールなどであり,記憶している内容お
よび構成はプログラム記憶部(3)902と同様に,サ
ブプログラムを1つ以上記憶している。
【0043】情報処理部905は,入力部101から入
力された開始指示命令が有する記憶媒体識別子とアドレ
スで特定されるサブプログラムの読み込みをプログラム
読み込み部104に指示し,またプログラム読み込み部
104が読み込んだサブプログラムを処理する。次に図
9に示す情報処理装置における情報処理の動作を図10
のフローチャートを参照しながら説明する。
【0044】ステップS1001 情報処理部905
は,入力部101から開始指示命令が入力されたか否か
判断する。開始指示命令が入力されれば,ステップS1
002に行き,入力されていなければステップS100
1に戻る。 ステップS1002 情報処理部905は,開始指示命
令が有する記憶媒体識別子とアドレスで識別されるサブ
プログラムを読み込むことをプログラム読み込み部10
4に指示する。
【0045】ステップS1003 プログラム読み込み
部104はステップS1002で識別されたサブプログ
ラムを読み込む。 ステップS1004 情報処理部905は,サブプログ
ラム中のプログラムカウンタ(P)を1にセットする。 ステップS1005 情報処理部905は,P番目の命
令がサブプログラムに存在するか否か判断する。P番目
の命令が存在すれば,ステップS1006に行き,存在
しなければ処理を終了する。
【0046】ステップS1006 情報処理部905
は,P番目の命令が予め決められたプログラム変数をパ
ラメータとした関数からなるポインタ情報を有する次の
サブプログラムへの移行命令か否か判断する。次のサブ
プログラムへの移行命令であればステップS1007に
行き,当該移行命令でなければステップS1008に行
く。
【0047】ステップS1007 情報処理部905
は,プログラム変数の値を読み出し,関数を適用して記
憶媒体識別子およびアドレスを算出する。ステップS1
002に戻る。 ステップS1008 情報処理部905は,P番目の命
令を解釈し,処理する。
【0048】ステップS1009 情報処理部905
は,PにP+1を代入する。ステップS1005に戻
る。 次に上記情報処理装置において,プログラム記憶部
(3)902がハードディスクであり,プログラム記憶
部(4)903がプロテクトモジュールである場合に,
複数のサブプログラムがハードディスク(プログラム記
憶部(3)902)とプロテクトモジュール(プログラ
ム記憶部(4)903)に分割されている場合の具体的
な動作について説明する。
【0049】今,図11に示されるようにハードディス
ク(プログラム記憶部(3)902)とプロテクトモジ
ュール(プログラム記憶部(4)903)に一連の情報
処理の一部を行うサブプログラムが分割して記憶されて
いる。本具体例において,A1,A2,A3,A4は記
憶媒体識別子を算出するためのプログラム変数であり,
B1,B2,B3,B4はアドレスを算出するためのプ
ログラム変数であり,hは記憶媒体識別子を算出する関
数であり,fはアドレスを算出する関数である。
【0050】かかる場合に,入力部101から「処理開
始 ‘ハードディスク’ ‘345’」という開始指示
命令が入力されるとする。この開始指示命令が入力され
れば,情報処理部905は,ハードディスク上のサブプ
ログラム1を読み込むようにプログラム読み込み部10
4に指示し,プログラム読み込み部104はサブプログ
ラム1を読み込む。そして,情報処理部905は順次サ
ブプログラム1中の命令を順次処理し,予め決められた
プログラム変数A1,B1に対する関数h,fを適用す
る命令が存在すれば,そのときのA1,B1の値にh,
fの関数を適用して,記憶媒体識別子とアドレスを算出
する。
【0051】具体的には,サブプログラム中の「h(A
1)」の処理により「h(A)」となり,「h」を4つ
先のアルファベットを出力する関数(入力が‘A’なら
出力は‘E’,入力が‘Y’なら出力が‘C’となる)
だとすれば「h(A)=E」となる。また,サブプログラ
ム中の「f(B1)」の処理により「f(3)」となり,
「f(x)=x―3」だとすれば「f(3)=0」とな
る。
【0052】ここで,デバイスEはプロテクトモジュー
ルだとすると,次にプロテクトモジュールのアドレス
「0」で識別されるサブプログラムに処理が移行するこ
ととなる。そして,サブプログラム2を同様に処理す
る。続いて,情報処理部905は,サブプログラム2中
の予め決められたプログラム変数A2,B2に対する関
数h,fを適用する命令の存在を認知し,次に移行する
サブプログラムを特定する記憶媒体識別子とアドレスを
同様に算出する。
【0053】そして,サブプログラム3を処理する。以
上の手順に従って,情報処理部905は,さらにサブプ
ログラム4と5を処理し,一連の処理を終了する。な
お,上記の具体的な動作の説明において,プログラム記
憶部(3)902がハードディスクであり,プログラム
記憶部(4)903がプロテクトモジュールであった
が,それぞれのプログラム記憶部がフロッピーディスク
やCD−ROMなどの記憶媒体であっても良いし,他方
のプログラム記憶部がネットワーク上の他のマシンのハ
ードディスクなどの記憶媒体であってもよい。他方のプ
ログラム記憶部がネットワーク上の他のマシンのハード
ディスクである場合とは,例えば,インターネット上の
URLで識別されるホームページであり,当該ホームペ
ージからHTTPなどのプロトコルによりサブプログラ
ムを逐次取り出して,一連の処理を行ってもよい。
【0054】また,上記の具体的な動作の説明におい
て,2つの異なる記憶媒体であるプログラム記憶部にサ
ブプログラムを分割して持たせたが,3つ以上の異なる
記憶媒体にサブプログラムを分割してもよい。また,次
に移行するサブプログラムを特定するポインタ情報が記
憶媒体識別子とアドレスであったが,記憶媒体の種類に
よりトラック番号やセクタ番号などの異なるものであっ
てもよい。
【0055】また,図4に示すように,他のサブプログ
ラムへのポインタ情報が記憶媒体識別子だけでも良い。
以上のように本実施の形態で説明した2つ以上の記憶媒
体で分割してプログラムを保持するプログラム構成方法
によりプログラムを構成すれば,単にコピーして,分割
されたプログラムを合成しても,記憶媒体識別子がプロ
グラム中に存在することにより,当該記憶媒体識別子で
識別される記憶媒体を読みにいくことになり,正常に一
連の情報処理が行われず,コピーの効果を発揮できな
い。従って,不正コピーを有効に防止することができ
る。
【0056】さらに,サブプログラム中で使用されてい
る予め決められた変数をパラメータとする関数を適用し
てアドレスを算出し,当該アドレスにより次のサブプロ
グラムを決定するので,たとえ分割されたサブプログラ
ムを複数の記憶媒体から読んでいるがことくプログラム
コードを変更できたとしても,通常のプログラムでも使
用されているプログラム変数をパラメータとして関数を
適用して記憶媒体識別子およびアドレスを決定している
ため,どのようにサブプログラムを連結するのかを解析
することが極めて困難であり,また,どの命令で記憶媒
体識別子とアドレスを決定しているかの解析が極めて困
難となり,不正コピーが防止できる。
【0057】
【発明の効果】以上説明したように本発明によれば,分
割されたサブプログラム中に各サブプログラムの連結情
報(ポインタ情報)を分散させるとともに,ポインタ情
報に記憶媒体識別子を入れることにより,他の記憶媒体
へのコピー後は動作しないこととなり,しかも,ポイン
タ情報中の記憶媒体識別子やアドレスなどをプログラム
で使用しているプログラム変数をパラメータとする関数
から算出するので,ポインタ情報がサブプログラム中の
どこにあるのかを解析することが非常に困難になり,不
正なプログラムのコピーが非常に困難となる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態における情報処理装
置のブロック図である。
【図2】本発明の第1の実施の形態における情報処理装
置の動作について説明するフローチャートである。
【図3】本発明の第1の実施の形態における複数のサブ
システムに分割されたプログラム構成方法の例である。
【図4】本発明の第1の実施の形態における複数のサブ
システムに分割されたプログラム構成方法の例である。
【図5】本発明の第1の実施の形態における複数のサブ
システムに分割されたプログラム構成方法の例である。
【図6】本発明の第2の実施の形態における情報処理装
置のブロック図である。
【図7】本発明の第2の実施の形態における情報処理装
置の動作について説明するフローチャートである。
【図8】本発明の第2の実施の形態における複数のサブ
システムに分割されたプログラム構成方法である。
【図9】本発明の第3の実施の形態における情報処理装
置のブロック図である。
【図10】本発明の第3の実施の形態における情報処理
装置の動作について説明するフローチャートである。
【図11】本発明の第3の実施の形態における複数のサ
ブシステムに分割されたプログラム構成方法である。
【符号の説明】
101 入力部 102 プログラム記憶部(1) 103 プログラム記憶部(2) 104 プログラム読み込み部 105,605,905 情報処理部 602 プログラム記憶部 902 プログラム記憶部(3) 903 プログラム記憶部(4)

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 一連の情報処理を行うプログラムを複数
    のサブプログラムに分割し,前記複数のサブプログラム
    が複数の記憶媒体に分割して記憶されるプログラム構成
    方法により構成されている情報処理装置であって,前記
    サブプログラムが情報処理の一部を行うサブモジュール
    と他のサブプログラムが記憶されている記憶媒体を識別
    するための記憶媒体識別子からなるポインタ情報を有す
    ることを特徴とする情報処理装置。
  2. 【請求項2】 ポインタ情報が他のサブプログラムが記
    憶されている記憶媒体を識別するための記憶媒体識別子
    と当該記憶媒体識別子で識別される記憶媒体中のアドレ
    スを識別するアドレス識別子からなる請求項1記載の情
    報処理装置。
  3. 【請求項3】 一連の情報処理を行うプログラムを複数
    のサブプログラムに分割するプログラム構成方法により
    構成されている情報処理装置であって,前記サブプログ
    ラムが情報処理の一部を行うサブモジュールと他のサブ
    プログラムが記憶されているアドレスを識別するアドレ
    ス識別子からなるポインタ情報を有し,当該アドレス識
    別子をサブプログラム中の予め決められたプログラム変
    数の値をパラメータとする関数から生成することを特徴
    とする情報処理装置。
  4. 【請求項4】 記憶媒体識別子をサブプログラム中の予
    め決められたプログラム変数の値をパラメータとする関
    数から生成することを特徴とする請求項1または請求項
    2記載の情報処理装置。
  5. 【請求項5】 アドレス識別子をサブプログラム中の予
    め決められたプログラム変数の値をパラメータとする関
    数から生成することを特徴とする請求項2記載の情報処
    理装置。
  6. 【請求項6】 アドレス識別子と記憶媒体識別子の双方
    をサブプログラム中の予め決められた異なるプログラム
    変数の値をパラメータとする関数から生成することを特
    徴とする請求項2記載の情報処理装置。
JP29618898A 1998-10-02 1998-10-02 情報処理装置 Expired - Lifetime JP4234825B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29618898A JP4234825B2 (ja) 1998-10-02 1998-10-02 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29618898A JP4234825B2 (ja) 1998-10-02 1998-10-02 情報処理装置

Publications (2)

Publication Number Publication Date
JP2000112750A true JP2000112750A (ja) 2000-04-21
JP4234825B2 JP4234825B2 (ja) 2009-03-04

Family

ID=17830317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29618898A Expired - Lifetime JP4234825B2 (ja) 1998-10-02 1998-10-02 情報処理装置

Country Status (1)

Country Link
JP (1) JP4234825B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005085188A (ja) * 2003-09-11 2005-03-31 Fujitsu Ltd プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
JP2005135265A (ja) * 2003-10-31 2005-05-26 Fujitsu Ltd 情報処理装置
JP2006065711A (ja) * 2004-08-30 2006-03-09 Yokogawa Electric Corp 電子機器、電子機器の起動方法およびアプリケーションプログラムの起動方法
JP2012512443A (ja) * 2008-08-21 2012-05-31 トムソン ライセンシング コードの難読化のための方法及び装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074154A (ja) * 1996-08-30 1998-03-17 Digital Vision Lab:Kk ファイル管理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074154A (ja) * 1996-08-30 1998-03-17 Digital Vision Lab:Kk ファイル管理装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
「MICROSOFT VISUAL C++ プログラマーリファレンスVOL.1 MICROSOFT VISUAL C++ ユーザーズガイド」, vol. 第1版, JPN4005009016, 11 April 1996 (1996-04-11), JP, pages 449 - 455, ISSN: 0000731643 *
SHOW ME: "Argo for Windowsを使ってみた", 株式会社技術評論社, vol. 第164号, CSND199700128023, 1 February 1997 (1997-02-01), JP, pages 144 - 147, ISSN: 0000731642 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005085188A (ja) * 2003-09-11 2005-03-31 Fujitsu Ltd プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
JP4568489B2 (ja) * 2003-09-11 2010-10-27 富士通株式会社 プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
JP2005135265A (ja) * 2003-10-31 2005-05-26 Fujitsu Ltd 情報処理装置
US7805758B2 (en) 2003-10-31 2010-09-28 Fujitsu Limited Information processing apparatus
JP2006065711A (ja) * 2004-08-30 2006-03-09 Yokogawa Electric Corp 電子機器、電子機器の起動方法およびアプリケーションプログラムの起動方法
JP2012512443A (ja) * 2008-08-21 2012-05-31 トムソン ライセンシング コードの難読化のための方法及び装置

Also Published As

Publication number Publication date
JP4234825B2 (ja) 2009-03-04

Similar Documents

Publication Publication Date Title
US20070143228A1 (en) Licensing matrix
RU2409838C2 (ru) Архивирование данных в виртуальном прикладном окружении
EP1321844B1 (en) Access right contradiction detection apparatus and analysis rule creation apparatus
AU2004208743A1 (en) Method and system for distributing and installing software
US6636967B1 (en) Electronic-watermark control apparatus and method, information control apparatus and method, and storage medium capable of being read by a computer
CN111443912A (zh) 基于组件的页面渲染方法、装置、计算机设备和存储介质
Tamada et al. Design and evaluation of dynamic software birthmarks based on api calls
JP3715478B2 (ja) インストレーション回復システム用装置および方法
JP6977724B2 (ja) シグネチャ作成装置、シグネチャ作成方法、シグネチャ作成プログラム、及び、ソフトウェア判定システム
US9256741B2 (en) Method and device for determining propagation relationship of Trojan horse files
US7458100B2 (en) Adding copy protection to a computer program
JP2000112750A (ja) 情報処理装置
EP2174256A1 (en) Method and apparatus for changing and adding activation keys for functions of digital content without having to change and recompile the digital content
US6742180B1 (en) System and method providing seamless transition of operating system environment
JP3496965B2 (ja) 文字コード変換装置
CN101004775B (zh) 微控制器及其认证方法
JPH10327140A (ja) 暗号処理装置及びその方法
JP3604977B2 (ja) バスインタフェース回路作成装置及び記録媒体
JP7384743B2 (ja) 攻撃シナリオの危険度評価装置およびその方法
JP2003316576A (ja) アプリケーション制御方法及びその実施装置並びにその処理プログラム
JP2003050640A (ja) ソフトウェア複製防止方法
JP4865449B2 (ja) 差分生成装置及び差分適用装置及び差分生成プログラム及び差分適用プログラム及び差分生成適用システム及び差分生成適用方法
KR101829426B1 (ko) 문자열 점수 기반 소프트웨어 저장 장치와 분류 장치 및 그 방법
JPH0744428A (ja) 外部記憶装置の処理方法
JP4281066B2 (ja) デジタルコンテンツデータ処理装置およびプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051228

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20051228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060223

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060407

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081212

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141219

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term