JP2003271255A - 実行プログラム作成システム、実行プログラム販売方法、実行プログラム作成システム用プログラム、実行プログラム作成システム用記録媒体 - Google Patents

実行プログラム作成システム、実行プログラム販売方法、実行プログラム作成システム用プログラム、実行プログラム作成システム用記録媒体

Info

Publication number
JP2003271255A
JP2003271255A JP2002067010A JP2002067010A JP2003271255A JP 2003271255 A JP2003271255 A JP 2003271255A JP 2002067010 A JP2002067010 A JP 2002067010A JP 2002067010 A JP2002067010 A JP 2002067010A JP 2003271255 A JP2003271255 A JP 2003271255A
Authority
JP
Japan
Prior art keywords
program
protection
execution
execution program
user terminal
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.)
Pending
Application number
JP2002067010A
Other languages
English (en)
Inventor
Yoichi Yamada
洋一 山田
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.)
NTT Comware Corp
Original Assignee
NTT Comware Corp
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 NTT Comware Corp filed Critical NTT Comware Corp
Priority to JP2002067010A priority Critical patent/JP2003271255A/ja
Publication of JP2003271255A publication Critical patent/JP2003271255A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 【課題】 機密性を有するプログラムを不当な解析から
守ることを目的としたものである。 【解決手段】 実行プログラム(A+B+C)の一部の
保護すべき部分である保護プログラム(B)を利用者に
提供する前に読み出し又は抽出しておき、利用者からの
要求(6)に応じて別途保護プログラムBを提供すること
により、その後、保護プログラムBが利用者端末9のメ
モリ22内で実行プログラム(A+B’+C)と組み合
わせて実行プログラム(A+B+C)として実行され、
実行終了後に利用者端末の電源をOFF又はシャットダ
ウンすれば、メモリ22に格納されていた保護プログラ
ムBがメモリ22に残らず削除されてしまうため、利用
者によるプログラムの不当な解析を防止することができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、利用者端末の主記
憶装置(メイン・メモリ)に格納されることによって、
上記利用者端末に所定の機能を実行させるための実行プ
ログラムを作成することに関し、特に、不当な解読から
守ることができる実行プログラムを作成する実行プログ
ラム作成システム、実行プログラム販売方法、実行プロ
グラム作成システム用プログラム、及び実行プログラム
作成システム用記録媒体に関する。
【0002】
【従来の技術】アルゴリズムが解析されると悪意を持っ
て解析結果を利用されることが問題となるプログラムが
ある。特にセキュリティに密接に関係する機能を提供す
る処理が該当する。既存の対処方法では、プログラムが
HD(Hard Disk)等の二次記憶装置に存在する限り、リ
バース・エンジニアリング(Reverse Engineering)によ
り解析の機会を与えることとなる。そのため、使用許諾
書面にてプログラムの解析を禁止する項目を設けたり、
処理ルーチンを暗号化してプログラム実行時に復号化し
た上で利用する等の解析が困難なプログラミング技法を
用いて処理を記述することにより悪意の解読に対処して
いる。
【0003】
【発明が解決しようとする課題】しかしながら、使用許
諾書面にてリバース・エンジニアリング禁止の項目を設
けた場合であっても、不正使用を承知でプログラムを解
析する行為を防止することはできないため、機密性の高
い処理ルーチンよりアルゴリズムやデータを不法に入手
され悪用される可能性がある。また、処理ルーチンを暗
号化して解析を困難にした場合であっても、プログラム
実行時に復号化した上で利用する際には、復号化ルーチ
ンも同じプログラム上に存在することから、解析時間を
多く掛ける等により解析できるため、解析を完全に防止
することはできない。
【0004】そこで、本発明は上述した事情を鑑みてな
されたものであり、機密性を有するプログラムを不当な
解析から守ることを目的としたものである。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に係る発明は、利用者端末の主記憶装置に
格納されることによって、前記利用者端末に所定の機能
を実行させるための実行プログラムを作成する実行プロ
グラム作成システムにおいて、前記実行プログラムから
保護すべき部分である保護プログラムを読み出す保護プ
ログラム読出手段と、前記保護プログラム読出手段によ
って読み出した部分に無効命令プログラムを埋め込む無
効命令プログラム埋込手段と、前記利用者端末からの保
護プログラムの要求に応じて前記利用者端末へ配信すべ
き保護プログラムを指定する際に使用する要求情報を生
成する要求情報生成手段と、前記保護プログラム読出手
段によって読み出した保護プログラムと前記要求情報生
成手段によって生成した要求情報とを関連付けて管理す
る保護プログラム管理手段と、を有することにより、前
記無効命令プログラム埋込手段によって無効命令プログ
ラムを埋め込んだ後の実行プログラムを前記利用者端末
へ配信又は記録媒体に記録した状態で配布することを可
能にすることを特徴とする実行プログラム作成システム
である。
【0006】ここで、本発明の「実行プログラム作成シ
ステム」は、1つのコンピュータによって構築されてい
る場合だけでなく、各手段(ステップの実行、手段の機
能化)を分割して2つ以上のコンピュータによって構築
されている場合も含む。
【0007】請求項2に係る発明は、請求項1に記載の
実行プログラム作成システムであって、更に、前記無効
命令プログラム埋込手段によって無効命令プログラムを
埋め込んだ後の実行プログラムと、当該実行プログラム
が前記利用者端末の主記憶装置に格納中に当該実行プロ
グラムを解析するアクセスがあった場合に前記実行プロ
グラムの実行を強制終了させるための強制終了用プログ
ラムとを組み合わせるプログラム組合手段を有すること
を特徴とする実行プログラム作成システムである。
【0008】請求項3に係る発明は、前記無効命令プロ
グラム埋込手段によって無効命令プログラムを埋め込ん
だ後の実行プログラムは、前記利用者端末の主記憶装置
に格納されることによって、前記実行プログラム作成シ
ステムへ前記要求情報を送信することにより、前記保護
プログラムの要求を行う保護プログラム要求機能と、前
記実行プログラム中の無効命令プログラムを、前記保護
プログラム要求機能による前記実行プログラム作成シス
テムへの要求に応じて前記実行プログラム作成システム
から配信された保護プログラムに置き換える置換機能
と、を前記利用者端末に実行させるプログラムであるこ
とを特徴とする請求項1又は2に記載の実行プログラム
作成システムである。
【0009】請求項4に係る発明は、請求項1乃至3の
少なくとも一項に記載の実行プログラム作成システムを
使用して前記実行プログラムを販売する実行プログラム
販売方法であって、前記利用者端末から送信された要求
情報に基づいて、前記保護プログラム管理手段により前
記要求情報に関連付けて管理している保護プログラムを
検出する保護プログラム検出ステップと、前記保護プロ
グラム検出ステップによって検出した保護プログラムを
前記利用者端末に配信する保護プログラム配信ステップ
と、を前記実行プログラム作成システムに実行させるこ
とにより、前記利用者端末の主記憶装置に格納されてい
る実行プログラム中の無効命令プログラムを、前記保護
プログラム配信ステップによって配信した保護プログラ
ムに置き換えて実行プログラムの実行を可能にすること
を特徴とする実行プログラム販売方法である。
【0010】請求項5に係る発明は、利用者端末の主記
憶装置に格納されることによって、記利用者端末に所定
の機能を実行させるための実行プログラムを作成する実
行プログラム作成システムで用いる実行プログラム作成
システム用プログラムにおいて、前記実行プログラムか
ら保護すべき部分である保護プログラムを読み出す保護
プログラム読出手段と、前記保護プログラム読出手段に
よって読み出した部分に無効命令プログラムを埋め込む
無効命令プログラム埋込手段と、前記利用者端末からの
保護プログラムの要求に応じて前記利用者端末へ配信す
べき保護プログラムを指定する際に使用する要求情報を
生成する要求情報生成手段と、前記保護プログラム読出
手段によって読み出した保護プログラムと前記要求情報
生成手段によって生成した要求情報とを関連付けて管理
する保護プログラム管理手段と、して前記実行プログラ
ム作成システムに機能させることにより、前記無効命令
プログラム埋込手段によって無効命令プログラムを埋め
込んだ後の実行プログラムを前記利用者端末へ配信又は
記録媒体に記録した状態で配布することを可能にするこ
とを特徴とする実行プログラム作成システム用プログラ
ムである。
【0011】ここで、本発明における「プログラム」と
は、実行プログラム作成システム(コンピュータ)によ
る処理に適した命令の順番付けられた列からなるものを
いい、コンピュータのHDD、CD−RW等にインスト
ールされているものや、CD−ROM、DVD、FD、
コンピュータのHDD等の各種記録媒体に記録されてい
るものも含まれる。
【0012】請求項6に係る発明は、請求項5に記載の
実行プログラム作成システム用プログラムであって、更
に、前記無効命令プログラム埋込手段によって無効命令
プログラムを埋め込んだ後の実行プログラムと、当該実
行プログラムが前記利用者端末の主記憶装置に格納中に
当該実行プログラムを解析するアクセスがあった場合に
前記実行プログラムの実行を強制終了させるための強制
終了用プログラムとを組み合わせるプログラム組合手段
として前記実行プログラムシステムに機能させることを
特徴とする実行プログラム作成システム用プログラムで
ある。
【0013】請求項7に係る発明は、利用者端末の主記
憶装置に格納されることによって、前記利用者端末に所
定の機能を実行させるための実行プログラムを作成する
実行プログラム作成システムにおいて、前記実行プログ
ラムから保護すべき部分である保護プログラムを抽出す
る保護プログラム抽出手段と、前記利用者端末からの保
護プログラムの要求に応じて前記利用者端末へ配信すべ
き保護プログラムを指定する際に使用する要求情報を生
成する要求情報生成手段と、前記保護プログラム抽出手
段によって抽出した保護プログラムと前記要求情報生成
手段によって生成した要求情報とを関連付けて管理する
保護プログラム管理手段と、を有することにより、前記
保護プログラム抽出手段によって保護プログラムを抽出
した後の実行プログラムを前記利用者端末へ配信又は記
録媒体に記録した状態で配布することが可能であること
を特徴とする実行プログラム作成システムである。
【0014】請求項8に係る発明は、請求項7に記載の
実行プログラム作成システムであって、更に、前記保護
プログラム抽出手段によって保護プログラムを抽出した
後の実行プログラムと、当該実行プログラムが前記利用
者端末の主記憶装置に格納中に当該実行プログラムを解
析するアクセスがあった場合に前記実行プログラムの実
行を強制終了させるための強制終了用プログラムとを組
み合わせるプログラム組合手段を有することを特徴とす
る実行プログラム作成システムである。
【0015】請求項9に係る発明は、前記保護プログラ
ム抽出手段によって保護プログラムを抽出した後の実行
プログラムは、前記利用者端末の主記憶装置に格納され
ることによって、前記実行プログラム作成システムへ前
記要求情報を送信することにより、前記保護プログラム
の要求を行う保護プログラム要求機能と、前記実行プロ
グラム中の保護プログラムを抽出した部分に、前記保護
プログラム要求機能による前記実行プログラム作成シス
テムへの要求に応じて前記実行プログラム作成システム
から配給された保護プログラムを挿入する挿入機能と、
を前記利用者端末に実行させるプログラムであることを
特徴とする請求項7又は8に記載の実行プログラム作成
システムである。
【0016】請求項10に係る発明は、請求項7乃至9
の少なくとも一項に記載の実行プログラム作成システム
を使用して前記実行プログラムを販売する実行プログラ
ム販売方法であって、前記利用者端末から送信された要
求情報に基づいて、前記保護プログラム管理手段により
前記要求情報に関連付けて管理している保護プログラム
を検出する保護プログラム検出ステップと、前記保護プ
ログラム検出ステップによって検出した保護プログラム
を前記利用者端末に配信する保護プログラム配信ステッ
プと、を前記実行プログラム作成システムに実行させる
ことにより、前記利用者端末の主記憶装置に格納されて
いる実行プログラム中の保護プログラムを抽出した部分
に、前記保護プログラム配信ステップによって配信した
保護プログラムを挿入して実行プログラムの実行を可能
にすることを特徴とする実行プログラム販売方法であ
る。
【0017】請求項11に係る発明は、利用者端末の主
記憶装置に格納されることによって、前記利用者端末に
所定の機能を実行させるための実行プログラムを作成す
る実行プログラム作成システムで用いる実行プログラム
作成システム用プログラムにおいて、前記実行プログラ
ムから保護すべき部分である保護プログラムを抽出する
保護プログラム抽出手段と、前記利用者端末からの保護
プログラムの要求に応じて、前記利用者端末へ配信すべ
き保護プログラムを指定する際に使用する要求情報を生
成する要求情報生成手段と、前記保護プログラム抽出手
段によって抽出した保護プログラムと前記要求情報生成
手段によって生成した要求情報とを関連付けて管理する
保護プログラム管理手段と、して前記実行プログラム作
成システムに機能させることにより、前記保護プログラ
ム抽出手段によって保護プログラムを抽出した後の実行
プログラムを前記利用者端末へ配信又は記録媒体に記録
した状態で配布することを可能にすることを特徴とする
実行プログラム作成システム用プログラムである。
【0018】請求項12に係る発明は、請求項11に記
載の実行プログラム作成システム用プログラムであっ
て、更に、前記保護プログラム抽出手段によって保護プ
ログラムを抽出した後の実行プログラムと、当該実行プ
ログラムが前記利用者端末の主記憶装置に格納中に当該
実行プログラムを解析するアクセスがあった場合に前記
実行プログラムの実行を強制終了させるための強制終了
用プログラムとを組み合わせるプログラム組合手段とし
て前記実行プログラム作成システムに機能させることを
特徴とする実行プログラム作成システム用プログラムで
ある。
【0019】請求項13に係る発明は、請求項5、6、
11、及び12のうち少なくとも一項に記載の実行プロ
グラム作成システム用プログラムを記録したことを特徴
とする実行プログラム作成システムで読み取り可能な実
行プログラム作成システム用記録媒体である。
【0020】ここで、本発明における「記録媒体」と
は、実行プログラム作成システム(コンピュータ)で各
処理を実現するためのプログラムの読み取りに使用する
ことができればよく、情報を媒体の物理的特性を利用し
てどのように記録するか等の物理的な記録方法には依存
しない。例えば、FD、CD−ROM(R、RW)、D
VD−ROM(RAM、R、RW)、MO、MD、磁気
テープ等が該当する。
【0021】
【発明の実施の形態】以下に、図面を用いて本発明に係
る一実施形態を説明する。
【0022】図1は、本実施形態に係る実行プログラム
作成システム(以下、「システム」という)7を利用し
て、利用者端末9の利用者に実行ファイル(a’’)並び
にDevice Driver File(b)、及び保護ルーチンBを配
信、販売するための通信インフラストラクチャ(Infrast
ructure)を示している。
【0023】図1に示すように、本実施形態に係るシス
テム7は、1つのコンピュータにより構築されている。
また、システム7は、インターネット2への接続が可能
な通信機能を有し、インターネット8を介して利用者の
利用者端末9と相互通信可能である。
【0024】また、システム7(利用者端末9に関して
は括弧内に示す)の要部構成として、制御部本体として
のCPU[Central Processing Unit]10(20)と、
このCPU10(20)を制御するプログラムなどの固
定的データを予め格納したROM[Read Only Memory]1
1(21)と、各種データを一時的に記憶、格納するエ
リアを形成する主記憶装置としてのメモリ12(22)
と、各種データの書込み及び読出しを行う2次記憶装置
としてのHDD[Hard Disk Drive]13(23)と、イ
ンターネット8を介してデータ伝送をするための通信イ
ンタフェース14(24)と、モニタ15(25)等を
有している。そして、これらCPU10(20)、RO
M11(21)、メモリ12(22)、HDD13(2
3)、通信インタフェース14(24)、モニタ15
(25)をアドレスバス、データバス等のバスライン1
6(26)で電気的に接続している。
【0025】また、システム7のHDD13には、シス
テム7に後述のステップ(S1〜S8,S21〜S2
3)を実行させるためのシステム用プログラム(P)が記
憶されている。尚、システム7へのシステム用プログラ
ム(P)の記録作業は、このシステム用プログラム(P)が記
録されており、システム7で読み取り可能なCD−RO
M等の記録媒体を利用して実現することができる。
【0026】更に、システム7のHDD13には、保護
ルーチン管理DB(Data Base)17が構築されている。
この保護ルーチン管理DB17は、Excute File[実行フ
ァイル](a’)から読出又は抽出した後述の保護すべき部
分であるサブルーチン(以下、「保護ルーチン」とい
う)Bと、利用者端末9からの保護ルーチンBの要求に
応じて利用者端末9へ配信すべき保護ルーチンBを保護
ルーチン管理DB17中において指定する際に使用する
要求情報としてのDownload Tag(6)とを関連付けて管理
するためのDBである。尚、上記保護ルーチンBは、保
護ルーチン管理DB17においては、Method Data(5)と
して管理されている。
【0027】また、保護ルーチン管理DB17には、Me
thod Data(5)及びDownload Tag(6)以外に、Method Name
(1),Method Version(2),Method Size(3),Load Addre
ss(4)も管理されている。そこで、以下に保護ルーチン
管理DB17に管理する全てのデータに関して説明す
る。
【0028】まず、Method Name(1)は、「保護ルーチン
名称」であり、保護ルーチンBの実体であるMethod Dat
a(5)の名称を示すデータである。例えば、「Secret Fun
ction」と表す。
【0029】次に、Method Version(2)は、「保護ルー
チン版数」であり、保護ルーチンBの実体であるMethod
Data(5)の版管理番号を示すデータである。例えば、
「1」、「2」等と表す。
【0030】また、Method Size(3)は、「保護ルーチン
データサイズ」であり、保護ルーチンBの実体であるMe
thod Data(5)のメモリイメージのデータサイズを示すデ
ータである。例えば、「2048Byte」と表す。
【0031】更に、Load Address(4)は、「保護ルーチ
ン割当アドレス」であり、実行ファイル(a’’)中の
(リンクの結果)割り当てられた後述の無効命令ルーチ
ンB’の先頭アドレス又は保護ルーチンBを挿入すべき
先頭アドレスを示すデータである。例えば、「0x1100
0」と表す。このLoad Address(4)によって、利用者端末
9では、無効命令ルーチンB’を保護ルーチンBに置き
換えるためのアドレス又は保護ルーチンBを挿入するた
めのアドレスを把握することができる。
【0032】また、Method Data(5)は、「保護ルーチン
実体」であり、保護ルーチンBの内容(機械語)を示す
データである。例えば、Load Address(0x11000)からMet
hodSize(2048Byte)分のバイナリーデータを示す。
【0033】更に、Download Tag(6)は、「保護ルーチ
ン問合せ(要求)名称」であり、利用者端末9が実行プ
ログラム作成システム7に問合せ(要求)する保護ルー
チンBを指定するときに使用すると共に、この要求を受
けた実行プログラム作成システム7が保護ルーチン管理
DB17中の保護ルーチンBを指定する際に使用する名
札データである。基本的な仕組みの上では、Method Nam
e(1)がこのDownload Tag(6)に相当するが、利用者端末
9から実行プログラム作成システム7への通信データ内
容の解析を隠蔽する目的でMethod Name(1)を直接使用し
たくない場合には、その代替として、Download Tag(6)
を別途規定する。この場合の例として、上記Method Nam
e(1),Method Version(2),Method Size(3),及びLoad
Address(4)を連結したビットデータ列に対してハッシュ
(Hash)を掛けた値にすることが考えられる。本実施形態
においては、この別途規定したDownload Tag(6)を用い
る。
【0034】尚、上記システム7は、1つのコンピュー
タによって構築されている場合だけでなく、各手段(ス
テップの実行、手段の機能化)を分割して2つ以上のコ
ンピュータによって構築されていてもよい。例えば、保
護ルーチンBの作成を1つのコンピュータによって行
い、この作成した保護ルーチンBの配信を別のコンピュ
ータによって行うことも可能である。
【0035】続いて、図2乃至図6を用い、システム7
を使用して利用者端末9の利用者に提供するExcute Fil
e(a’’)を作成するための処理について説明する。
【0036】まず、システム7では、Source File[原始
ファイル](a)をコンパイル及びリンクすることにより、
Excute File[実行ファイル](a’)を作成する(ステップ
S1)。またこの際、この作成したExcute File(a’)の
Method Name(1)も設定する。この設定は、システム7の
操作者が設定してもよいし、システム7が自動的に設定
してもよい。
【0037】次に、システム7では、ファイルの保護形
式の判定を行う(ステップS2)。即ち、システム1の
操作者によって無効命令埋め込み形式が指定されたの
か、或いは抽出形式が指定されたのかを判定する。そし
て、無効命令埋め込み形式が指定されたと判断した場合
には、Excute File(a’)から保護ルーチンBの読み出し
を行う(ステップS3)。例えば、図3に示すExcute F
ile(a’)の概念図のように、Excute File(a’)がサブル
ーチンA、サブルーチン(ここでは、保護ルーチン)
B、及びサブルーチンCにより構成されている場合に、
Excute File(a’)から保護ルーチンBを読み出す処理を
行う。またこの際、この読み出した保護ルーチンB(Me
thod Data(5))に基づいて、Method Version(2),Metho
d Size(3),及びLoad Address(4)を設定する。この設定
に関しても、システム7の操作者が設定してもよいし、
システム7が自動的に設定してもよい。尚、これら設定
された各データ(1)〜(5)はメモリ12に記憶される。
【0038】次に、システム7では、Excute File(a’)
の保護ルーチンB部分へ無効命令用のサブルーチン(以
下、「無効命令ルーチン」という)を埋め込むことによ
り、Excute File(a’’)を作成する(ステップS4)。
例えば、図3に示すExcute File(a’)の保護ルーチンB
部分へ無効命令ルーチンB’を埋め込むことにより、図
4に示すExcute File(a’’)を作成する。
【0039】一方、上記ステップS2において、抽出形
式が指定されたと判断した場合には、Excute File(a’)
から保護ルーチンBの抽出を行うことにより、Excute F
ile(a’’)を作成する(ステップS5)。例えば、図3
に示すExcute File(a’)から保護ルーチンBを抽出し
て、サブルーチンAとサブルーチンCを詰めることによ
り、図5に示すExcute File(a’’)を作成する。この場
合においても、上記ステップS3と同様に、この抽出し
た保護ルーチンB(Method Data(5))に基づいて、Meth
od Version(2),Method Size(3),及びLoad Address(4)
を設定する。
【0040】続いて、上記ステップS4又はステップS
5の後に、メモリ12に記憶しているMethod Name(1),
Method Version(2),Method Size(3),及びLoad Addres
s(4)を連結したビットデータ列に対してハッシュ(Hash)
を掛けることにより、Download Tag(6)を生成する(ス
テップS12)。そして、このDownload Tag(6)と、上
記Method Name(1),Method Version(2),Method Size
(3),Load Address(4),及び保護ルーチンB(Method D
ata(5))を関連付けて保護ルーチン管理DB17に記憶
して管理する(ステップS7)。
【0041】次に、システム7では、上記ステップS4
において無効命令ルーチンB’を埋め込んだExcute Fil
e(a’’)、又は上記ステップS5において保護ルーチン
Bを抽出したExcute File(a’’)とDevice Driver File
(b)とを組み合わせると共に、これらのインストーラを
作成する(ステップS8)。これにより、Excute File
(a’’)とDevice Driver File(b)をインターネット8を
介して利用者端末9に配信したり、或いは、Excute Fil
e(a’’)とDevice Driver File(b)をCD−ROM等に
記録して配布することができる。その後、配信又は配布
によって利用者が取得したExcute File(a’’)とDevice
Driver File(b)は、利用者端末9のHDD23に記憶
されることになる。
【0042】尚、上記Device Driver File(b)は、不正
なプログラムの解析をより厳密に禁止して、Excute Fil
e(a’’)の耐タンパ性を高めるためのプログラムであ
る。この「耐タンパ性」とは、実行プログラムを実行中
に、この実行プログラムを解析するためのデバッガ(Deb
ugger)等からのアクセスがあった場合に、実行プログラ
ムを強制終了させる等の要件を指すものである。即ち、
図6に示すように、利用者端末9のメモリ22領域に対
して、Excute File(a’’)によるプロセス以外の読み出
し(READ)/書き込み(WRITE)命令要求があった場合に、
この命令要求を不正アクセスとみなし、Excute File
(a’’)によるプロセス(実行プログラムの実行)又はE
xcute File(a’)によるプロセスを強制終了させるため
の監視及び当該強制終了を行う。
【0043】続いて、図7を用い、Excute File(a’’)
を入手した利用者が利用者端末9を使用してExcute Fil
e(a’’)に係る実行プログラムを実行させるための処理
(ステップS10)について説明する。このステップS
10は、図7及び以下に示すように、ステップS11〜
S19からなる。尚、図7は、利用者端末9においてEx
cute File(a’’)に係る実行プログラムを実行させた際
の各処理と、それに伴いシステム7においてシステム用
プログラム(P)を実行させた際の各処理を含めたシーケ
ンス図である。
【0044】まず、利用者端末9ではExcute File
(a’’)に係る実行プログラムを起動させる(ステップ
S11)。またこの際、Device Driver File(b)に係る
プログラムも起動させておく。
【0045】次に、利用者端末9では、Device Driver
File(b)に係るDevice Driverの動作状態を取得する(ス
テップS12)。そして、Device Driver File(b)に係
るDevice Driverの動作が起動済みであるか、或いは未
起動であるかを判断する(ステップS13)。そして、
起動済みと判断した場合には、更に、保護ルーチンBを
未取得か、或いは取得済みかを判定する(ステップS1
4)。そして、未取得であると判断した場合には、シス
テム7から保護ルーチンBを取得するために、インター
ネット8を介してシステム7にアクセスする。この際、
利用者がExcute File(a’’)を取得した正当者であるか
否かを判断するための認証処理を行う(ステップS1
5,S21)。そして、正当者の場合には、利用者端末
9からシステム1へDownload Tag(6)を送信して、保護
ルーチンBの要求を行う(ステップS16)。これによ
り、システム1では、Download Tag(6)に関連付けて保
護ルーチン管理DB17に管理しているMethod Name
(1),Method Version(2),MethodSize(3),Load Addres
s(4),Method Data(5)(保護ルーチンB),及びDownlo
adTag(6)を検出して、利用者端末9への配信準備を行う
(ステップS22)。
【0046】次に、システム7では、上記ステップS2
2によって配信準備を行った各データ(1)〜(6)を利用者
端末9へ配信する(ステップS23)。これにより、利
用者端末9では、保護ルーチンBを含めた各データ(1)
〜(6)を受信する(ステップS17)。
【0047】次に、システム7では、メモリ22上で、
Excute File(a’’)中の無効命令ルーチンB’を、上記
ステップS17によって受信した保護ルーチンBに置き
換える(ステップS18)。この置換処理は、上記ステ
ップS17において受信したMethod Size(3)及びLoad A
ddress(4)に基づいて、保護ルーチンBを置き換えるア
ドレスを特定することにより行う。これにより、図4に
示すExcute File(a’’)が図3に示すExcute File(a’)
となる。但し、この置換処理は図2に示すステップS
3,4によって無効命令ルーチンB’を埋め込んだ場合
であって、ステップS5によって保護ルーチンBを抽出
している場合には、この抽出した部分に保護ルーチンB
を挿入する。この場合には、図5に示すExcute File
(a’’)が図3に示すExcute File(a’)相当のプログラ
ムとなる。
【0048】次に、利用者端末9では、Excute File
(a’)に係る実行プログラムを実行することにより、本
来の目的を達成することができる(ステップS19)。
【0049】ところで、上記ステップS13において、
未起動と判断した場合には、利用者端末9は、上記ステ
ップS14〜S19の処理を行わずに終了する。また、
上記ステップS14において、保護ルーチンBを取得済
みと判断した場合には、上記ステップS15〜S18の
処理を省略する。
【0050】続いて、図8を用いて、利用者端末9の利
用者が、Excute File(a’’)に係る実行プログラムを解
析しようとする場合のDevice Driver File(b)による処
理を説明する。尚、ここでは、プログラム解析用のソフ
トウェアとしてデバッガ(Debugger)を使用した場合を表
している。
【0051】まず、利用者端末9では、デバッガによっ
て、Excute File(a’’)の起動プロセスを特定する(ス
テップS31)。そして、Excute File(a’’)の起動プ
ロセスのメモリを参照する(ステップS32)。しか
し、Device Driver File(b)により、メモリ22へアク
セスを不正アクセスとしてブロックし(ステップS4
1)、Excute File(a’’)によるプロセスを強制終了さ
せる(ステップS42)。
【0052】以上説明したように、本実施形態によれ
ば、図4又は図5に示すように、Excute File(a’)の一
部である保護ルーチンBを読出又は抽出し、Excute Fil
e(a’’)として利用者に提供することによって、利用者
がExcute File(a’’)を解析しても無駄なようにするこ
とができる。更に、利用者からの要求に応じて保護ルー
チンBを利用者端末9に配信し、利用者端末9のメモリ
22上でのみ保護ルーチンBを置換又は挿入して出来た
Excute File(a’)を実行できるようにすることによっ
て、利用者がExcute File(a’)を実行した後に利用者端
末9の電源をOFF又はシャットダウンすれば、メモリ
22に格納されていたExcute File(a’)がメモリ22に
残らず削除されてしまうため、利用者による解析を防止
することができる。
【0053】また、たとえメモリ22にExcute File
(a’’)を格納して当該実行プログラムを実行中に、デ
バッガ等を使用して分析しようと試みた場合であって
も、DeviceDriver File(b)により、Excute File(a’’)
によるプロセスを強制終了させることにより、利用者の
解析を完全に防止することができる。
【0054】尚、不当な解析を完全に防止することを厳
密に考えれば、利用者がインターネット8を介して処理
ルーチンBを取得する際に、配信途中の処理ルーチンB
を奪取して解析する場合をも排除する必要がある。しか
し、これは現在一般に運用されているセキュア通信技術
[SSL(Secure Sockets Layer)等の技術を用いて運用する
ことで回避することができる。
【0055】
【発明の効果】以上説明したように、本発明によれば、
実行プログラムの一部の保護すべき部分である保護プロ
グラムを利用者に提供する前に読み出し又は抽出してお
き、利用者からの要求に応じて別途提供することによ
り、その後、保護プログラムが利用者端末の主記憶装置
内で実行プログラムと組み合わせて実行され、実行終了
後に利用者端末の電源をOFF又はシャットダウンすれ
ば、上記主記憶装置に格納されていた保護プログラムが
主記憶記憶装置に残らず削除されてしまうため、利用者
等によるプログラムの不当な解析を防止することができ
る。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るシステム7を利用し
て、利用者端末9の利用者に実行ファイル(a’’)並び
にDevice Driver File(b)、及び保護ルーチンBを配
信、販売するための通信インフラストラクチャ(Infrast
ructure)を示す図。
【図2】本発明のシステム1を使用して利用者端末9の
利用者に提供するExcute File(a’’)を作成するための
処理を示した処理フロー図。
【図3】本発明のExcute File(a’)の概念図。
【図4】本発明のExcute File(a’’)の概念図(読出・
無効命令埋込型)。
【図5】本発明のExcute File(a’’)の概念図(抽出
型)。
【図6】本発明のDevice Driver File(b)による処理を
説明した図。
【図7】本発明における利用者端末9においてExcute F
ile(a’’)に係る実行プログラムを実行させた際の各処
理と、それに伴いシステム7においてシステム用プログ
ラム(P)を実行させた際の各処理を含めたシーケンス
図。
【図8】本発明における利用者端末9の利用者が、Excu
te File(a’’)に係る実行プログラム(pa’’)を解析し
ようとする場合のDevice Driver File(b)による処理を
示した処理フロー図。
【符号の説明】
(1) Method Name(保護ルーチン名称) (2) Method Version(保護ルーチン版数) (3) Method Size(保護ルーチンデータサイズ) (4) Load Address(保護ルーチン割当アドレス) (5) Method Data(保護ルーチン実体) (6) Download Tag(保護ルーチン問合せ(要求)名
称) 7 実行プログラム作成システム 8 インターネット 9 利用者端末 10 CPU 11 ROM 12 メモリ(メインメモリ) 13 HDD 14 通信インタフェース 15 モニタ 16 バスライン 20 CPU 21 ROM 22 メモリ(メインメモリ) 23 HDD 24 通信インタフェース 25 モニタ (a) Source File(原始プログラム) (a’) Excute File(保護ルーチンを含む実行プログラ
ム) (a’’) Excute File(保護ルーチンを含まない実行プ
ログラム) (b) Device Driver File(強制終了用プログラム) (P) システム用プログラム(実行プログラムシステ
ム用プログラム)

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 利用者端末の主記憶装置に格納されるこ
    とによって、前記利用者端末に所定の機能を実行させる
    ための実行プログラムを作成する実行プログラム作成シ
    ステムにおいて、 前記実行プログラムから保護すべき部分である保護プロ
    グラムを読み出す保護プログラム読出手段と、 前記保護プログラム読出手段によって読み出した部分に
    無効命令プログラムを埋め込む無効命令プログラム埋込
    手段と、 前記利用者端末からの保護プログラムの要求に応じて前
    記利用者端末へ配信すべき保護プログラムを指定する際
    に使用する要求情報を生成する要求情報生成手段と、 前記保護プログラム読出手段によって読み出した保護プ
    ログラムと前記要求情報生成手段によって生成した要求
    情報とを関連付けて管理する保護プログラム管理手段
    と、 を有することにより、前記無効命令プログラム埋込手段
    によって無効命令プログラムを埋め込んだ後の実行プロ
    グラムを前記利用者端末へ配信又は記録媒体に記録した
    状態で配布することを可能にすることを特徴とする実行
    プログラム作成システム。
  2. 【請求項2】 請求項1に記載の実行プログラム作成シ
    ステムであって、更に、 前記無効命令プログラム埋込手段によって無効命令プロ
    グラムを埋め込んだ後の実行プログラムと、当該実行プ
    ログラムが前記利用者端末の主記憶装置に格納中に当該
    実行プログラムを解析するアクセスがあった場合に前記
    実行プログラムの実行を強制終了させるための強制終了
    用プログラムとを組み合わせるプログラム組合手段を有
    することを特徴とする実行プログラム作成システム。
  3. 【請求項3】 前記無効命令プログラム埋込手段によっ
    て無効命令プログラムを埋め込んだ後の実行プログラム
    は、前記利用者端末の主記憶装置に格納されることによ
    って、 前記実行プログラム作成システムへ前記要求情報を送信
    することにより、前記保護プログラムの要求を行う保護
    プログラム要求機能と、 前記実行プログラム中の無効命令プログラムを、前記保
    護プログラム要求機能による前記実行プログラム作成シ
    ステムへの要求に応じて前記実行プログラム作成システ
    ムから配信された保護プログラムに置き換える置換機能
    と、 を前記利用者端末に実行させるプログラムであることを
    特徴とする請求項1又は2に記載の実行プログラム作成
    システム。
  4. 【請求項4】 請求項1乃至3の少なくとも一項に記載
    の実行プログラム作成システムを使用して前記実行プロ
    グラムを販売する実行プログラム販売方法であって、 前記利用者端末から送信された要求情報に基づいて、前
    記保護プログラム管理手段により前記要求情報に関連付
    けて管理している保護プログラムを検出する保護プログ
    ラム検出ステップと、 前記保護プログラム検出ステップによって検出した保護
    プログラムを前記利用者端末に配信する保護プログラム
    配信ステップと、 を前記実行プログラム作成システムに実行させることに
    より、前記利用者端末の主記憶装置に格納されている実
    行プログラム中の無効命令プログラムを、前記保護プロ
    グラム配信ステップによって配信した保護プログラムに
    置き換えて実行プログラムの実行を可能にすることを特
    徴とする実行プログラム販売方法。
  5. 【請求項5】 利用者端末の主記憶装置に格納されるこ
    とによって、前記利用者端末に所定の機能を実行させる
    ための実行プログラムを作成する実行プログラム作成シ
    ステムで用いる実行プログラム作成システム用プログラ
    ムにおいて、前記実行プログラムから保護すべき部分で
    ある保護プログラムを読み出す保護プログラム読出手段
    と、 前記保護プログラム読出手段によって読み出した部分に
    無効命令プログラムを埋め込む無効命令プログラム埋込
    手段と、 前記利用者端末からの保護プログラムの要求に応じて前
    記利用者端末へ配信すべき保護プログラムを指定する際
    に使用する要求情報を生成する要求情報生成手段と、 前記保護プログラム読出手段によって読み出した保護プ
    ログラムと前記要求情報生成手段によって生成した要求
    情報とを関連付けて管理する保護プログラム管理手段
    と、 して前記実行プログラム作成システムに機能させること
    により、前記無効命令プログラム埋込手段によって無効
    命令プログラムを埋め込んだ後の実行プログラムを前記
    利用者端末へ配信又は記録媒体に記録した状態で配布す
    ることを可能にすることを特徴とする実行プログラム作
    成システム用プログラム。
  6. 【請求項6】 請求項5に記載の実行プログラム作成シ
    ステム用プログラムであって、更に、 前記無効命令プログラム埋込手段によって無効命令プロ
    グラムを埋め込んだ後の実行プログラムと、当該実行プ
    ログラムが前記利用者端末の主記憶装置に格納中に当該
    実行プログラムを解析するアクセスがあった場合に前記
    実行プログラムの実行を強制終了させるための強制終了
    用プログラムとを組み合わせるプログラム組合手段とし
    て前記実行プログラムシステムに機能させることを特徴
    とする実行プログラム作成システム用プログラム。
  7. 【請求項7】 利用者端末の主記憶装置に格納されるこ
    とによって、前記利用者端末に所定の機能を実行させる
    ための実行プログラムを作成する実行プログラム作成シ
    ステムにおいて、 前記実行プログラムから保護すべき部分である保護プロ
    グラムを抽出する保護プログラム抽出手段と、 前記利用者端末からの保護プログラムの要求に応じて前
    記利用者端末へ配信すべき保護プログラムを指定する際
    に使用する要求情報を生成する要求情報生成手段と、 前記保護プログラム抽出手段によって抽出した保護プロ
    グラムと前記要求情報生成手段によって生成した要求情
    報とを関連付けて管理する保護プログラム管理手段と、 を有することにより、前記保護プログラム抽出手段によ
    って保護プログラムを抽出した後の実行プログラムを前
    記利用者端末へ配信又は記録媒体に記録した状態で配布
    することが可能であることを特徴とする実行プログラム
    作成システム。
  8. 【請求項8】 請求項7に記載の実行プログラム作成シ
    ステムであって、更に、 前記保護プログラム抽出手段によって保護プログラムを
    抽出した後の実行プログラムと、当該実行プログラムが
    前記利用者端末の主記憶装置に格納中に当該実行プログ
    ラムを解析するアクセスがあった場合に前記実行プログ
    ラムの実行を強制終了させるための強制終了用プログラ
    ムとを組み合わせるプログラム組合手段を有することを
    特徴とする実行プログラム作成システム。
  9. 【請求項9】 前記保護プログラム抽出手段によって保
    護プログラムを抽出した後の実行プログラムは、前記利
    用者端末の主記憶装置に格納されることによって、 前記実行プログラム作成システムへ前記要求情報を送信
    することにより、前記保護プログラムの要求を行う保護
    プログラム要求機能と、 前記実行プログラム中の保護プログラムを抽出した部分
    に、前記保護プログラム要求機能による前記実行プログ
    ラム作成システムへの要求に応じて前記実行プログラム
    作成システムから配給された保護プログラムを挿入する
    挿入機能と、 を前記利用者端末に実行させるプログラムであることを
    特徴とする請求項7又は8に記載の実行プログラム作成
    システム。
  10. 【請求項10】 請求項7乃至9の少なくとも一項に記
    載の実行プログラム作成システムを使用して前記実行プ
    ログラムを販売する実行プログラム販売方法であって、 前記利用者端末から送信された要求情報に基づいて、前
    記保護プログラム管理手段により前記要求情報に関連付
    けて管理している保護プログラムを検出する保護プログ
    ラム検出ステップと、 前記保護プログラム検出ステップによって検出した保護
    プログラムを前記利用者端末に配信する保護プログラム
    配信ステップと、 を前記実行プログラム作成システムに実行させることに
    より、前記利用者端末の主記憶装置に格納されている実
    行プログラム中の保護プログラムを抽出した部分に、前
    記保護プログラム配信ステップによって配信した保護プ
    ログラムを挿入して実行プログラムの実行を可能にする
    ことを特徴とする実行プログラム販売方法。
  11. 【請求項11】 利用者端末の主記憶装置に格納される
    ことによって、前記利用者端末に所定の機能を実行させ
    るための実行プログラムを作成する実行プログラム作成
    システムで用いる実行プログラム作成システム用プログ
    ラムにおいて、 前記実行プログラムから保護すべき部分である保護プロ
    グラムを抽出する保護プログラム抽出手段と、 前記利用者端末からの保護プログラムの要求に応じて、
    前記利用者端末へ配信すべき保護プログラムを指定する
    際に使用する要求情報を生成する要求情報生成手段と、 前記保護プログラム抽出手段によって抽出した保護プロ
    グラムと前記要求情報生成手段によって生成した要求情
    報とを関連付けて管理する保護プログラム管理手段と、 して前記実行プログラム作成システムに機能させること
    により、前記保護プログラム抽出手段によって保護プロ
    グラムを抽出した後の実行プログラムを前記利用者端末
    へ配信又は記録媒体に記録した状態で配布することを可
    能にすることを特徴とする実行プログラム作成システム
    用プログラム。
  12. 【請求項12】 請求項11に記載の実行プログラム作
    成システム用プログラムであって、更に、 前記保護プログラム抽出手段によって保護プログラムを
    抽出した後の実行プログラムと、当該実行プログラムが
    前記利用者端末の主記憶装置に格納中に当該実行プログ
    ラムを解析するアクセスがあった場合に前記実行プログ
    ラムの実行を強制終了させるための強制終了用プログラ
    ムとを組み合わせるプログラム組合手段として前記実行
    プログラム作成システムに機能させることを特徴とする
    実行プログラム作成システム用プログラム。
  13. 【請求項13】 請求項5、6、11、及び12のうち
    少なくとも一項に記載の実行プログラム作成システム用
    プログラムを記録したことを特徴とする実行プログラム
    作成システムで読み取り可能な実行プログラム作成シス
    テム用記録媒体。
JP2002067010A 2002-03-12 2002-03-12 実行プログラム作成システム、実行プログラム販売方法、実行プログラム作成システム用プログラム、実行プログラム作成システム用記録媒体 Pending JP2003271255A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002067010A JP2003271255A (ja) 2002-03-12 2002-03-12 実行プログラム作成システム、実行プログラム販売方法、実行プログラム作成システム用プログラム、実行プログラム作成システム用記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002067010A JP2003271255A (ja) 2002-03-12 2002-03-12 実行プログラム作成システム、実行プログラム販売方法、実行プログラム作成システム用プログラム、実行プログラム作成システム用記録媒体

Publications (1)

Publication Number Publication Date
JP2003271255A true JP2003271255A (ja) 2003-09-26

Family

ID=29198547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002067010A Pending JP2003271255A (ja) 2002-03-12 2002-03-12 実行プログラム作成システム、実行プログラム販売方法、実行プログラム作成システム用プログラム、実行プログラム作成システム用記録媒体

Country Status (1)

Country Link
JP (1) JP2003271255A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007304903A (ja) * 2006-05-12 2007-11-22 Nec Engineering Ltd 耐タンパーシステム
JP2010250444A (ja) * 2009-04-13 2010-11-04 Ccr Co Ltd コンピューター実行コードの分析及び操作防止のための任意コード実行システム
JP2012008825A (ja) * 2010-06-25 2012-01-12 Nec Corp プログラム難読化装置、プログラム制御装置、プログラム難読化方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04117548A (ja) * 1990-09-07 1992-04-17 Fujitsu Ltd プログラムの不正使用防止方式
JPH0816385A (ja) * 1994-04-28 1996-01-19 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア解析保護方法
JP2001051742A (ja) * 1999-07-13 2001-02-23 Internatl Business Mach Corp <Ibm> 実行可能モジュールおよび関連する保護サービス・プロバイダ・モジュールの完全性検査方法および装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04117548A (ja) * 1990-09-07 1992-04-17 Fujitsu Ltd プログラムの不正使用防止方式
JPH0816385A (ja) * 1994-04-28 1996-01-19 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア解析保護方法
JP2001051742A (ja) * 1999-07-13 2001-02-23 Internatl Business Mach Corp <Ibm> 実行可能モジュールおよび関連する保護サービス・プロバイダ・モジュールの完全性検査方法および装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007304903A (ja) * 2006-05-12 2007-11-22 Nec Engineering Ltd 耐タンパーシステム
JP2010250444A (ja) * 2009-04-13 2010-11-04 Ccr Co Ltd コンピューター実行コードの分析及び操作防止のための任意コード実行システム
JP2012008825A (ja) * 2010-06-25 2012-01-12 Nec Corp プログラム難読化装置、プログラム制御装置、プログラム難読化方法及びプログラム

Similar Documents

Publication Publication Date Title
US10592641B2 (en) Encryption method for digital data memory card and assembly for performing the same
US7992001B2 (en) Preventing execution of software without a dynamically generated key
JP4116024B2 (ja) ペリフェラルの使用管理方法、電子システム及びその構成装置
US8307408B2 (en) System and method for file processing and file processing program
JP2005536951A (ja) デジタル機器においてデジタル文書にセキュリティ保護を施す装置、システムおよび方法
JP2002132583A (ja) データ処理装置、データ記憶装置、およびデータ処理方法、並びにプログラム提供媒体
JP2007226667A (ja) データ処理装置、データ処理方法及びプログラム
EP1970913A1 (en) Portable memory apparatus having a content protection function and method of manufacturing the same
JP5645725B2 (ja) データ処理装置およびデータ処理システムおよびその制御方法
US8385554B2 (en) Preventing execution of pirated software
JP2010205376A (ja) 情報処理装置、データ記録システム、および情報処理方法、並びにプログラム
JP2010044839A (ja) 情報処理装置、およびデータ処理方法、並びにプログラム
JP2007148806A (ja) アプリケーション起動制限方法及びアプリケーション起動制限プログラム
KR100556304B1 (ko) 파일 시스템 정보 데이터를 이용한 디지털 컨텐츠의 불법복제 방지 방법 및 시스템
JP5971820B2 (ja) データを利用する方法及び装置
JP2009093229A (ja) プログラム制御装置及び方法とプログラム
JP2003271255A (ja) 実行プログラム作成システム、実行プログラム販売方法、実行プログラム作成システム用プログラム、実行プログラム作成システム用記録媒体
EP2003586B1 (en) System and method for evaluating licensing conditions of composite digital contents
KR20100093044A (ko) 다운로드된 디지털 매체 파일을 추적하기 위한 시스템 및 방법
JP2007249333A (ja) インストール方法、インストール制御プログラム、及び記憶媒体
JP4802222B2 (ja) コンピュータシステムおよびコンテンツ保護方法
RU2439821C2 (ru) Способ защиты цифрового контента с помощью шифрования и дешифрования карты памяти
KR20040079376A (ko) 파일 시스템 정보 데이터를 이용한 디지털 컨텐츠의 불법복제 방지 방법
JP2006018345A (ja) アクセス制御方法を用いたセキュリティ強化デバイス
JP2010205116A (ja) 情報処理装置、情報処理方法および情報処理システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050621