JP2002132371A - 情報処理システム、実行可能モジュール生成方法および記憶媒体 - Google Patents

情報処理システム、実行可能モジュール生成方法および記憶媒体

Info

Publication number
JP2002132371A
JP2002132371A JP2001224250A JP2001224250A JP2002132371A JP 2002132371 A JP2002132371 A JP 2002132371A JP 2001224250 A JP2001224250 A JP 2001224250A JP 2001224250 A JP2001224250 A JP 2001224250A JP 2002132371 A JP2002132371 A JP 2002132371A
Authority
JP
Japan
Prior art keywords
code
protected
executable module
information processing
protection
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
JP2001224250A
Other languages
English (en)
Other versions
JP3712366B2 (ja
Inventor
Hiroshi Yamamoto
浩 山本
Toshimitsu Ohira
俊充 大平
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2001224250A priority Critical patent/JP3712366B2/ja
Priority to US09/928,907 priority patent/US7290137B2/en
Priority to EP01119450A priority patent/EP1182532A3/en
Publication of JP2002132371A publication Critical patent/JP2002132371A/ja
Application granted granted Critical
Publication of JP3712366B2 publication Critical patent/JP3712366B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】ライブラリ等の不正コピーを防止する。 【解決手段】暗号化ライブラリファイルL2には、実行
可能プログラムファイルに埋め込まれた2つのププロテ
クトコードに矛盾があれば、初期化段階で処理を終了さ
せるプロテクトコードチェック手続きが含まれている。
実行可能プログラムファイル作成時、暗号化ライブラリ
ファイルL2が復号され、それに第一プロテクトコード
1が埋め込まれる(S304)。そのあと、復号後のラ
イブラリファイルL2とオブジェクトファイルM2とが結
合編集され、実行可能プログラムファイルが作成される
(S305)。そして、使用済みライブラリファイルL2
を消去してから(S306)、実行可能プログラムファイ
ルM3に、第一プロテクトコードC1と所定の関係にある
第二プロテクトコードC2がさらに埋め込まれる(S30
7)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラム開発環
境等におけるリソース不正コピーの防止技術に関する。
【0002】
【従来の技術】プログラムの不正コピーを防止するため
の技術として、特許公報第2569564号記載の、ソ
フトウエアのコピープロテクト装置が知られている。こ
の装置によれば、フロッピディスクから読み出したプロ
テクトコードが外部に出力されないため、その不正な書
替えを防止することができる。これにより、不正に複製
されたソフトウエアを実行可能とすることが困難とな
り、ソフトウエアの不正な複製を効果的に防止すること
ができる。
【0003】
【発明が解決しようとする課題】プログラムが作成され
る際には、通常、グラフィック機能その他の基本的機能
を提供するライブラリ等のリソースが使用される。この
ような、ライブラリ等のリソースに含まれているオブジ
ェクトは、実行可能モジュールではない。そのため、不
正コピー防止のためのプロテクトをライブラリにかける
ことが困難である。したがって、現在のところ、ライブ
ラリ等のリソースは、メーカ側がプログラム開発者の良
識を信頼するというかたちで、プロテクトがかけられて
いないまま提供されているのが実情である。
【0004】しかし、ライブラリ等のリソースは、プロ
グラムと同様、重要な開発成果であるため、なんらかの
コピープロテクトがかけられるようにすることが望まれ
ている。
【0005】そこで、本発明は、実行可能モジュール以
外のオブジェクトの不正コピーを防止することを目的と
する。
【0006】
【課題を解決するための手段】上記課題を解決するた
め、本発明は、実行可能モジュールに含まれたプロテク
トコードの矛盾により処理を終了させる手続きを含む、
暗号化済みのプロテクト対象オブジェクトを記憶した記
憶手段と、前記記憶手段から前記暗号化済みプロテクト
対象オブジェクトを読み出し、当該暗号化済みプロテク
ト対象オブジェクトを復号する復号手段と、前記復号後
のプロテクト対象オブジェクトと他のオブジェクトとの
結合によって作成される実行可能モジュールに前記プロ
テクトコードを含ませるコード書込み手段と、前記復号
後のプロテクト対象オブジェクトを、前記他のオブジェ
クトとの結合を行った後に消去する削除手段と、を有す
ることを特徴とする情報処理装置を提供する。
【0007】
【発明の実施の形態】以下、添付の図面を参照しなが
ら、本発明に係る実施の一形態について説明する。ただ
し、ここでは、ライブラリをプロテクト対象オブジェク
トとする。
【0008】まず、図1により、プログラム開発側で使
用される情報処理システムの概略ハードウエア構成につ
いて説明する。
【0009】プログラム開発側の情報処理システムは、
情報処理装置100、ユーザ(プログラム開発者)からの
データ入力を受け付ける入力装置(マウス、キーボード
等)120、各種データを出力する出力装置(ディスプレ
イ装置等)130、等から構成されている。さらに、こ
のシステムには、その他の装置が必要に応じて増設され
ることもある。
【0010】情報処理装置100は、後述の実行可能プ
ログラムファイル作成処理等を実行するCPU101、
グラフィック描画処理等を実行するグラフィックス機構
102、主記憶103、CPU101と主記憶103と
の間をつないだプロセッサバス105、CPU101等
と主記憶103またはバス106との間のデータ転送を
制御するメモリ/バス制御チップ104、グラフィック
ス機構102のグラフィックス制御チップとメモリ/バ
ス制御チップ104との間をつないだAGP、ソフトウ
エア開発のために必要となる各種データ(シリアル番号
等の識別情報が埋め込まれたフロントエンドツール、フ
ロントエンドツールによって起動されるリンカおよびコ
ンパイラ、フロントエンドツールとともに提供された暗
号化ライブラリファイル等)が格納されたハードディス
ク106、ハードディスク106に対するデータ読込み
/書込み処理を実行するハードディスク・ドライブ10
7、ハードディスクドライブ107がつながれた高速バ
ス106、記憶媒体Aに対するデータ読込み読書き/書
込み処理を実行するドライブ112、入力装置120か
らのデータ転送を制御するコントローラ111、出力装
置130へのデータ転送を制御するコントローラ11
3、各コントローラ111,113とドライブ112と
がつながれた低速バス109、低速バス109と高速バ
ス106との間をつないだブリッジ回路110、通信ポ
ート(シリアルポート、パラレルポート等)、等を備えて
いる。なお、ここで示した情報処理装置100の内部構
成は、ソフトウエア開発に使用されるものとしての一例
である。
【0011】つぎに、この情報処理システムのハードデ
ィスク106内の格納データについて説明する。
【0012】コンパイラは、CPUに、指定ソースプロ
グラムファイルに記述されたソースを、解析処理(字句
解析、構文解析、意味解析)等によってオブジェクトと
して翻訳編集させ、そのオブジェクトをオブジェクトフ
ァイルに格納させる処理が定義されたソフトウエアであ
る。リンカは、CPUに、指定オブジェクトファイル群
のそれぞれに記述されているオブジェクトを結合編集さ
せることによって実行可能モジュールを組み立てさせ、
その実行可能モジュールを実行可能プログラムファイル
に格納させる処理が定義されたソフトウエアである。そ
して、本実施の形態に係るフロントエンドツールは、C
PUに、コンパイラおよびリンカを起動させ、後述の実
行可能プログラムファイル作成処理を実行させる処理が
定義されたソフトウエアである。
【0013】暗号化ライブラリファイルL1 (以下、暗
号化LibファイルL1と呼ぶ)は、フロントエンドツー
ルとともに、ユーザ(プログラム開発者)に提供される。
例えば、暗号化LibファイルL1が記録されたインス
トール用CD−ROMと、フロントエンドツールが記録
されたインストール用フロッピィディスクとがワンセッ
トとしてユーザに提供される。
【0014】この暗号化LibファイルL1は、1以上
のライブラリファイルL(以下、LibファイルL
と呼ぶ)を適当な暗号化処理で暗号化することによって
作成されたものである。ユーザは、実行可能プログラム
ファイル作成時に、この暗号化LibファイルL1をフ
ロントエンドツールで復号化することによって、実行可
能プログラムファイル作成に必要な1以上のLibファ
イルL2を得る。このように、ライブラリファイルを、
暗号化された状態で提供し、それと共に提供されたフロ
ントエンドツールによってその復号化させるようにした
のは、後述するように、フロントエンドツールを持たな
いユーザによるLibファイル不正使用を禁じるためで
ある。
【0015】暗号化LibファイルL1の復号により生
成されるLibファイルL2には、グラフィック機能、
イベント処理等、アプリケーションにおいて使用される
基本的な関数等のオブジェクトが部品化されて格納され
ている。また、すべてのアプリケーションにおいて呼び
出される初期化関数が含まれている、LibファイルL
2内のオブジェクトには、さらに、初期化関数において
呼び出されるプロテクトコードチェック手続きと、オブ
ジェクトファイルM2との結合編集前に第一プロテクト
コードC1が格納される第一プロテクトコード格納変数
とが定義されている。ここで、プロテクトコードチェッ
ク手続きには、第一プロテクトコード格納変数の格納デ
ータとプログラムファイル末尾の格納データとが、正規
のプロテクトコードC1,C2が満たす関係を満たしてい
るか否かをチェックし、その関係を満たしていなければ
実行中プログラムを初期化段階で終了させる手続きが定
義されている。
【0016】なお、本実施の形態では、初期化関数が含
まれているLibファイルL2だけにプロテクトコード
チェック関数および第一プロテクトコード格納変数を含
ませているが、すべてのLibファイルにプロテクトコ
ードチェック関数および第一プロテクト格納変数を含ま
せることにしてもよい。または、代表的なLibファイ
ル、例えば、プロテクトをかける必要のあるLibファ
イルだけにプロテクトコードチェック関数および第一プ
ロテクト格納変数を含ませることにしてもよい。
【0017】本実施の形態に係る情報処理システムは、
このようなハードウエア構成およびハードディスク格納
データ(フロントエンドツール、コンパイラ、リンカ等
のソフトウエア、暗号化ライブラリファイル)によっ
て、図2に示すような機能構成を実現する。具体的に
は、(1)フロントエンドツールの起動コマンドの入力を
受け付ける入力受付部200、(2)起動時にフロントエ
ンドツール複製チェック処理を実行する起動時チェック
処理部201、(3)開発成果(ソースプログラムファイ
ルM1、オブジェクトファイルM2、実行可能プログラム
ファイルM3)を格納するための開発成果記憶部202、
(4)ソースプログラムファイルM1からオブジェクトフ
ァイルM2を生成するコンパイル処理部203、(5)暗
号化LibファイルL1を記憶したライブラリ記憶部2
04、(6)暗号化LibファイルL1を複号する復号化
処理部205、(7)復号化処理部204の復号化処理に
よって生成されたLibファイルを一時ファイルL2
して記憶する一時ファイル記憶部(tmp)206、(8)
LibファイルL2とオブジェクトファイルM2との結合
編集により実行可能プログラムファイルM3を生成する
リンク処理部207、(9)リンク処理部207の結合編
集処理後に一時ファイルL2を削除する一時ファイル削
除処理部208、(10)リンク処理部207の結合編集
処理前のLibファイルL2とこのLibファイルL2
ら作成された実行可能プログラムファイルM 3とにそれ
ぞれプロテクトコードC1,C2を付与するコード付与処
理部209、(11)これら各処理部を制御する制御処理
部210、が実現される。
【0018】ここで、コード付与処理部209は、(1
2)互いに関連付けられた1組のプロテクトコードC1,
2(例えば、C1=f(C2)の関係を満たす1組のプロテ
クトコードC1,C2)を生成するコード生成処理部209
a、(13)コード生成処理部209aが生成した1組の
プロテクトコードC1,C2のうちの一方のコードC1(第
一プロテクトコードと呼ぶ)をLibファイルL2内のコ
ード格納変数に書き込むとともに他方のコードC2(第二
プロテクトコードと呼ぶ)を実行可能プログラムファイ
ルM3の末尾に付加するコード書込処理部209b、か
らなっている。
【0019】つぎに、これら各機能構成部により実行さ
れる実行可能プログラムファイル作成処理について説明
する。
【0020】プログラム開発者は、コーディングが終了
したら、ソースプログラムファイルM1をハードディス
ク108の所定の領域(図2の開発成果記憶部202に
相当)に格納してから、そのソースプログラムファイル
名と必要なライブラリファイル名とを指定してフロント
エンドツールを起動する。これにより、CPUが、フロ
ントエンドツールに定義された処理を実行し、以下に示
す実行可能プログラムファイル作成処理(図3のフロー
チャート参照)が実現される。
【0021】まず、フロントエンドツールの起動コマン
ドを受け付けた入力受付部200は、制御処理部210
に処理開始を指示する(S300)。制御処理部210
は、この指示を受け付けると、フロントエンドツール複
製チェック処理の実行を起動時チェック処理部201に
指示する。起動時チェック処理部201は、この指示に
したがって、以下に示す方法により、フロントエンドツ
ールの不正使用をチェックする(S301)。
【0022】例えば、プログラム開発環境にLANが構
築されており、ネットワーク上で起動中のプログラムの
識別情報が重複していないか否かを監視するチェックプ
ログラムがネットワーク上に常駐している場合であれ
ば、起動時チェック処理部201は、フロントエンドツ
ールに付与されている識別情報をネットワーク上に送信
する。これに応じて、チェックプログラムは、それと同
じ識別情報がネットワーク上に存在するか否かを返信す
る。フロントエンドツールがコピー品であれば、同じ識
別情報が複数ネットワーク上に存在し、フロントエンド
ツールがコピー品でなければ、同じ識別情報が複数ネッ
トワーク上に存在することはないため、フロントエンド
ツールの不正使用のチェックが可能となる。
【0023】また、フロントエンドツールにドングルが
割り当てられている場合であれば、起動時チェック処理
部201は、情報処理装置の通信ポートに装着されてい
るドングルに認証メッセージを送る。このメッセージに
応じて、ドングルは、自身に割り当てられた識別情報を
返信する。認証されたユーザがフロントエンドツールを
起動した場合であれば、ドングルから返信された識別情
報が、フロントエンドツールの識別情報と一致し、認証
されたユーザ以外のユーザがフロントエンドツールを起
動した場合であれば、ドングルの装着がないために識別
情報の返信がないか、または、ドングルから返信された
識別情報がフロントエンドツールの識別情報と一致しな
いことになるため、フロントエンドツールの不正使用の
チェックが可能となる。
【0024】このようなチェックの結果に基づき、起動
時チェック処理部201は、フロントエンドツールの使
用に不正(フロントエンドツールが複製品である、認証
ユーザ以外のユーザによる使用である、等)があるか否
かを判断する(S302)。
【0025】その結果、起動時チェック処理部201が
フロントエンドツールの使用に不正があると判断した場
合には、制御処理部210が、エラーメッセージを出力
してから(S303)、処理を終了させる(S308)。こ
れにより、フロントエンドツールの不正使用が禁止され
るため、フロントエンドツールの不正使用者には、暗号
化LibファイルLを復号することが困難となる。し
たがって、LibファイルLの不正使用も禁止され
る。
【0026】一方、起動時チェック処理部201がフロ
ントエンドツールの使用に不正がないと判断した場合に
は、制御処理部210が、指定のソースプログラムファ
イルM1の機械語翻訳をコンパイル処理部203に指示
する。コンパイル処理部203は、この指示に応じて、
指定のソースプログラムファイルM1をアセンブリプロ
グラムにコンパイルし、そのアセンブリプログラムをオ
ブジェクトにアセンブルする。その後、コンパイル処理
部203は、このとき生成したオブジェクトファイルM
2を開発成果記憶部202に格納してから、制御処理部
210に正常終了を報告する。
【0027】制御処理部210は、コンパイル処理部2
03から正常終了報告を受け付けると、暗号化Libフ
ァイルLの復号化を復号化処理部205に指示する。
復号化処理部205は、この指示に応じて、ライブラリ
記憶部204から暗号化LibファイルL1を取り出
し、それを復号化する。これにより1以上のLibファ
イルLが生成されると、復号化処理部205は、その
LibファイルL2を、適当なファイル名の一時ファイ
ルとして一時ファイル記憶部206に格納し、制御処理
部210に正常終了を報告する。
【0028】制御処理部210は、復号化処理部205
からの正常終了報告を受け付けると、LibファイルL
2に対するプロテクトコード付与をコード付与処理部2
09に指示する。この指示に応じて、コード付与処理部
209では、以下の処理が実行される。まず、コード生
成処理部209aが、図4に示すように、乱数Cを発生
し、この乱数Cを2つの加工方法F1,F2(例えば、乱数
Cを入力データとする2つの関数等)でそれぞれ加工す
ることによって2つのプロテクトコードC1,C2を生成
する。ここで生成された2つのプロテクトコードC1,C
2には、前述したように、予め定められた関係(ここで
は、C1=f(C2)とする)がある。これらのプロテクト
コードC1,C2は、さらに、コード生成処理部209a
によって、適当な暗号化方法でそれぞれ暗号化される。
ついで、コード書込み処理部209bが、第二プロテク
トコードC2を保持するとともに、所定のLibファイ
ルL2内の第一プロテクトコード格納変数に第一プロテ
クトコードC1を格納する(S304)。
【0029】このようにして、LibファイルL2に対
するプロテクトコード付与が終了すると、制御処理部2
10は、リンク処理部207に、オブジェクトファイル
2と指定のLibファイルL2との結合編集を指示す
る。リンク処理部207は、この指示に応じて、オブジ
ェクトファイルM2と指定のLibファイルL2とを結合
し、実際の番地の埋込み等を行う。これにより実行可能
プログラムファイルM 3が組み立てられると、リンク処
理部207は、その実行可能プログラムファイルM
3を、適当な名前で開発成果記憶部202に格納してか
ら、正常終了を制御処理部210に報告する(S30
5)。
【0030】制御処理部210は、リンク処理部207
からの正常終了報告を受け付けると、一時ファイル削除
を一時ファイル削除処理部208に指示する。この指示
に応じて、一時ファイル削除処理部208は、すべての
LibファイルL2を一時ファイル記憶部206から削
除する(S306)。
【0031】その後、制御処理部210は、実行可能プ
ログラムファイルL3に対するプロテクトコード付与を
コード付与処理部209に指示する。この指示に応じ
て、コード付与処理部209のコード書込み処理部20
9bが、保持中の第二プロテクトコードC2を実行可能
プログラムファイルM3に付加してから、正常終了を制
御処理部210に報告する(S307)。なお、ライセン
シー管理(例えば、プログラム作成会社の識別等)のため
に、このときフロントエンドツールの識別情報も、、コ
ード付与処理部209によって実行可能プログラムファ
イルM3に埋め込まれるようにしてもよい。
【0032】制御処理部210は、コード付与処理部2
09からの正常終了報告を受け付けると、処理を終了さ
せる(S308)。なお、以上の処理により作成された実
行可能プログラムファイルM3は、例えば、光ディスク
等の記憶媒体に焼き付けられて市場に供給される(図9
参照)。
【0033】本実施の形態に係る実行可能プログラムフ
ァイル作成処理によれば、以下に示すように、Libフ
ァイルLの不正使用が防止される。 (1)ハードディスクに格納されたLibファイルが暗号
化されており、かつ、それを復号するフロントエンドツ
ールの不正使用が、起動時チェック(図2のS301)に
よって禁止される。このため、フロントエンドツールの
正当使用者以外のユーザによる、Libファイルの使用
が防止される。 (2)図5に示すように、実行中のプログラムファイルに
埋め込まれたプロテクトコードに矛盾があった場合にそ
の処理を終了させるプロテクトコードチェック手続きE
をLibファイルL2にあらかじめ含めておき、フロン
トエンドツールの使用によってLibファイルL2とオ
ブジェクトファイルM2とが結合された実行可能プログ
ラムファイルM3にだけ、実行可能プログラムファイル
作成処理の過程(S304、S307)において適正なプ
ロテクトコードC1,C2が埋め込まれるようにすること
によって、フロントエンドツールの正当使用により作成
された実行可能プログラムファイルM3のみを実行可能
とすることができる。すなわち、フロントエンドツール
によらずLibファイルが結合された実行可能プログラ
ムファイル、具体的には、不正なプロテクトコード(一
方または両方)が埋め込まれた実行可能プログラムファ
イル、プロテクトコード(一方または両方)が埋め込まれ
ていない実行可能プログラムファイル等の実行が、初期
化段階において阻止される。このため、フロントエンド
ツールの正当使用者以外のユーザによる、Libファイ
ルの使用が防止される。 (3) 図5に示すように、乱数Cから生成された1組の
プロテクトコードC1,C2のうち、第一プロテクトコー
ドC1だけをLibファイルL2に埋め込んでおき(S3
04)、その後、LibファイルL2とオブジェクトファ
イルM2との結合編集(S305)が終了したら、実行可
能プログラムファイルM2へ第二プロテクトコードC2
埋め込む前にLibファイルL2を消去(S306)して
しまうため、使用済みLibファイルL2の不正利用が
防止される。すなわち、一方のプロテクトコードC1
埋め込まれた使用済みLibファイルL2を消去前に取
り出すことができたとしても、その段階(S304〜S
306)では、乱数Cから生成された他方のプロテクト
コードC2の取り出しが不可能であるから、その使用済
みLibファイルL2に埋め込まれている第一プロテク
トコードC1と矛盾しない第二プロテクトコードC2を知
ることは困難である。このため、消去前に取り出した使
用済みLibファイルL2とオブジェクトファイルとを
結合編集したとしても、使用済みLibファイルL2
埋込済みの第一プロテクトコードと適正な関係を有する
第二プロテクトコードを実行可能プログラムファイルに
埋め込むことは困難である。したがって、使用済みLi
bファイルの不正使用が防止される。 (4)最終的に作成された実行可能プログラムファイルM
3の解析によって、それに埋め込まれた1組のプロテク
トコードC1,C2を知ってから、つぎのフロントエンド
ツール起動時に使用済みLibファイルL2を消去前に
取り出したとしても、プロテクトコードC1,C2は、毎
回、乱数から生成されるため、消去前に取り出した使用
済みLibファイルL2に埋め込まれている第一プロテ
クトコードC1に対応する第二プロテクトコードは、実
行可能プログラムファイルM3の解析によって知った第
二プロテクトコードC2とは必ずしも一致しない。この
ため、最終的に作成された実行可能プログラムファイル
3の解析によっても、適正な関係を有する1組のプロ
テクトコードを得ることは困難である。したがって、消
去前に取り出した使用済みLibファイルL2とオブジ
ェクトファイルとを結合編集したとしても、使用済みL
ibファイルL2に埋込済みの第一プロテクトコードと
適正な関係を有する第二プロテクトコードを実行可能プ
ログラムファイルに埋め込むことは困難である。このた
め、使用済みLibファイルの不正使用が防止される。
【0034】以上の4つの防止策によってLibファイ
ル不正使用が防止されるが、ライブラリバージョンアッ
プのたびに、Libファイルの暗号化方法とプロテクト
コードチェック手続きの内容とをそれぞれ変更するよう
にすれば、Libファイルの不正使用防止が強化され
る。なお、このようにする場合には、Libファイル複
合方法および乱数加工方法が変更されたフロントエンド
ツールが、新バージョンの暗号化Libファイルととも
にリリースされる必要がある。
【0035】ところで、以上においては、Libファイ
ルL2内で定義された第一プロテクトコード格納変数に
第一プロテクトコードC1を格納し、実行可能プログラ
ムファイルM3の末尾に第二プロテクトコードC2を付加
することとしているが、必ずしも、このようにする必要
はない。例えば、プロテクトコード付与処理部が、図6
に示すように、LibファイルL2の末尾に、ダミーデ
ータと第一プロテクトコードC1とを含んだ第一ダミー
エリアを付加し、実行可能プログラムファイルM3
末尾に、ダミーデータと第二プロテクトコードC2とを
含んだ第二ダミーエリアを付加するようにしてもよ
い。そして、2つのダミーエリアの合計データ量を
変えないように、各ダミーエリアに含まれるダミー
データのデータ量をランダムに変化させるようにすれ
ば、1つの実行可能プログラムファイルM3を作成する
ごとに、その内部におけるプロテクトコードC1,C2
アドレスが変化するため、プロテクトコードC1,C2
間にある関係の解析を困難にすることができる。
【0036】また、以上においては、プロテクトコード
チェック手続きが組み込まれたLibファイルに第一プ
ロテクトコードをリンク前に埋め込み、実行可能プログ
ラムファイルが完成したときに、さらに、この実行可能
プログラムファイルに第二プロテクトコードを埋め込む
こととしているが、かならずしも、このようにする必要
はない。例えば、プロテクトコードチェック手続きが組
み込まれたLibファイルにはプロテクトコードを組み
込まず、実行可能プログラムファイルが完成したとき
に、この実行可能プログラムファイルに、プロテクトコ
ードチェック手続きによって正当性をチェック可能なプ
ロテクトコード(例えば、互いに関連付けられた複数の
プロテクトコード)を埋め込むようにしてもよい。
【0037】つぎに、本実施の形態に係るプログラムフ
ァイル作成処理により作成された実行可能プログラムフ
ァイルM3を実行することができるシステムの概略ハー
ドウエア構成について説明する。ただし、ここでは、シ
ステムの一例として、エンタテインメント装置を挙げる
こととする。
【0038】図7は、本実施の形態に係るエンタテイン
メント装置700およびその周辺機器の外観図であり、
図8は、本実施の形態に係るエンタテインメント装置7
00の概略ハードウエア構成図である。
【0039】本実施の形態に係るエンタテインメント装
置700は、CD−ROM、DVD−ROM等の光ディ
スク900からゲームプログラム(前述のプログラムフ
ァイル作成処理により作成された実行可能プログラムフ
ァイルM3等)を読み出し、そのゲームプログラムにした
がってゲームを実行するものである。ここで、「ゲーム
の実行」とは、エンタテインメント装置700が、ユー
ザ(以下、ゲームプレイヤと呼ぶ)からの指示にしたがっ
て、表示装置(CRT、LCD、プロジェクション装置
等)上の表示映像およびオーディオ装置からの音声をゲ
ームストーリ等にあわせて変化させることをいう。
【0040】図7に示すように、エンタテインメント装
置700の筐体前面部には、ゲームプレイヤがゲームを
実行させるために必要となる各種の操作部が設けられて
いる。このような操作部の具体例としては、ゲームプロ
グラムが格納された光ディスク900が装着されるディ
スク装着部701、ディスク装着部701からトレイを
引き出すためのトレイ操作ボタン701A、ゲームプレ
イヤからの入力を受け付ける各種入力受付け部(ボタン
753A,753B,754〜758、方向キー752、
スティック751A,751B等)を有するコントローラ
750が接続される複数(ここでは2つ)のコントローラ
接続部702A,702B、実行中のゲームをリセット
するためのリセットボタン703、ゲームデータ等を記
録させるためのメモリカード730が装着される複数
(ここでは2つ)のメモリカード装着部704A,704
B、等が挙げられる。ここでコントローラ接続部702
A,702Bが複数設けられているのは、各コントロー
ラ接続部702A,702Bにそれぞれコントローラを
接続することによって、エンタテインメント装置700
が、複数のゲームプレイヤからの指示を受け付けること
ができるようにするためである。
【0041】また、エンタテインメント装置700の筐
体背面部(前面の反対側)には、電源オンオフスイッチ
(不図示)、表示装置等が接続されるAV端子(不図示)が
設けられている。
【0042】そして、このエンタテインメント装置70
0の内部には、図8に示すように、装置全体を制御する
メインCPU800、AV端子(不図示)から出力される
ビデオ信号を生成するグラフィックプロセッサ(GP)8
01、コントローラ接続部702A,702Bに接続さ
れたコントローラ750およびメモリカード接続部70
4A,704Bに接続されたメモリカード730とのデ
ータ転送を制御するI/Oプロセッサ(IOP)802、
ディスク装着部701に装着された光ディスク900か
らのデータ読出しを制御する光ディスク制御部803、
AV端子(不図示)から出力されるオーディオ信号を生成
するサウンド再生処理プロセッサ(SPU)804、サウ
ンドバッファ805、メインCPU800およびIOP
802が実行する各オペレーティングシステムプログラ
ムが格納されたOS−ROM806、IOPのワークエ
リアとして用いられるIOPメモリ807、メインCP
U800のワークエリアおよびバッファとして用いられ
るメインメモリ808、これら各部の間をつないだバス
809等が搭載されている。
【0043】このエンタテインメント装置700に電源
が投入されると、2種類のオペレーティングシステムプ
ログラム(メインCPU用、IOP用)がそれぞれOS−
ROM806から読みだされ、それらがメインCPU8
00とIOP802とによってそれぞれ起動される。こ
れにより、オペレーティングシステムによる、装置各部
の統合制御が開始され、エンタテインメント装置として
の各種機能がゲームプレイヤに提供される。具体的に
は、光ディスクからの実行可能プログラムファイル読込
みおよびその実行、コントローラを介したゲームプレイ
ヤからの指示受付け、ゲームプレイヤの指示に応じた映
像表示および効果音・楽音出力等が可能な環境が提供さ
れる。
【0044】このような環境において、図9に示した光
ディスク900から、上述の実行可能プログラムファイ
ル作成処理によって作成されたゲーム用実行可能プログ
ラムファイルM3が読み込まれると、そのゲーム用実行
可能プログラムファイルM3に定義された処理を実行す
るための機能構成が、メインCPU800によってプロ
セスとして実現される。すなわち、図10に示すよう
に、エンタテインメント装置700は、(1)実行可能プ
ログラムファイルM3の所定領域(第一プログラム格納変
数)の格納データ(実行可能プログラムファイルM3がL
ibファイルの正当使用により生成されたものであれ
ば、正当な第一プロテクトコードC1)が格納された第一
プロテクトコード格納部1000、(2)実行可能プログ
ラムファイルM 3の末尾領域の格納データ(実行可能プロ
グラムファイルM3がLibファイルの正当使用により
生成されたものであれば、正当な第二プロテクトコード
2)が格納された第二プロテクトコード格納部100
1、(3)起動時にプロテクトコードチェック手続きを実
行するプロテクトコードチェック処理部1002、(4)
プロテクトコードチェック処理部1002からの開始指
示に応じて、ゲームを実行するゲーム実行処理部100
3、(5)コントローラからの入力信号をゲーム実行処理
部1003に渡す入力データ受付処理部1004、(6)
ゲーム実行処理部1003の指示にしたがって、効果音
等のオーディオ信号を生成する音声制御処理部100
5、(7)ゲーム処理部1003の指示にしたがって、ゲ
ーム画面映像のビデオ信号を生成する映像制御処理部1
006、が実現される。ここで、プロテクトコードチェ
ック処理部1002には、(8)第一プロテクトコードC
1および第二プロテクトコードC2を復号するコード復号
処理部1002a、(9)復号後の2つのプロテクトコー
ドC1,C2の整合性をチェックするコードマッチング処
理部1002b、(10)与えられた終了指示にしたがっ
て、処理を終了させる終了処理部1002d、(11)コ
ードマッチング処理部1002bのチェック結果に応じ
て、終了処理部1002dに終了指示またはゲーム処理
部に開始指示を与える制御処理部1002c、が含まれ
ている。
【0045】つぎに、図11により、これらの機能構成
部によって実行される処理について説明する。
【0046】図9の光ディスク900から読み込まれた
実行可能プログラムファイルM3が起動されると(S11
00)、図10の機能構成部が以下の処理を開始する。
【0047】ゲームの開始前に、実行可能プログラムフ
ァイルM3に組み込まれたLibファイルL2が正当使用
によるものか否かを判断するため、以下の自己診断処理
がプロテクトコードチェック処理部1002によって実
行される。
【0048】まず、制御処理部1002cが、コードの
復号をコード復号処理部1002aに指示する。この指
示に応じて、コード復号処理部1002aは、第一プロ
テクトコード格納部1000の格納データと、第二プロ
グラムコード格納部1001の格納データとを取り出
し、それらをそれぞれ復号する。
【0049】フロントエンドツールの正当使用により作
成された実行可能プログラムファイルM3であれば、1
組のプロテクトコード生成に用いられた関係(ここでは
1=F(C2))を満たすデータC1,C2が、このときの復
号処理によって得られるはずである。そこで、コードマ
ッチング処理部1002bは、ここで得られた2つのデ
ータがその関係を満たすか否かを診断し、その診断結果
を制御処理部1102cに通知する(S1101)。
【0050】制御処理部1102cは、実行可能プログ
ラムファイルM3に組み込まれたLibファイルL2が正
当使用によるものか否かを、コードマッチング処理部1
002bの診断結果に基づき判断する(S1102)。具
体的には、1組のプロテクトコード生成に用いた関係を
満たさないという診断結果が通知された場合には、プロ
テクトコードに矛盾ありと判断し、1組のプロテクトコ
ード生成に用いた関係を満たすという診断結果が通知さ
れた場合には、プロテクトコードに矛盾なしと判断す
る。
【0051】以上の自己診断処理によってプロテクトコ
ードに矛盾ありと判断した場合には、制御処理部110
2cは、その旨を表すエラーメッセージを出力し(S1
003)、終了処理部1002dに終了指示を与える。
この指示に応じて、終了処理部1002dは、所定の終
了処理を実行し、プログラムを終了させる(S110
6)。
【0052】一方、プロテクトコードに矛盾なしと判断
した場合には、制御処理部1002dは、ゲーム実行処
理部1003に開始指示を与える。この指示に応じて、
ゲーム実行処理部1003は、ゲーム処理を開始する
(S1104)。
【0053】以後、コントローラを介して送られてく
る、ゲームプレイヤからの指示は、入力データ受付処理
部1004からゲーム実行処理部1003に渡される。
そして、ゲーム実行処理部1003は、入力データ受付
処理部1004から渡された指示に応じて、表示装置上
の表示映像およびオーディオ装置からの音声を変化させ
るべく、音声制御処理部1005と映像制御処理部10
06とを制御する。この間、ゲーム実行処理部1003
は、ゲームオーバーの条件を満たしたか否かの判断(S
1105)を定期的に行ない、ゲームオーバーと判断し
たら、ゲームを終了させる(S1106)。
【0054】このように、本実施の形態に係るエンタテ
インメント装置によれば、読み込んだゲーム用実行可能
プログラムファイルに正当なプロテクトコードが埋め込
まれている場合にだけゲームを開始させ、読み込んだゲ
ーム用実行可能プログラムファイルに正当なプロテクト
コードが埋め込まれていなければ、ゲームを終了させ
る。したがって、フロントエンドツールの正当使用によ
ってゲーム用実行可能プログラムファイルが作成されて
いなけば、エンタテインメント装置でゲームをすること
ができない。このため、フロントエンドツールの正当使
用者以外のユーザによるLibファイル使用を止するこ
とできる。
【0055】なお、以上においては、上述の実行可能プ
ログラムファイル作成処理により作成された実行可能プ
ログラムファイルを実行するための装置としてエンタテ
インメント装置を例に挙げたが、上述の実行可能プログ
ラムファイル作成処理により作成された実行可能プログ
ラムファイルを実行するための装置は、必ずしもエンタ
テインメント装置である必要はない。例えば、プログラ
ムの実行能力のある、一般的な電子計算機であってもよ
い。もちろん、実行可能プログラムファイルも、ゲーム
以外の処理を実行させるものであってもよい。
【0056】また、ここでは、記憶媒体から実行可能プ
ログラムファイルが実行装置に読み込まれるようにして
いるが、ネットワーク等の伝送媒体によって実行可能プ
ログラムファイルが伝送され、それが実行装置のハード
ディスクに格納されるようにしてもよい。
【0057】また、以上においては、ライブラリファイ
ルをプロテクト対象としているが、その他のファイル
(例えば、画像データ等が格納されたファイル等の、実
行可能ファイル以外のファイル)をプロテクト対象とし
てもよい。
【0058】
【発明の効果】本発明によれば、ライブラリ等、実行可
能ファイル以外のファイルの不正コピーを防止すること
ができる。
【図面の簡単な説明】
【図1】本発明の実施の一形態に係る情報処理システム
のハードウエア構成図である。
【図2】本発明の実施の一形態に係る情報処理システム
の機能構成図である。
【図3】本発明の実施の一形態に係る実行可能プログラ
ム作成処理のフローチャートである。
【図4】本発明の実施の一形態に係る1組のプロテクト
コードの生成方法を概念的に示した図である。
【図5】本発明の実施の一形態に係る実施可能プログラ
ムファイルが作成されるまでの処理を概念的に示した図
である。
【図6】本発明の実施の一形態に係る実施可能プログラ
ムファイルのデータ構造を概念的に示した図である。
【図7】本発明の実施の一形態に係るエンタテインメン
ト装置およびその周辺機器の外観図である。
【図8】本発明の実施の一形態に係るエンタテインメン
ト装置のハードウエア構成図である。
【図9】本発明の実施の一形態に係る光ディスクの格納
データのデータ構造を概念的に示した図である。
【図10】本発明の実施の一形態に係るエンタテインメ
ント装置の機能構成図である。
【図11】本発明の実施の一形態に係る実行可能プログ
ラム作成処理のフローチャートである。
【符号の説明】 L1…暗号化ライブラリファイル L2…ライブ
ラリファイル M1…ソースファイル M2…オブジ
ェクトファイル M3…実行可能ファイル 100…情報処理装置 101…CP
U 102…グラフィックス機構 103…主記
憶 104…メモリバス制御チップ 105,10
6,109…バス 107…ハードディスクドライブ 108…ハー
ドディスク 110…ブリッジ回路 111…入力
装置コントローラ 112…CD−ROMドライブ 113…出力
装置コントローラ 120…入力装置 130…出力
装置 200…入力受付部 201…起動
時チェック処理部 202…開発成果記憶部 203…コン
パイル処理部 204…ライブラリ記憶部 205…復号
化処理部 206…一時ファイル記憶部 207…リン
ク処理部 208…一時ファイル削除処理部 209…コー
ド付与処理部 210…制御処理部 700…エンタテインメント装置 800…メイ
ンCPU 801…グラフィックプロセッサ 802…I/
Oプロセッサ 803…光ディスク制御部 804…サウ
ンド再生処理プロセッサ 805…サウンドバッファ 806…OS
−ROM 807…IOPメモリ 808…メイ
ンメモリ 809…バス 1000…第一プロテクトコード格納部 1001…第二プロテクトコード格納部 1002…プロテクトコードチェック処理部 1003…ゲーム実行処理部
フロントページの続き (72)発明者 大平 俊充 東京都中野区中央一丁目38番1号 住友中 野坂上ビル 株式会社シュガーアンドロケ ッツ内 Fターム(参考) 5B017 AA03 BA07 BA09 CA15 5B076 FA00 FB02 FB11 5B081 CC11 CC41 CC51

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】実行可能モジュールに含まれたプロテクト
    コードの矛盾により処理を終了させる手続きを含む、暗
    号化済みのプロテクト対象オブジェクトを記憶した記憶
    手段と、 前記記憶手段から前記暗号化済みプロテクト対象オブジ
    ェクトを読み出し、当該暗号化済みプロテクト対象オブ
    ジェクトを復号する復号手段と、 前記復号後のプロテクト対象オブジェクトと他のオブジ
    ェクトとの結合によって作成される実行可能モジュール
    に前記プロテクトコードを含ませるコード書込み手段
    と、 前記復号後のプロテクト対象オブジェクトを、前記他の
    オブジェクトとの結合を行った後に消去する削除手段
    と、 を有することを特徴とする情報処理装置。
  2. 【請求項2】実行可能モジュールに含まれた複数のプロ
    テクトコードの矛盾により処理を終了させる手続きを含
    む、暗号化済みのプロテクト対象オブジェクトを記憶し
    た記憶手段と、 前記記憶手段から前記暗号化済みプロテクト対象オブジ
    ェクトを読み出し、当該暗号化済みプロテクト対象オブ
    ジェクトを復号する復号手段と、 互いに関連付けられた第一のプロテクトコードと第二の
    プロテクトコードとを生成するコード生成手段と、 前記復号後のプロテクト対象オブジェクトに前記第一の
    プロテクトコードを埋め込み、当該第一のプロテクトコ
    ード埋込み済みのプログラム対象オブジェクトと他のオ
    ブジェクトとの結合により実行可能モジュールが作成さ
    れたら、当該実行可能モジュールに、前記第二のプロテ
    クトコードを埋め込むコード書込み手段と、 前記第一のプロテクトコード埋込み済みのプロテクト対
    象オブジェクトを、前記二のプロテクトコード埋込み前
    に消去する削除手段とを有することを特徴とする情報処
    理装置。
  3. 【請求項3】請求項2記載の情報処理装置であって、 前記コード生成手段は、 乱数から、前記第一のプロテクトコードと前記第二のプ
    ロテクトコードを生成することを特徴とする情報処理装
    置。
  4. 【請求項4】請求項2または3記載の情報処理装置であ
    って、 前記コード書込み手段は、 前記第一のプロテクトコードと前記第二のプロテクトコ
    ードとにダミーデータを付加することを特徴とする情報
    処理装置。
  5. 【請求項5】請求項1、2、3および4のいずれか1項
    に記載の情報処理装置であって、 前記コード書込み手段は、前記実行可能モジュールに含
    ませるためのプロテクトコードを暗号化し、 前記プロテクト対象オブジェクトには、前記実行可能モ
    ジュールを読み込んだ装置に、当該実行可能モジュール
    に含まれた暗号化済みのプロテクトコードを、当該プロ
    テクトコードの診断に際して復号させるための手続きを
    含む、 ことを特徴とする情報処理装置。
  6. 【請求項6】情報処理装置に処理を実行させるためのプ
    ログラムが格納された、機械読み取り可能な記憶媒体で
    あって、 前記プログラムは、前記情報処理装置に、 実行可能モジュールに含まれたプロテクトコードの矛盾
    により処理を終了させる手続きを含むプロテクト対象オ
    ブジェクトを、暗号化済みのプロテクト対象オブジェク
    トの復号により生成する復号処理と、 前記復号処理で生成されたプロテクト対象オブジェクト
    と他のオブジェクトとの結合により、前記実行可能モジ
    ュールを作成する結合処理と、 前記結合処理による作成される実行可能モジュールに前
    記プロテクトコードを含ませるためのコード書込み処理
    と、 前記復号処理で生成されたプロテクト対象オブジェクト
    を、前記他のオブジェクトとの結合後に消去する削除処
    理と、 を実行させることを特徴とする記憶媒体。
  7. 【請求項7】情報処理装置に処理を実行させるためのプ
    ログラムが格納された、機械読み取り可能な記憶媒体で
    あって、 前記プログラムは、前記情報処理装置に、 実行可能モジュールに含まれた複数のプロテクトコード
    の矛盾により処理を終了させる手続きを含むプロテクト
    対象オブジェクトを、暗号化済みのプロテクト対象オブ
    ジェクトの復号により生成する復号処理と、 互いに関連付けられた第一のプロテクトコードと第二の
    プロテクトコードとを生成するコード生成処理と、 前記復号処理後、当該復号処理で生成されたプロテクト
    対象オブジェクトに、前記第一のプロテクトコードを埋
    め込む第一コード書込み処理と、 前記コード書込み処理後、当該コード書込み処理で前記
    第一のプロテクトコードが埋め込まれたプロテクト対象
    オブジェクトと、他のオブジェクトとの結合により、実
    行可能モジュールを作成する結合処理と、 前記結合処理後、当該結合処理で作成された前記実行可
    能モジュールに前記第二プロテクトコードを埋め込む第
    二コード書込み処理と、 前記第一コード書込み処理後、前記第二コード書込み処
    理前に、前記復号処理で生成された前記プロテクト対象
    オブジェクトを消去する削除処理と、 を実行させることを特徴とする記憶媒体。
  8. 【請求項8】請求項7記載の記憶媒体であって、 前記プログラムは、前記コード生成処理において、前記
    情報処理装置に、 乱数から、前記第一のプロテクトコードと前記第二のプ
    ロテクトコードを生成させることを特徴とする記憶媒
    体。
  9. 【請求項9】請求項7または8記載の記憶媒体であっ
    て、 前記プログラムは、前記情報処理装置に、 前記第一のプロテクトコードと前記第二のプロテクトコ
    ードとにダミーデータを付加させることを特徴とする記
    憶媒体。
  10. 【請求項10】請求項6、7、8および9のいずれか1
    項に記載の記憶媒体であって、 前記プログラムは、前記実行可能モジュールに含ませる
    ためのプロテクトコードを暗号化する処理を前記情報処
    理装置に実行させ、 前記プロテクト対象オブジェクトには、前記実行可能モ
    ジュールを読み込んだ装置に、当該実行可能モジュール
    に含まれた暗号化プロテクトコードを、当該プロテクト
    コードの診断に際して復号させるための手続きが含まれ
    ることを特徴とする記憶媒体。
  11. 【請求項11】情報処理装置によって処理されるオブジ
    ェクトを記憶した、機械読み取り可能な記憶媒体であっ
    て、 暗号化されたプロテクト対象オブジェクトが格納され、 当該プロテクト対象オブジェクトは、自身を組み込んだ
    実行可能モジュールに含まれた1以上のプロテクトコー
    ドに矛盾があれば処理を終了させる手続きを含む、 ことを特徴とする記憶媒体。
  12. 【請求項12】請求項11記載の記憶媒体であって、 前記プロテクト対象オブジェクトは、 前記実行可能モジュールに含まれているプロテクトコー
    ドが暗号化されている場合に、当該プロテクトコードの
    診断に先立ち、当該プロテクトコードを復号させるため
    の手続きを含む、 ことを特徴とする記憶媒体。
  13. 【請求項13】複数のオブジェクトを結合して、実行可
    能モジュールを生成する処理を情報処理装置に実行させ
    る実行可能モジュール生成方法であって、 実行可能モジュールに含まれたプロテクトコードの矛盾
    により処理を終了させる手続きを含むプロテクト対象オ
    ブジェクトを、暗号化済みのプロテクト対象オブジェク
    トの復号により生成し、 前記復号後のプロテクト対象オブジェクトと他のオブジ
    ェクトとの結合と、前記プロテクトコードの書込みとに
    よって、前記実行可能モジュールを生成し、 前記復号後のプロテクト対象オブジェクトは、前記他の
    オブジェクトとの結合がなされた後に消去される、 ことを特徴とする実行モジュール生成方法。
  14. 【請求項14】複数のオブジェクトを結合して、実行可
    能モジュールを生成する処理を情報処理装置に実行させ
    る実行可能モジュール生成方法であって、 実行可能モジュールに含まれた複数のプロテクトコード
    の矛盾により処理を終了させる手続きを含むプロテクト
    対象オブジェクトを、暗号化済みのプロテクト対象オブ
    ジェクトの復号により生成し、 互いに関連付けられた第一のプロテクトコードと第二の
    プロテクトコードとを生成して、前記復号後のプロテク
    ト対象オブジェクトに当該第一のプロテクトコードを埋
    め込み、当該第一のプロテクトコード埋込み済みのプロ
    グラム対象オブジェクトと他のオブジェクトとの結合に
    より実行可能モジュールを作成したら、当該実行可能モ
    ジュールに当該第二のプロテクトコードを埋め込み、 前記第一のプロテクトコード埋込み済みのプロテクト対
    象オブジェクトは、前記二のプロテクトコード埋込み前
    に消去されることを特徴とする実行可能モジュール生成
    方法。
  15. 【請求項15】複数のオブジェクトの結合により組み立
    てられた実行可能モジュールを実行可能な装置が実行す
    るための実行可能モジュールが格納された、機械読み取
    り可能な記憶媒体であって、 前記複数のオブジェクトのうちの、少なくとも1のオブ
    ジェクトには、 少なくとも1つのプロテクトコードに矛盾があるか否か
    を診断し、当該診断結果に応じて、前記実行可能モジュ
    ールの処理を終了させる手続きを含んだライブラリオブ
    ジェクトが含まれ、 前記実行可能モジュールには、 少なくとも1つのプロテクトコードが埋め込まれてい
    る、 ことを特徴とする記憶媒体。
  16. 【請求項16】複数のオブジェクトの結合によって生成
    された実行可能モジュールを実行するエンタテインメン
    ト装置であって、 前記少なくとも1つのオブジェクトに含まれたプロテク
    トコードと、それ以外のプロジェクトコードとが前記実
    行可能モジュールに含まれている場合、それらのプロテ
    クトコード間の関係を診断し、当該関係に矛盾があれ
    ば、前記実行可能モジュールの処理を終了させる手段を
    有することを特徴とするエンタテインメント装置。
  17. 【請求項17】情報処理装置に実行されるプログラムで
    あって、 前記情報処理装置に、 実行可能モジュールに含まれたプロテクトコードの矛盾
    により処理を終了させる手続きを含むプロテクト対象オ
    ブジェクトを、暗号化済みのプロテクト対象オブジェク
    トの復号により生成する復号処理と、 前記復号処理で生成されたプロテクト対象オブジェクト
    と他のオブジェクトとの結合により、前記実行可能モジ
    ュールを作成する結合処理と、 前記結合処理による作成される実行可能モジュールに前
    記プロテクトコードを含ませるためのコード書込み処理
    と、 前記復号処理で生成されたプロテクト対象オブジェクト
    を、前記他のオブジェクトとの結合後に消去する削除処
    理と、 を実行させることを特徴とするプログラム。
  18. 【請求項18】情報処理装置に実行されるプログラムで
    あって、 前記情報処理装置に、 実行可能モジュールに含まれた複数のプロテクトコード
    の矛盾により処理を終了させる手続きを含むプロテクト
    対象オブジェクトを、暗号化済みのプロテクト対象オブ
    ジェクトの復号により生成する復号処理と、 互いに関連付けられた第一のプロテクトコードと第二の
    プロテクトコードとを生成するコード生成処理と、 前記復号処理後、当該復号処理で生成されたプロテクト
    対象オブジェクトに、前記第一のプロテクトコードを埋
    め込む第一コード書込み処理と、 前記コード書込み処理後、当該コード書込み処理で前記
    第一のプロテクトコードが埋め込まれたプロテクト対象
    オブジェクトと、他のオブジェクトとの結合により、実
    行可能モジュールを作成する結合処理と、 前記結合処理後、当該結合処理で作成された前記実行可
    能モジュールに前記第二プロテクトコードを埋め込む第
    二コード書込み処理と、 前記第一コード書込み処理後、前記第二コード書込み処
    理前に、前記復号処理で生成された前記プロテクト対象
    オブジェクトを消去する削除処理と、 を実行させることを特徴とするプログラム。
  19. 【請求項19】請求項18記載のプログラムであって、 前記コード生成処理において、前記情報処理装置に、 乱数から、前記第一のプロテクトコードと前記第二のプ
    ロテクトコードを生成させることを特徴とするプログラ
    ム。
  20. 【請求項20】請求項18または19記載のプログラム
    であって、 前記情報処理装置に、 前記第一のプロテクトコードと前記第二のプロテクトコ
    ードとにダミーデータを付加させることを特徴とするプ
    ログラム。
  21. 【請求項21】請求項17、18、19および20のい
    ずれか1項に記載のプログラムであって、 前記情報処理装置に、前記実行可能モジュールに含ませ
    るためのプロテクトコードを暗号化する処理を実行さ
    せ、 前記プロテクト対象オブジェクトには、前記実行可能モ
    ジュールを読み込んだ装置に、当該実行可能モジュール
    に含まれた暗号化プロテクトコードを、当該プロテクト
    コードの診断に際して復号させるための手続きが含まれ
    る、ことを特徴とするプログラム。
  22. 【請求項22】情報処理装置によって処理されるオブジ
    ェクトであって、 暗号化され、かつ、 自身を組み込んだ実行可能モジュールを読み込んだ装置
    に、当該実行可能モジュールに含まれた1以上のプロテ
    クトコードに矛盾があれば処理を終了させるための手続
    きを含む、 ことを特徴とするオブジェクト。
  23. 【請求項23】請求項22記載のオブジェクトであっ
    て、 前記実行可能モジュールに含まれているプロテクトコー
    ドが暗号化されている場合に、当該プロテクトコードに
    矛盾があるか否かの診断に先立ち、当該プロテクトコー
    ドを前記装置に復号させるための手続きを含む、ことを
    特徴とするオブジェクト。
  24. 【請求項24】複数のオブジェクトの結合により組み立
    てられた実行可能モジュールを実行可能な装置が実行す
    る実行可能モジュールであって、 少なくとも1つのプロテクトコードが埋め込まれ、 前記複数のオブジェクトには、 前記装置に、前記実行可能モジュールに含まれているプ
    ロテクトコードに矛盾があるか否かを診断させ、当該診
    断結果に応じて、前記実行可能モジュールの処理を終了
    させる手続きを含んだライブラリオブジェクトが含まれ
    る、 ことを特徴とする実行可能オブジェクト。
JP2001224250A 2000-08-15 2001-07-25 情報処理システム、実行可能モジュール生成方法および記憶媒体 Expired - Fee Related JP3712366B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001224250A JP3712366B2 (ja) 2000-08-15 2001-07-25 情報処理システム、実行可能モジュール生成方法および記憶媒体
US09/928,907 US7290137B2 (en) 2000-08-15 2001-08-13 Information processing apparatus, executable module generating method, and storage medium
EP01119450A EP1182532A3 (en) 2000-08-15 2001-08-13 Information processing apparatus, executable module generating method, and storage medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000246404 2000-08-15
JP2000-246404 2000-08-15
JP2001224250A JP3712366B2 (ja) 2000-08-15 2001-07-25 情報処理システム、実行可能モジュール生成方法および記憶媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005097268A Division JP2005339516A (ja) 2000-08-15 2005-03-30 情報処理システム、実行可能モジュール生成方法および記憶媒体

Publications (2)

Publication Number Publication Date
JP2002132371A true JP2002132371A (ja) 2002-05-10
JP3712366B2 JP3712366B2 (ja) 2005-11-02

Family

ID=26597978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001224250A Expired - Fee Related JP3712366B2 (ja) 2000-08-15 2001-07-25 情報処理システム、実行可能モジュール生成方法および記憶媒体

Country Status (3)

Country Link
US (1) US7290137B2 (ja)
EP (1) EP1182532A3 (ja)
JP (1) JP3712366B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235076A (ja) * 2004-02-23 2005-09-02 Fujitsu Ltd コンピュータシステム、中央装置及びプログラム実行方法
JP2020181522A (ja) * 2019-04-26 2020-11-05 ルネサスエレクトロニクス株式会社 記録システム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7581103B2 (en) 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
DE102005031822B4 (de) * 2005-07-06 2010-04-22 Protect Software Gmbh Kopierschutz für Programme
KR101352790B1 (ko) * 2007-07-27 2014-01-16 삼성전자주식회사 환경정보 제공방법, 이를 적용한 영상기기 및 영상 시스템
US9135434B2 (en) * 2010-04-19 2015-09-15 Appcentral, Inc. System and method for third party creation of applications for mobile appliances
US8838709B2 (en) * 2010-12-17 2014-09-16 Silverpop Systems, Inc. Anti-phishing electronic message verification
JP5863689B2 (ja) 2013-02-28 2016-02-17 京セラドキュメントソリューションズ株式会社 不正使用防止機能付き共有ライブラリ
CN106778099A (zh) * 2016-11-29 2017-05-31 北京奇虎科技有限公司 防篡改apk的生成方法和装置、安装及运行方法和装置
CN109117670A (zh) * 2018-08-16 2019-01-01 海南新软软件有限公司 一种实现剪切板数据加密和解密方法、装置及硬件设备
CN110147653B (zh) * 2019-03-28 2022-04-19 江苏通付盾信息安全技术有限公司 应用程序安全加固方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58186843A (ja) 1982-04-26 1983-10-31 Fujitsu Ltd プログラム保護方式
JPS623460A (ja) 1985-06-28 1987-01-09 Csk Corp 情報記録装置
JP2569564B2 (ja) 1987-06-13 1997-01-08 ソニー株式会社 ソフトウエアのコピ−プロテクト装置
JPH04268924A (ja) 1991-02-25 1992-09-24 Hitachi Ltd 逆アセンブル保護方法
US5757914A (en) * 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
JP2812302B2 (ja) 1996-05-17 1998-10-22 日本電気株式会社 プログラム開発装置
US6052780A (en) * 1996-09-12 2000-04-18 Open Security Solutions, Llc Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
JP3039395B2 (ja) * 1996-10-17 2000-05-08 日本電気株式会社 無線携帯端末における情報処理部の起動方式
US6188995B1 (en) 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
JP4027482B2 (ja) 1997-12-24 2007-12-26 富士通株式会社 暗号復元を行う翻訳装置およびその方法
JP2005204134A (ja) * 2004-01-16 2005-07-28 Mitsubishi Electric Corp 耐タンパ暗号システム及びメモリ装置及び認証端末及び及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235076A (ja) * 2004-02-23 2005-09-02 Fujitsu Ltd コンピュータシステム、中央装置及びプログラム実行方法
JP4514473B2 (ja) * 2004-02-23 2010-07-28 富士通株式会社 コンピュータシステム、中央装置及びプログラム実行方法
US7865961B2 (en) 2004-02-23 2011-01-04 Fujitsu Limited Computer system, central unit, and program execution method
JP2020181522A (ja) * 2019-04-26 2020-11-05 ルネサスエレクトロニクス株式会社 記録システム
JP7123001B2 (ja) 2019-04-26 2022-08-22 ルネサスエレクトロニクス株式会社 記録システム

Also Published As

Publication number Publication date
EP1182532A3 (en) 2005-12-14
JP3712366B2 (ja) 2005-11-02
EP1182532A2 (en) 2002-02-27
US20020032868A1 (en) 2002-03-14
US7290137B2 (en) 2007-10-30

Similar Documents

Publication Publication Date Title
KR100458036B1 (ko) 오디오비쥬얼데이터를부정복사로부터보호하면서재생하는데적합한마이크로프로세서및그것을이용한영상정보처리시스템
JP4889638B2 (ja) 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路
US9003539B2 (en) Multi virtual machine architecture for media devices
EP1084549B1 (en) Method of controlling usage of software components
US20080263366A1 (en) Self-verifying software to prevent reverse engineering and piracy
US20020188940A1 (en) Method and apparatus for gaming device software configuration
US20060253620A1 (en) Data structure of flash memory having system area with variable size in which data can be updated, USB memory device having the flash memory, and method of controlling the system area
JP2003330560A (ja) デジタル権利管理(drm)システムを使用するソフトウェアアプリケーションの保護のための方法および媒体
AU2002318335A1 (en) Method and apparatus for gaming device software configuration
JP2005338959A (ja) 情報処理装置,実行判定方法,およびコンピュータプログラム
JP2001521654A (ja) ディジタル情報の自己解読システムおよび方法
US20050177823A1 (en) License management
JP3712366B2 (ja) 情報処理システム、実行可能モジュール生成方法および記憶媒体
JP2007133608A (ja) 情報処理装置、ソフトウェアインストール方法、および光ディスク
EP0817014A2 (en) Software distribution medium and method of producing the medium
KR100586063B1 (ko) 가변 크기이고 데이터의 갱신이 가능한 시스템 영역을 갖는플래시 메모리 데이터 구조, 그 플래시 메모리를 구비한usb 저장 장치 및 상기 시스템 영역의 제어 방법
US20020146121A1 (en) Method and system for protecting data
US20090285070A1 (en) Copy-protected optical storage media and method for producing the same
JPH07244584A (ja) ソフトウェア保護システム
JP2005339516A (ja) 情報処理システム、実行可能モジュール生成方法および記憶媒体
JP2003099729A (ja) 書込装置、半導体メモリカード、プログラム、方法
JP4852309B2 (ja) 資産管理装置及び資産管理方法
JP3825121B2 (ja) マイクロプロセッサ及び映像情報処理システム
JP2004185599A (ja) 仮想cdイメージファイルの不正使用防止方法
KR20090001729A (ko) 디지털 미디어 재생기기에서의 인증코드 부여 장치 및 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050603

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050816

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: 20080826

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100826

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120826

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120826

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130826

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees