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

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

Info

Publication number
JP3712366B2
JP3712366B2 JP2001224250A JP2001224250A JP3712366B2 JP 3712366 B2 JP3712366 B2 JP 3712366B2 JP 2001224250 A JP2001224250 A JP 2001224250A JP 2001224250 A JP2001224250 A JP 2001224250A JP 3712366 B2 JP3712366 B2 JP 3712366B2
Authority
JP
Japan
Prior art keywords
code
protected
executable module
information processing
protect
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.)
Expired - Fee Related
Application number
JP2001224250A
Other languages
English (en)
Other versions
JP2002132371A (ja
Inventor
浩 山本
俊充 大平
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 EP01119450A priority patent/EP1182532A3/en
Priority to US09/928,907 priority patent/US7290137B2/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

Images

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)

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に対するデータ読込み/書込み処理を実行するハードディスク・ドライブ107、ハードディスクドライブ107がつながれた高速バス106、記憶媒体Aに対するデータ読込み読書き/書込み処理を実行するドライブ112、入力装置120からのデータ転送を制御するコントローラ111、出力装置130へのデータ転送を制御するコントローラ113、各コントローラ111,113とドライブ112とがつながれた低速バス109、低速バス109と高速バス106との間をつないだブリッジ回路110、通信ポート(シリアルポート、パラレルポート等)、等を備えている。なお、ここで示した情報処理装置100の内部構成は、ソフトウエア開発に使用されるものとしての一例である。
【0011】
つぎに、この情報処理システムのハードディスク106内の格納データについて説明する。
【0012】
コンパイラは、CPUに、指定ソースプログラムファイルに記述されたソースを、解析処理(字句解析、構文解析、意味解析)等によってオブジェクトとして翻訳編集させ、そのオブジェクトをオブジェクトファイルに格納させる処理が定義されたソフトウエアである。リンカは、CPUに、指定オブジェクトファイル群のそれぞれに記述されているオブジェクトを結合編集させることによって実行可能モジュールを組み立てさせ、その実行可能モジュールを実行可能プログラムファイルに格納させる処理が定義されたソフトウエアである。そして、本実施の形態に係るフロントエンドツールは、CPUに、コンパイラおよびリンカを起動させ、後述の実行可能プログラムファイル作成処理を実行させる処理が定義されたソフトウエアである。
【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ファイルL2内のオブジェクトには、さらに、初期化関数において呼び出されるプロテクトコードチェック手続きと、オブジェクトファイル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を記憶したライブラリ記憶部204、(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から作成された実行可能プログラムファイルM3とにそれぞれプロテクトコードC1,C2を付与するコード付与処理部209、(11)これら各処理部を制御する制御処理部210、が実現される。
【0018】
ここで、コード付与処理部209は、(12)互いに関連付けられた1組のプロテクトコードC1,C2(例えば、C1=f(C2)の関係を満たす1組のプロテクトコードC1,C2)を生成するコード生成処理部209a、(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は、このとき生成したオブジェクトファイルM2を開発成果記憶部202に格納してから、制御処理部210に正常終了を報告する。
【0027】
制御処理部210は、コンパイル処理部203から正常終了報告を受け付けると、暗号化LibファイルLの復号化を復号化処理部205に指示する。復号化処理部205は、この指示に応じて、ライブラリ記憶部204から暗号化LibファイルL1を取り出し、それを復号化する。これにより1以上のLibファイルLが生成されると、復号化処理部205は、そのLibファイルL2を、適当なファイル名の一時ファイルとして一時ファイル記憶部206に格納し、制御処理部210に正常終了を報告する。
【0028】
制御処理部210は、復号化処理部205からの正常終了報告を受け付けると、LibファイルL2に対するプロテクトコード付与をコード付与処理部209に指示する。この指示に応じて、コード付与処理部209では、以下の処理が実行される。まず、コード生成処理部209aが、図4に示すように、乱数Cを発生し、この乱数Cを2つの加工方法F1,F2(例えば、乱数Cを入力データとする2つの関数等)でそれぞれ加工することによって2つのプロテクトコードC1,C2を生成する。ここで生成された2つのプロテクトコードC1,C2には、前述したように、予め定められた関係(ここでは、C1=f(C2)とする)がある。これらのプロテクトコードC1,C2は、さらに、コード生成処理部209aによって、適当な暗号化方法でそれぞれ暗号化される。ついで、コード書込み処理部209bが、第二プロテクトコードC2を保持するとともに、所定のLibファイルL2内の第一プロテクトコード格納変数に第一プロテクトコードC1を格納する(S304)。
【0029】
このようにして、LibファイルL2に対するプロテクトコード付与が終了すると、制御処理部210は、リンク処理部207に、オブジェクトファイルM2と指定のLibファイルL2との結合編集を指示する。リンク処理部207は、この指示に応じて、オブジェクトファイルM2と指定のLibファイルL2とを結合し、実際の番地の埋込み等を行う。これにより実行可能プログラムファイルM3が組み立てられると、リンク処理部207は、その実行可能プログラムファイルM3を、適当な名前で開発成果記憶部202に格納してから、正常終了を制御処理部210に報告する(S305)。
【0030】
制御処理部210は、リンク処理部207からの正常終了報告を受け付けると、一時ファイル削除を一時ファイル削除処理部208に指示する。この指示に応じて、一時ファイル削除処理部208は、すべてのLibファイルL2を一時ファイル記憶部206から削除する(S306)。
【0031】
その後、制御処理部210は、実行可能プログラムファイルL3に対するプロテクトコード付与をコード付与処理部209に指示する。この指示に応じて、コード付与処理部209のコード書込み処理部209bが、保持中の第二プロテクトコードC2を実行可能プログラムファイルM3に付加してから、正常終了を制御処理部210に報告する(S307)。なお、ライセンシー管理(例えば、プログラム作成会社の識別等)のために、このときフロントエンドツールの識別情報も、、コード付与処理部209によって実行可能プログラムファイルM3に埋め込まれるようにしてもよい。
【0032】
制御処理部210は、コード付与処理部209からの正常終了報告を受け付けると、処理を終了させる(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に埋め込んでおき(S304)、その後、LibファイルL2とオブジェクトファイルM2との結合編集(S305)が終了したら、実行可能プログラムファイルM2へ第二プロテクトコードC2を埋め込む前にLibファイルL2を消去(S306)してしまうため、使用済みLibファイルL2の不正利用が防止される。すなわち、一方のプロテクトコードC1が埋め込まれた使用済みLibファイルL2を消去前に取り出すことができたとしても、その段階(S304〜S306)では、乱数Cから生成された他方のプロテクトコードC2の取り出しが不可能であるから、その使用済みLibファイルL2に埋め込まれている第一プロテクトコードC1と矛盾しない第二プロテクトコードC2を知ることは困難である。このため、消去前に取り出した使用済みLibファイルL2とオブジェクトファイルとを結合編集したとしても、使用済みLibファイルL2に埋込済みの第一プロテクトコードと適正な関係を有する第二プロテクトコードを実行可能プログラムファイルに埋め込むことは困難である。したがって、使用済みLibファイルの不正使用が防止される。
(4)最終的に作成された実行可能プログラムファイルM3の解析によって、それに埋め込まれた1組のプロテクトコードC1,C2を知ってから、つぎのフロントエンドツール起動時に使用済みLibファイルL2を消去前に取り出したとしても、プロテクトコードC1,C2は、毎回、乱数から生成されるため、消去前に取り出した使用済みLibファイルL2に埋め込まれている第一プロテクトコードC1に対応する第二プロテクトコードは、実行可能プログラムファイルM3の解析によって知った第二プロテクトコードC2とは必ずしも一致しない。このため、最終的に作成された実行可能プログラムファイルM3の解析によっても、適正な関係を有する1組のプロテクトコードを得ることは困難である。したがって、消去前に取り出した使用済みLibファイルL2とオブジェクトファイルとを結合編集したとしても、使用済みLibファイルL2に埋込済みの第一プロテクトコードと適正な関係を有する第二プロテクトコードを実行可能プログラムファイルに埋め込むことは困難である。このため、使用済みLibファイルの不正使用が防止される。
【0034】
以上の4つの防止策によってLibファイル不正使用が防止されるが、ライブラリバージョンアップのたびに、Libファイルの暗号化方法とプロテクトコードチェック手続きの内容とをそれぞれ変更するようにすれば、Libファイルの不正使用防止が強化される。なお、このようにする場合には、Libファイル複合方法および乱数加工方法が変更されたフロントエンドツールが、新バージョンの暗号化Libファイルとともにリリースされる必要がある。
【0035】
ところで、以上においては、LibファイルL2内で定義された第一プロテクトコード格納変数に第一プロテクトコードC1を格納し、実行可能プログラムファイルM3の末尾に第二プロテクトコードC2を付加することとしているが、必ずしも、このようにする必要はない。例えば、プロテクトコード付与処理部が、図6に示すように、LibファイルL2の末尾に、ダミーデータと第一プロテクトコードC1とを含んだ第一ダミーエリア▲1▼を付加し、実行可能プログラムファイルM3の末尾に、ダミーデータと第二プロテクトコードC2とを含んだ第二ダミーエリア▲2▼を付加するようにしてもよい。そして、2つのダミーエリア▲1▼▲2▼の合計データ量を変えないように、各ダミーエリア▲1▼▲2▼に含まれるダミーデータのデータ量をランダムに変化させるようにすれば、1つの実行可能プログラムファイルM3を作成するごとに、その内部におけるプロテクトコードC1,C2のアドレスが変化するため、プロテクトコードC1,C2の間にある関係の解析を困難にすることができる。
【0036】
また、以上においては、プロテクトコードチェック手続きが組み込まれたLibファイルに第一プロテクトコードをリンク前に埋め込み、実行可能プログラムファイルが完成したときに、さらに、この実行可能プログラムファイルに第二プロテクトコードを埋め込むこととしているが、かならずしも、このようにする必要はない。例えば、プロテクトコードチェック手続きが組み込まれたLibファイルにはプロテクトコードを組み込まず、実行可能プログラムファイルが完成したときに、この実行可能プログラムファイルに、プロテクトコードチェック手続きによって正当性をチェック可能なプロテクトコード(例えば、互いに関連付けられた複数のプロテクトコード)を埋め込むようにしてもよい。
【0037】
つぎに、本実施の形態に係るプログラムファイル作成処理により作成された実行可能プログラムファイルM3を実行することができるシステムの概略ハードウエア構成について説明する。ただし、ここでは、システムの一例として、エンタテインメント装置を挙げることとする。
【0038】
図7は、本実施の形態に係るエンタテインメント装置700およびその周辺機器の外観図であり、図8は、本実施の形態に係るエンタテインメント装置700の概略ハードウエア構成図である。
【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,704B、等が挙げられる。ここでコントローラ接続部702A,702Bが複数設けられているのは、各コントローラ接続部702A,702Bにそれぞれコントローラを接続することによって、エンタテインメント装置700が、複数のゲームプレイヤからの指示を受け付けることができるようにするためである。
【0041】
また、エンタテインメント装置700の筐体背面部(前面の反対側)には、電源オンオフスイッチ(不図示)、表示装置等が接続されるAV端子(不図示)が設けられている。
【0042】
そして、このエンタテインメント装置700の内部には、図8に示すように、装置全体を制御するメインCPU800、AV端子(不図示)から出力されるビデオ信号を生成するグラフィックプロセッサ(GP)801、コントローラ接続部702A,702Bに接続されたコントローラ750およびメモリカード接続部704A,704Bに接続されたメモリカード730とのデータ転送を制御するI/Oプロセッサ(IOP)802、ディスク装着部701に装着された光ディスク900からのデータ読出しを制御する光ディスク制御部803、AV端子(不図示)から出力されるオーディオ信号を生成するサウンド再生処理プロセッサ(SPU)804、サウンドバッファ805、メインCPU800およびIOP802が実行する各オペレーティングシステムプログラムが格納されたOS−ROM806、IOPのワークエリアとして用いられるIOPメモリ807、メインCPU800のワークエリアおよびバッファとして用いられるメインメモリ808、これら各部の間をつないだバス809等が搭載されている。
【0043】
このエンタテインメント装置700に電源が投入されると、2種類のオペレーティングシステムプログラム(メインCPU用、IOP用)がそれぞれOS−ROM806から読みだされ、それらがメインCPU800とIOP802とによってそれぞれ起動される。これにより、オペレーティングシステムによる、装置各部の統合制御が開始され、エンタテインメント装置としての各種機能がゲームプレイヤに提供される。具体的には、光ディスクからの実行可能プログラムファイル読込みおよびその実行、コントローラを介したゲームプレイヤからの指示受付け、ゲームプレイヤの指示に応じた映像表示および効果音・楽音出力等が可能な環境が提供される。
【0044】
このような環境において、図9に示した光ディスク900から、上述の実行可能プログラムファイル作成処理によって作成されたゲーム用実行可能プログラムファイルM3が読み込まれると、そのゲーム用実行可能プログラムファイルM3に定義された処理を実行するための機能構成が、メインCPU800によってプロセスとして実現される。すなわち、図10に示すように、エンタテインメント装置700は、(1)実行可能プログラムファイルM3の所定領域(第一プログラム格納変数)の格納データ(実行可能プログラムファイルM3がLibファイルの正当使用により生成されたものであれば、正当な第一プロテクトコードC1)が格納された第一プロテクトコード格納部1000、(2)実行可能プログラムファイルM3の末尾領域の格納データ(実行可能プログラムファイルM3がLibファイルの正当使用により生成されたものであれば、正当な第二プロテクトコードC2)が格納された第二プロテクトコード格納部1001、(3)起動時にプロテクトコードチェック手続きを実行するプロテクトコードチェック処理部1002、(4)プロテクトコードチェック処理部1002からの開始指示に応じて、ゲームを実行するゲーム実行処理部1003、(5)コントローラからの入力信号をゲーム実行処理部1003に渡す入力データ受付処理部1004、(6)ゲーム実行処理部1003の指示にしたがって、効果音等のオーディオ信号を生成する音声制御処理部1005、(7)ゲーム処理部1003の指示にしたがって、ゲーム画面映像のビデオ信号を生成する映像制御処理部1006、が実現される。ここで、プロテクトコードチェック処理部1002には、(8)第一プロテクトコードC1および第二プロテクトコードC2を復号するコード復号処理部1002a、(9)復号後の2つのプロテクトコードC1,C2の整合性をチェックするコードマッチング処理部1002b、(10)与えられた終了指示にしたがって、処理を終了させる終了処理部1002d、(11)コードマッチング処理部1002bのチェック結果に応じて、終了処理部1002dに終了指示またはゲーム処理部に開始指示を与える制御処理部1002c、が含まれている。
【0045】
つぎに、図11により、これらの機能構成部によって実行される処理について説明する。
【0046】
図9の光ディスク900から読み込まれた実行可能プログラムファイルM3が起動されると(S1100)、図10の機能構成部が以下の処理を開始する。
【0047】
ゲームの開始前に、実行可能プログラムファイルM3に組み込まれたLibファイルL2が正当使用によるものか否かを判断するため、以下の自己診断処理がプロテクトコードチェック処理部1002によって実行される。
【0048】
まず、制御処理部1002cが、コードの復号をコード復号処理部1002aに指示する。この指示に応じて、コード復号処理部1002aは、第一プロテクトコード格納部1000の格納データと、第二プログラムコード格納部1001の格納データとを取り出し、それらをそれぞれ復号する。
【0049】
フロントエンドツールの正当使用により作成された実行可能プログラムファイルM3であれば、1組のプロテクトコード生成に用いられた関係(ここではC1=F(C2))を満たすデータC1,C2が、このときの復号処理によって得られるはずである。そこで、コードマッチング処理部1002bは、ここで得られた2つのデータがその関係を満たすか否かを診断し、その診断結果を制御処理部1102cに通知する(S1101)。
【0050】
制御処理部1102cは、実行可能プログラムファイルM3に組み込まれたLibファイルL2が正当使用によるものか否かを、コードマッチング処理部1002bの診断結果に基づき判断する(S1102)。具体的には、1組のプロテクトコード生成に用いた関係を満たさないという診断結果が通知された場合には、プロテクトコードに矛盾ありと判断し、1組のプロテクトコード生成に用いた関係を満たすという診断結果が通知された場合には、プロテクトコードに矛盾なしと判断する。
【0051】
以上の自己診断処理によってプロテクトコードに矛盾ありと判断した場合には、制御処理部1102cは、その旨を表すエラーメッセージを出力し(S1003)、終了処理部1002dに終了指示を与える。この指示に応じて、終了処理部1002dは、所定の終了処理を実行し、プログラムを終了させる(S1106)。
【0052】
一方、プロテクトコードに矛盾なしと判断した場合には、制御処理部1002dは、ゲーム実行処理部1003に開始指示を与える。この指示に応じて、ゲーム実行処理部1003は、ゲーム処理を開始する(S1104)。
【0053】
以後、コントローラを介して送られてくる、ゲームプレイヤからの指示は、入力データ受付処理部1004からゲーム実行処理部1003に渡される。そして、ゲーム実行処理部1003は、入力データ受付処理部1004から渡された指示に応じて、表示装置上の表示映像およびオーディオ装置からの音声を変化させるべく、音声制御処理部1005と映像制御処理部1006とを制御する。この間、ゲーム実行処理部1003は、ゲームオーバーの条件を満たしたか否かの判断(S1105)を定期的に行ない、ゲームオーバーと判断したら、ゲームを終了させる(S1106)。
【0054】
このように、本実施の形態に係るエンタテインメント装置によれば、読み込んだゲーム用実行可能プログラムファイルに正当なプロテクトコードが埋め込まれている場合にだけゲームを開始させ、読み込んだゲーム用実行可能プログラムファイルに正当なプロテクトコードが埋め込まれていなければ、ゲームを終了させる。したがって、フロントエンドツールの正当使用によってゲーム用実行可能プログラムファイルが作成されていなけば、エンタテインメント装置でゲームをすることができない。このため、フロントエンドツールの正当使用者以外のユーザによるLibファイル使用を止することできる。
【0055】
なお、以上においては、上述の実行可能プログラムファイル作成処理により作成された実行可能プログラムファイルを実行するための装置としてエンタテインメント装置を例に挙げたが、上述の実行可能プログラムファイル作成処理により作成された実行可能プログラムファイルを実行するための装置は、必ずしもエンタテインメント装置である必要はない。例えば、プログラムの実行能力のある、一般的な電子計算機であってもよい。もちろん、実行可能プログラムファイルも、ゲーム以外の処理を実行させるものであってもよい。
【0056】
また、ここでは、記憶媒体から実行可能プログラムファイルが実行装置に読み込まれるようにしているが、ネットワーク等の伝送媒体によって実行可能プログラムファイルが伝送され、それが実行装置のハードディスクに格納されるようにしてもよい。
【0057】
また、以上においては、ライブラリファイルをプロテクト対象としているが、その他のファイル(例えば、画像データ等が格納されたファイル等の、実行可能ファイル以外のファイル)をプロテクト対象としてもよい。
【0058】
【発明の効果】
本発明によれば、ライブラリ等、実行可能ファイル以外のファイルの不正コピーを防止することができる。
【図面の簡単な説明】
【図1】本発明の実施の一形態に係る情報処理システムのハードウエア構成図である。
【図2】本発明の実施の一形態に係る情報処理システムの機能構成図である。
【図3】本発明の実施の一形態に係る実行可能プログラム作成処理のフローチャートである。
【図4】本発明の実施の一形態に係る1組のプロテクトコードの生成方法を概念的に示した図である。
【図5】本発明の実施の一形態に係る実施可能プログラムファイルが作成されるまでの処理を概念的に示した図である。
【図6】本発明の実施の一形態に係る実施可能プログラムファイルのデータ構造を概念的に示した図である。
【図7】本発明の実施の一形態に係るエンタテインメント装置およびその周辺機器の外観図である。
【図8】本発明の実施の一形態に係るエンタテインメント装置のハードウエア構成図である。
【図9】本発明の実施の一形態に係る光ディスクの格納データのデータ構造を概念的に示した図である。
【図10】本発明の実施の一形態に係るエンタテインメント装置の機能構成図である。
【図11】本発明の実施の一形態に係る実行可能プログラム作成処理のフローチャートである。
【符号の説明】
1…暗号化ライブラリファイル L2…ライブラリファイル
1…ソースファイル M2…オブジェクトファイル
3…実行可能ファイル
100…情報処理装置 101…CPU
102…グラフィックス機構 103…主記憶
104…メモリバス制御チップ 105,106,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…ゲーム実行処理部

Claims (17)

  1. 実行可能モジュールに含まれたプロテクトコードの矛盾により処理を終了させる手続きを含む、暗号化済みのプロテクト対象オブジェクトを記憶した記憶手段と、
    前記記憶手段から前記暗号化済みプロテクト対象オブジェクトを読み出し、当該暗号化済みプロテクト対象オブジェクトを復号する復号手段と、
    前記復号後のプロテクト対象オブジェクトに前記プロテクトコードを書込み、当該プロテクトコードを書き込んだ復号後のプロテクト対象オブジェクトと他のオブジェクトとを結合して、前記実行可能モジュールを作成するコード書込み手段と、
    前記復号後のプロテクト対象オブジェクトを、前記他のオブジェクトとの結合の後に消去する削除手段と、
    を有することを特徴とする情報処理装置。
  2. 実行可能モジュールに含まれた複数のプロテクトコードの矛盾により処理を終了させる手続きを含む、暗号化済みのプロテクト対象オブジェクトを記憶した記憶手段と、
    前記記憶手段から前記暗号化済みプロテクト対象オブジェクトを読み出し、当該暗号化済みプロテクト対象オブジェクトを復号する復号手段と、
    互いに関連付けられた第一のプロテクトコードと第二のプロテクトコードとを生成するコード生成手段と、
    前記復号後のプロテクト対象オブジェクトに前記第一のプロテクトコードを埋め込み、当該第一のプロテクトコード埋込み済みのプロテクト対象オブジェクトと他のオブジェクトとの結合により実行可能モジュールが作成されたら、当該実行可能モジュールに、前記第二のプロテクトコードを埋め込むコード書込み手段と、
    前記第一のプロテクトコード埋込み済みのプロテクト対象オブジェクトを、前記二のプロテクトコード埋込み前に消去する削除手段と、
    を有することを特徴とする情報処理装置。
  3. 請求項2記載の情報処理装置であって、
    前記コード生成手段は、乱数から、前記第一のプロテクトコードと前記第二のプロテクトコード、を生成することを特徴とする情報処理装置。
  4. 請求項2または3記載の情報処理装置であって、
    前記コード書込み手段は、前記第一のプロテクトコードと前記第二のプロテクトコードとにダミーデータを付加することを特徴とする情報処理装置。
  5. 請求項1、2、3および4のいずれか1項に記載の情報処理装置であって、
    前記コード書込み手段は、前記復号後のプロテクト対象オブジェクトに書き込むためのプロテクトコードを暗号化し、
    前記プロテクト対象オブジェクトには、前記実行可能モジュールを読み込んだ装置に、当該実行可能モジュールに含まれた暗号化済みのプロテクトコードを、当該プロテクトコードの診断に際して復号させるための手続きを含む、ことを特徴とする情報処理装置。
  6. 情報処理装置に処理を実行させるためのプログラムが格納された、機械読み取り可能な記憶媒体であって、
    前記プログラムは、前記情報処理装置に、
    実行可能モジュールに含まれたプロテクトコードの矛盾により処理を終了させる手続きを含むプロテクト対象オブジェクトを、暗号化済みのプロテクト対象オブジェクトの復号により生成する復号処理と、
    前記復号後のプロテクト対象オブジェクトに前記プロテクトコードを書き込み、当該プロテクトコードを書き込んだ復号後のプロテクト対象オブジェクトと他のオブジェクトと を結合して、前記実行可能モジュールを作成す処理と、
    前記復号処理で生成されたプロテクト対象オブジェクトを、前記他のオブジェクトとの結合後に消去する削除処理と、
    を実行させることを特徴とする記憶媒体。
  7. 情報処理装置に処理を実行させるためのプログラムが格納された、機械読み取り可能な記憶媒体であって、
    前記プログラムは、前記情報処理装置に、
    実行可能モジュールに含まれた複数のプロテクトコードの矛盾により処理を終了させる手続きを含むプロテクト対象オブジェクトを、暗号化済みのプロテクト対象オブジェクトの復号により生成する復号処理と、
    互いに関連付けられた第一のプロテクトコードと第二のプロテクトコードとを生成するコード生成処理と、
    前記復号処理後、当該復号処理で生成されたプロテクト対象オブジェクトに、前記第一のプロテクトコードを埋め込む第一コード書込み処理と、
    前記コード書込み処理後、当該コード書込み処理で前記第一のプロテクトコードが埋め込まれたプロテクト対象オブジェクトと、他のオブジェクトとの結合により、実行可能モジュールを作成する結合処理と、
    前記結合処理後、当該結合処理で作成された前記実行可能モジュールに前記第二のプロテクトコードを埋め込む第二コード書込み処理と、
    前記第一コード書込み処理後、前記第二コード書込み処理前に、前記復号処理で生成された前記プロテクト対象オブジェクトを消去する削除処理と、
    を実行させることを特徴とする記憶媒体。
  8. 請求項7記載の記憶媒体であって、
    前記プログラムは、前記コード生成処理において、前記情報処理装置に、乱数から、前記第一のプロテクトコードと前記第二のプロテクトコードを生成させることを特徴とする記憶媒体。
  9. 請求項7または8記載の記憶媒体であって、
    前記プログラムは、前記情報処理装置に、前記第一のプロテクトコードと前記第二のプロテクトコードとにダミーデータを付加させることを特徴とする記憶媒体。
  10. 請求項6、7、8および9のいずれか1項に記載の記憶媒体であって、
    前記プログラムは、前記復号後のプロテクト対象オブジェクトに書き込むためのプロテクトコードを暗号化する処理を前記情報処理装置に実行させ、
    前記プロテクト対象オブジェクトには、前記実行可能モジュールを読み込んだ装置に、当該実行可能モジュールに含まれた暗号化プロテクトコードを、当該プロテクトコードの診断に際して復号させるための手続きが含まれることを特徴とする記憶媒体。
  11. 複数のオブジェクトを結合して、実行可能モジュールを生成する処理を情報処理装置に実行させる実行可能モジュール生成方法であって、
    前記情報処理装置は、実行可能モジュールに含まれたプロテクトコードの矛盾により処理を終了させる手続きを含むプロテクト対象オブジェクトを、暗号化済みのプロテクト対象オブジェクトの復号により生成し、前記復号後のプロテクト対象オブジェクトに前記プロテクトコードを書き込んで、当該プロテクトコードを書き込んだ復号後のプロテクト対象オブジェクトと他のオブジェクトとの結合により前記実行可能モジュールを作成して、前記復号後のプロテクト対象オブジェクトを、前記他のオブジェクトとの結合後消去る、
    ことを特徴とする実行モジュール生成方法。
  12. 複数のオブジェクトを結合して、実行可能モジュールを生成する処理を情報処理装置に実行させる実行可能モジュール生成方法であって、
    前記情報処理装置は、実行可能モジュールに含まれた複数のプロテクトコードの矛盾により処理を終了させる手続きを含むプロテクト対象オブジェクトを、暗号化済みのプロテクト対象オブジェクトの復号により生成し、互いに関連付けられた第一のプロテクトコードと第二のプロテクトコードとを生成して、前記復号後のプロテクト対象オブジェクトに当該第一のプロテクトコードを埋め込み、当該第一のプロテクトコード埋込み済みのプロテクト対象オブジェクトと他のオブジェクトとの結合により実行可能モジュールを作成したら、当該実行可能モジュールに当該第二のプロテクトコードを埋め込み、前記第一のプロテクトコード埋込み済みのプロテクト対象オブジェクトは、前記二のプロテクトコード埋込み前に消去されることを特徴とする実行可能モジュール生成方法。
  13. 情報処理装置に実行されるプログラムであって、
    前記情報処理装置に、
    実行可能モジュールに含まれたプロテクトコードの矛盾により処理を終了させる手続きを含むプロテクト対象オブジェクトを、暗号化済みのプロテクト対象オブジェクトの復号により生成する復号処理と、
    前記復号処理で生成されたプロテクト対象オブジェクトに前記プロテクトコードを書き込み、当該プロテクトコードを書き込んだプロテクト対象オブジェクトと他のオブジェクトとの結合により、前記実行可能モジュールを作成する処理と、
    前記復号処理で生成されたプロテクト対象オブジェクトを、前記他のオブジェクトとの結合後に消去する削除処理と、
    を実行させることを特徴とするプログラム。
  14. 情報処理装置に実行されるプログラムであって、
    前記情報処理装置に、
    実行可能モジュールに含まれた複数のプロテクトコードの矛盾により処理を終了させる手続きを含むプロテクト対象オブジェクトを、暗号化済みのプロテクト対象オブジェクトの復号により生成する復号処理と、
    互いに関連付けられた第一のプロテクトコードと第二のプロテクトコードとを生成するコード生成処理と、
    前記復号処理後、当該復号処理で生成されたプロテクト対象オブジェクトに、前記第一のプロテクトコードを埋め込む第一コード書込み処理と、
    前記コード書込み処理後、当該コード書込み処理で前記第一のプロテクトコードが埋め込まれたプロテクト対象オブジェクトと、他のオブジェクトとの結合により、実行可能モジュールを作成する結合処理と、
    前記結合処理後、当該結合処理で作成された前記実行可能モジュールに前記第二のプロテクトコードを埋め込む第二コード書込み処理と、
    前記第一コード書込み処理後、前記第二コード書込み処理前に、前記復号処理で生成された前記プロテクト対象オブジェクトを消去する削除処理と、
    を実行させることを特徴とするプログラム。
  15. 請求項14記載のプログラムであって、
    前記コード生成処理において、前記情報処理装置に、乱数から、前記第一のプロテクトコードと前記第二のプロテクトコードを生成させることを特徴とするプログラム。
  16. 請求項14または15記載のプログラムであって、
    前記情報処理装置に、前記第一のプロテクトコードと前記第二のプロテクトコードとにダミーデータを付加させることを特徴とするプログラム。
  17. 請求項13、14、15および16のいずれか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 情報処理システム、実行可能モジュール生成方法および記憶媒体
EP01119450A EP1182532A3 (en) 2000-08-15 2001-08-13 Information processing apparatus, executable module generating method, and storage medium
US09/928,907 US7290137B2 (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
JP2000-246404 2000-08-15
JP2000246404 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 JP2002132371A (ja) 2002-05-10
JP3712366B2 true 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)

Families Citing this family (11)

* 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
JP4514473B2 (ja) 2004-02-23 2010-07-28 富士通株式会社 コンピュータシステム、中央装置及びプログラム実行方法
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 江苏通付盾信息安全技术有限公司 应用程序安全加固方法及装置
JP7123001B2 (ja) * 2019-04-26 2022-08-22 ルネサスエレクトロニクス株式会社 記録システム

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 耐タンパ暗号システム及びメモリ装置及び認証端末及び及びプログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5007243B2 (ja) リムーバブル記録媒体によって配布されるデジタルコンテンツの使用及びコピーを制御する方法
US9003539B2 (en) Multi virtual machine architecture for media devices
JP4486321B2 (ja) デジタル権利管理(drm)システムを使用するソフトウェアアプリケーションの保護のための方法および媒体
JP4889638B2 (ja) 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路
US6868495B1 (en) One-time pad Encryption key Distribution
US7278169B2 (en) Controlling the downloading and recording of digital data
EP1045387B1 (en) Data management apparatus, data management method, and record medium recording data management program
JP3712366B2 (ja) 情報処理システム、実行可能モジュール生成方法および記憶媒体
JP2002318692A (ja) インストール支援システム、インストール支援装置、インストール支援方法、インストールを支援するためのプログラムおよびそのプログラムを記録した記録媒体
US20050177823A1 (en) License management
US20040242029A1 (en) Writing apparatus, semiconductor memory card, writing proguram, and writing method
JP2007133608A (ja) 情報処理装置、ソフトウェアインストール方法、および光ディスク
WO2005038800A2 (en) Secure access and copy protection management system
JP2007172579A (ja) 不正コピー防止装置及び方法
RU2297677C2 (ru) Носитель записи для хранения цифрового продукта
US20070143212A1 (en) Online product distribution using fingerprint and encryption
US20020146121A1 (en) Method and system for protecting data
US20090271875A1 (en) Upgrade Module, Application Program, Server, and Upgrade Module Distribution System
US20090285070A1 (en) Copy-protected optical storage media and method for producing the same
JP2005339516A (ja) 情報処理システム、実行可能モジュール生成方法および記憶媒体
JP4109805B2 (ja) コンテンツ管理方法及び記憶媒体
JP2003099729A (ja) 書込装置、半導体メモリカード、プログラム、方法
TW200410139A (en) Method of preventing unauthorized use of virtual medium image file
KR100298506B1 (ko) 집적회로카드와프로그램의공조에의한불법설치방지시스템
JP4198684B2 (ja) ディスクコピー防止機能の拡張性の向上

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