JP3654165B2 - Library linking method applied to a computer system and recording medium recording the program - Google Patents

Library linking method applied to a computer system and recording medium recording the program Download PDF

Info

Publication number
JP3654165B2
JP3654165B2 JP2000287033A JP2000287033A JP3654165B2 JP 3654165 B2 JP3654165 B2 JP 3654165B2 JP 2000287033 A JP2000287033 A JP 2000287033A JP 2000287033 A JP2000287033 A JP 2000287033A JP 3654165 B2 JP3654165 B2 JP 3654165B2
Authority
JP
Japan
Prior art keywords
identification code
library
function
execution program
code
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
JP2000287033A
Other languages
Japanese (ja)
Other versions
JP2002099439A (en
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2000287033A priority Critical patent/JP3654165B2/en
Publication of JP2002099439A publication Critical patent/JP2002099439A/en
Application granted granted Critical
Publication of JP3654165B2 publication Critical patent/JP3654165B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータシステムに適用するライブラリのリンク方法及びそのプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
ソフトウェア開発では、同じプログラムを繰り返し作成する手間を省くために、似た働きのプログラムをまとめてライブラリとして用意する。ライブラリを使うプログラムは、コンパイル時にライブラリとまとめてコンパイルを行うことで、関数宣言だけでライブラリ中のプログラムコードを使用することができる。
【0003】
ライブラリは、生成される実行プログラムの容量が増大するという点と、ライブラリの機能を使うプログラム毎にコンパイルをしなくてはならないという欠点があった。これらを解決するために用いられるのが、動的なリンクライブラリである。
【0004】
動的なリンクライブラリは、プログラムコードの実行中に動的に呼び出される。プログラムの要求に応じてシステムはライブラリをメモリ上にロードする。プログラムはそのライブラリ中の関数を呼び出して、必要がなくなったら開放する。この方式により、どのプログラムコードでもコンパイルすることなくライブラリを使用することができ、しかも必要に応じてロードするので、実行プログラムのサイズを圧迫することはない。
【0005】
【発明が解決しようとする課題】
しかし、ある特定の実行ファイルのみライブラリの使用を許したいという場合には、この動的リンクライブラリの利点が、問題になる。どんなプログラムでも関数宣言さえできればライブラリ中のプログラムを使用することができるので、秘密性の高い関数や、ある特定のプログラムでないと正常に動作しないという関数の場合でも、他のプログラムから呼び出すことが可能になるからである。
【0006】
ライブラリが実行プログラムを選ぶシステムには、これまで、リンカによってプログラムを自動リンクさせる特開平06-083593号(1994-03-25)に開示された発明や、データ処理システムに設定されたセキュリティレベルに応じて、カーネルがサーバから動的リンクするライブラリを選択する特開平08-241207号(1996-09-17)に開示された発明などがあった。しかし前者は未解決の参照を探して解決するためのシステムであり、本発明の、特定プログラム以外とリンクをさせないという目的には用いることができない。後者はオペレーティングシステムを変更する必要があり、すでにあるシステムには対応できないという問題がある。
【0007】
また、CADプログラムに対応する暗号化されたCADライブラリの内容をアクセスした場合に、正式なライセンスに基づくアクセス要求に対してのみ復号化したCADライブラリの情報を送出するCADライブラリアクセス管理装置が特開2000-76313号(2000-03-14)に開示されている。そのCADライブラリアクセス管理装置の構成を図7に示す。 CADライブラリアクセス管理装置100は、ファイルシステム200内に組み込まれているが、ファイルシステム200において、リンクの許可を行う処理の大部分を行う。即ち、オペレーティングシステムなどに手を加える、もしくはそのようなオペレーティングシステムを用意する必要がある。また、図7からわかるように、ライブラリにおけるリンクの許可の有無を記載したライセンス情報60やアクセス権管理対象パス定義情報50などを別途用意する必要がある。
【0008】
本発明の目的は、以上の問題を解決する、リンクライブラリが任意の実行プログラムによってのみ関数を呼び出すことができるようにする、コンピュータシステムに適用するライブラリのリンク方法及びそのプログラムを記録した記録媒体を提供することにある。
【0009】
【課題を解決するための手段】
本発明のコンピュータシステムに適用するライブラリのリンク方法は、
実行対象のプログラムと予め用意されたライブラリとのリンク処理をするためのリンク機能を有するコンピュータシステムに適用するライブラリのリンク方法であって、
実行プログラム側の処理であるライブラリの動的ロードによってライブラリ中の初期化ルーチンを呼ぶステップと、初期化ルーチンにより、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、識別コードが正しいコードであった場合は、初期化処理を正常に完了するステップと、識別コードが見つからなかった場合、または、不正な識別コードであった場合は、初期化処理を失敗とし、ライブラリをロードしないステップと、実行プログラム側の処理である関数の呼び出しによってライブラリ中の関数を呼ぶステップと、関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、識別コードが正しいコードであった場合は、識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップと、からなる。
【0010】
プログラムで使うライブラリには動的リンクライブラリというものがある。動的リンクライブラリは、プログラムの実行中に必要に応じてメモリ上にロードされ、ライブラリ中の関数を呼び出すことができる仕組である。動的リンクライブラリは一般に、実行プログラムの容量を節約するためや、よく使う関数を複数の実行プログラムで共有できるといった目的で使用される。
【0011】
本発明は、この動的リンクライブラリが、任意の実行プログラムからしかリンクできない機構を提供する。これにより、第三者に使用されたくない秘密性の高い関数を、任意の実行プログラムのみから動的にリンクできるライブラリとして利用することができる。
【0012】
ライブラリにリンクを許可する実行プログラム中に、認識コードを置いておき、その認識コードから生成した鍵で、ライブラリ中の秘密性の高い関数を暗号化しておく。
【0013】
実際に実行プログラムから、ライブラリをロードさせた場合は、ライブラリ中の初期化ルーチン制御が渡るので、そのときに、実行プログラム側を走査して識別コードを探す。実行プログラムにある認識コードを見つけた場合にのみ、暗号化されているライブラリ中の関数を展開して、関数の呼び出しが行えるようにする。
【0014】
これにより、識別コードのない第三者のプログラムでは、ライブラリの関数を使用することができなくなる。
【0015】
また、実行プログラム側の処理であるライブラリの動的ロードによってライブラリ中の初期化ルーチンを呼ぶステップと、初期化ルーチンにより、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、識別コードが正しいコードであった場合は、識別コードから暗号解除の鍵を得て、暗号化された関数を解除して初期化処理を正常に完了するステップと、識別コードが見つからなかった場合、または、不正な識別コードであった場合は、初期化処理を失敗とし、ライブラリをロードしないステップと、実行プログラム側の処理である関数の呼び出しによってライブラリ中の関数を呼ぶステップと、関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、識別コードが正しいコードであった場合は、識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップと、からなってもよい。
【0016】
即ち、初期化ルーチンの時に識別コードから鍵を生成して、関数の暗号化を解除してもかまわない。関数が呼ばれたときにも暗号化を解除するので、二重の暗号化をかけることができる。
【0017】
また、実行プログラム側の処理である関数の呼び出しによってライブラリ中の関数を呼ぶステップと、関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、識別コードが正しいコードであった場合は、識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップと、からなってもよい。
【0018】
即ち、動的リンクライブラリでなくとも静的リンクライブラリでもかまわない。
静的リンクライブラリを第三者に提供しなくてはならない場合に、そのライブラリに保護すべき内容があり、特定の実行ファイル以外にリンクさせたくない場合は、本発明の方法を使うことができる。静的リンクライブラリの場合は、初期化ルーチンが存在しないので、関数が呼ばれたときの方法だけを使うことになる。
【0019】
また、識別コードは、実行プログラムのデータ格納領域またはコード格納領域またはリソース格納領域に格納されていてもよい。
【0020】
即ち、実行ファイルに用意する認識コードはデータ格納領域でなくともかまわない。識別コードを複数用意して、格納する場所を分散させることで、解読されにくいシステムにすることができる。
【0021】
本発明のコンピュータシステムが実行するように設定されたプログラムを記録した記録媒体は、
実行対象のプログラムと予め用意されたライブラリとのリンク処理をするためのリンク機能を有するコンピュータシステムにより読み取り可能な記録媒体であって、
実行プログラム側の処理であるライブラリの動的ロードによってライブラリ中の初期化ルーチンを呼ぶステップと、初期化ルーチンにより、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、識別コードが正しいコードであった場合は、初期化処理を正常に完了するステップと、識別コードが見つからなかった場合、または、不正な識別コードであった場合は、初期化処理を失敗とし、ライブラリをロードしないステップと、実行プログラム側の処理である関数の呼び出しによってライブラリ中の関数を呼ぶステップと、関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、識別コードが正しいコードであった場合は、識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップとを、コンピュータシステムが実行するように設定されている。
【0022】
また、実行プログラム側の処理であるライブラリの動的ロードによってライブラリ中の初期化ルーチンを呼ぶステップと、初期化ルーチンにより、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、識別コードが正しいコードであった場合は、識別コードから暗号解除の鍵を得て、暗号化された関数を解除して初期化処理を正常に完了するステップと、識別コードが見つからなかった場合、または、不正な識別コードであった場合は、初期化処理を失敗とし、ライブラリをロードしないステップと、実行プログラム側の処理である関数の呼び出しによって前記ライブラリ中の関数を呼ぶステップと、関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、識別コードが正しいコードであった場合は、識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップとを、コンピュータシステムが実行するように設定されていてもよい。
【0023】
また、実行プログラム側の処理である関数の呼び出しによってライブラリ中の関数を呼ぶステップと、関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、識別コードが正しいコードであった場合は、識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップとを、コンピュータシステムが実行するように設定されていてもよい。
【0024】
【発明の実施の形態】
図1は、一般的な動的リンクライブラリの制御の流れを示した図である。プログラム10とライブラリ20から構成されている。実行プログラム10は、ライブラリ20中の関数をコールするプログラムである。プログラム10は、システムにライブラリを動的にロードさせる、ライブラリの動的ロード11の処理と、ライブラリ中の関数22を使用するための関数の呼び出し12の処理を含んでいる。
【0025】
ライブラリ20は、動的リンクライブラリである。実行プログラムからコールされる関数22、23がある。
【0026】
ライブラリの動的ロード11によって、制御はライブラリに渡り、初期化ルーチン21の処理が行われる。これが終了すると、ふたたび制御はプログラム10に戻る。関数呼び出し12によって関数22の呼び出しがおこなわれると、制御はライブラリ側になり、関数22の処理を行う。これが終了するとプログラム側に制御が戻る。
【0027】
図2は、本発明を実施した実行プログラムとライブラリの例である。これらはプログラム30とライブラリ40から構成されている。
【0028】
プログラム30は、データ格納領域31とコード格納領域34を含み、データ格納領域はグローバル変数32と、識別コード33を含む。コード格納領域は、ライブラリ呼び出し処理35と、そのほかの処理36を含んでいる。
【0029】
ライブラリ40は、データ格納領域41とコード格納領域43を含み、データ格納領域はグローバル変数42を含む。コード格納領域はライブラリ初期化処理44と暗号化された関数45を含む。この暗号化を解除する鍵は、識別コード33から生成できるようにしておく。
【0030】
本発明において、図2で構成されたシステムは、次のように動作する。
【0031】
図1のライブラリの動的ロード11によってライブラリ20中の初期化ルーチン21が呼ばれる。図3のように、初期化ルーチン21は、実行プログラム側のバイナリイメージ30を順に走査して、識別コード33を探す。これが正しいコードであった場合は、初期化処理を正常に完了する。識別コードが見つからなかったもしくは、不正な識別コードであった場合は、初期化処理は失敗し、ライブラリはロードされない。
【0032】
関数22は図1の関数の呼び出し12によって呼ばれると、プログラムのバイナリイメージ30を検査して、識別コード33を探す。この識別コードから暗号解除の鍵を得て、暗号化された関数45を解除して関数22に戻して関数を実行する。
【0033】
関数23も同様の処理が行われる。
【0034】
識別コードが見つからない場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止する。
【0035】
本発明でも図1の制御の流れは変わらない。ライブラリ側で行われる処理に追加して行う処理がある。本発明の全体の動作について、図4、図5のフローチャートを参照して、詳細に説明する。
【0036】
図4は、ライブラリの初期化処理が行う動作を示すフローチャートである。
・許可された実行プログラムの場合
図1のライブラリの動的ロード11によって呼ばれたライブラリ初期化ルーチン21では、まず自分を呼んだプログラムのバイナリコードを先頭から検査していく(ステップA1)。
【0037】
この検査によってプログラム中に置かれた識別コードを見つけたのならA3、そうでないのならA4へ分岐する(ステップA2)。
【0038】
得た識別コードが正しいのかどうかを検査する(ステップA3)。
【0039】
ライブラリを呼び出したプログラムは、許可されたプログラムではなかったので、初期化を失敗させる(ステップA4)。
【0040】
ライブラリを呼び出したプログラムは、許可されたプログラムだったので、初期化を成功させる(ステップA5)。
・識別コードを持たない実行プログラムの場合
自分を呼んだプログラムのバイナリコードを先頭から検査していく(ステップA1)。
【0041】
この検査によってプログラム中に識別コードが見つからないのでA4へ分岐する(ステップA2)。
【0042】
ライブラリを呼び出したプログラムは、許可されたプログラムではなかったので、初期化を失敗させる(ステップA4)。
【0043】
次に、図5は、プログラム実行中にライブラリの持つ関数をコールされたときの前処理の動作を示すフローチャートである。
・許可された実行プログラムの場合
図1の関数の呼び出し12によって呼ばれたライブラリ中の関数は、まず自分を呼び出したプログラムのバイナリコードを先頭から検査していく(ステップB1)。
【0044】
この検査によってプログラム中に置かれた識別コードを見つけたのでB3へ分岐する(ステップB2)。
【0045】
識別コードは正しいことを検査したらB4へ分岐する(ステップB3)。
【0046】
識別コードから暗号解除の鍵を生成する(ステップB4)。
【0047】
その鍵で関数の一部にかけられた暗号化を解除する(ステップB5)。
【0048】
関数を呼び出したプログラムは、許可された実行プログラムだったので、関数の実行を行う(ステップB7)。
・識別コードを持たない実行プログラムの場合
まず自分を呼び出したプログラムのバイナリコードを先頭から検査していく(ステップB1)。
【0049】
この検査によって識別コードが見つからないのでB6へ分岐する(ステップB2)。
【0050】
関数を呼び出したプログラムは、許可された実行プログラムではなかったので、関数の実行ができない(ステップB6)。
【0051】
このように、ライブラリを呼び出すプログラム中に識別コードを置き、ライブラリ中の関数を、そのコードから生成した鍵で暗号化しておくことにより、識別コードのない実行プログラムが、ライブラリを呼び出して使用することを妨げることが可能になる。
【0052】
識別コードから鍵を生成する手順は、識別コードから論理演算などを複数回行って得た値を使用するのが望ましい。
【0053】
(発明の他の実施の形態)
・動的リンクライブラリでなくとも静的リンクライブラリでもかまわない。
【0054】
静的リンクライブラリを第三者に提供しなくてはならない場合に、そのライブラリに保護すべき内容があり、特定の実行ファイル以外にリンクさせたくない場合は、本発明の方法を使うことができる。静的リンクライブラリの場合は、初期化ルーチンが存在しないので、関数が呼ばれたときの方法だけを使うことになる。この場合、ライブラリ提供先に識別コードを知らせるのは意味をなさないので、実行ファイル名などの既知の情報を識別コードにする必要がある。
・実行ファイルに用意する認識コードはデータ格納領域でなくともかまわない。
【0055】
図6の識別コードを分散して格納した例のように、プログラム・コードのパターンや、実行ファイルに格納された画像ファイルなどに認識コードを埋めてもかまわない。
【0056】
識別コードを複数用意して、格納する場所を分散させることで、解読されにくいシステムにすることができる。この場合、識別コードの種類は鍵の種類になる。関数1つにつき1種類の鍵を割り当てると、ひとつの識別コードが知られても他の暗号化した関数に影響を及ぼさないライブラリができる。また、すべての関数で複数の鍵による暗号化を行うようにすれば、単体のセキュリティ強度の高いライブラリになる。
・初期化ルーチンの時に識別コードから鍵を生成して、関数の暗号化を解除してもかまわない。
【0057】
関数が呼ばれたときにも暗号化を解除するので、二重の暗号化をかけることができる。この場合は鍵は共通で、暗号化アルゴリズムが異なるものを用意する必要がある。
【0058】
【発明の効果】
以上説明したように、本発明の効果は、任意の実行プログラム以外からは、その関数をコールすることのできない動的リンクライブラリの作成を可能にすることにある。
【0059】
その理由は、動的リンクライブラリが初期化ルーチンを通過したとき、更に、実行プログラムから関数をコールされたときに、実行プログラム側に埋め込まれている識別コードを走査して、動的リンクを許可したプログラムかどうかを検査することにある。
【0060】
そして識別コードがライブラリの暗号化を解除する鍵になっていることにある。
【0061】
また、動的リンクライブラリでなくとも静的リンクライブラリでもかまわない。
【0062】
静的リンクライブラリを第三者に提供しなくてはならない場合に、そのライブラリに保護すべき内容があり、特定の実行ファイル以外にリンクさせたくない場合は、本発明の方法を使うことができる。
【0063】
また、実行ファイルに用意する認識コードはデータ格納領域でなくともかまわない。識別コードを複数用意して、格納する場所を分散させることで、解読されにくいシステムにすることができる。
【0064】
また、初期化ルーチンの時に識別コードから鍵を生成して、関数の暗号化を解除してもかまわない。関数が呼ばれたときにも暗号化を解除するので、二重の暗号化をかけることができる。
【図面の簡単な説明】
【図1】動的ライブラリ使用時の一般的な制御の図である。
【図2】本発明を適用したライブラリと実行ファイルのバイナリイメージの図である。
【図3】本発明を適用したライブラリ初期化ルーチンのバイナリ検査の図である。
【図4】初期化ルーチンのバイナリ検査の処理のフローチャートである。
【図5】関数が実行される前処理のフローチャートである。
【図6】識別コードを分散して格納する場合の構成図である。
【図7】従来の技術のCADライブラリアクセス管理装置の構成を示す図である。
【符号の説明】
10 プログラム
11 システムにライブラリをロードさせる処理
12 ライブラリの関数を呼び出す処理
20 ライブラリ
21 初期化ルーチン
22〜23 呼び出される関数
30 プログラム
31,41 データ格納領域
32,42 グローバル変数
33 識別コード
34,43 コード格納領域
35 システムにライブラリをロードさせる処理
36 そのほかの処理
37 識別コードを格納したそのほかの処理
38 リソース格納領域
39 識別コードを格納した画像データ
40 ライブラリ
44 ライブラリ初期化処理
45,46 暗号化されている関数
50 アクセス権管理対象パス定義情報
60 ライセンス情報
100 CADライブラリアクセス管理装置
102 アクセス先パス確認処理部
104 アクセス権確認処理部
106 ライブラリ復号化処理部
110 ファイルアクセス処理部
120 ファイルアクセス要求元
130 暗号化されたライブラリ
140 アクセス管理されていないファイル
200 ファイルシステム
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a library linking method applied to a computer system and a recording medium recording the program.
[0002]
[Prior art]
In software development, in order to save the trouble of repeatedly creating the same program, programs having similar functions are collectively prepared as a library. A program that uses a library is compiled together with the library at the time of compilation, so that the program code in the library can be used only by function declaration.
[0003]
The library has a drawback that the capacity of an executable program to be generated is increased and that each program that uses the function of the library must be compiled. A dynamic link library is used to solve these problems.
[0004]
A dynamic link library is dynamically called during execution of program code. In response to a program request, the system loads the library into the memory. The program calls functions in the library and releases them when they are no longer needed. By this method, the library can be used without compiling any program code, and the program is loaded as necessary, so that the size of the execution program is not reduced.
[0005]
[Problems to be solved by the invention]
However, if you want to allow the library to be used only by a specific executable file, the advantage of this dynamic link library becomes a problem. Any program can use the program in the library as long as it can declare the function, so even if it is a highly confidential function or a function that does not work properly unless it is a specific program, it can be called from another program Because it becomes.
[0006]
For the system in which the library selects the execution program, the invention disclosed in Japanese Patent Laid-Open No. 06-083593 (1994-03-25), in which the program is automatically linked by the linker, or the security level set in the data processing system has been adopted. In response, there is an invention disclosed in Japanese Patent Laid-Open No. 08-241207 (1996-09-17) in which the kernel selects a library to be dynamically linked from the server. However, the former is a system for finding and resolving an unresolved reference, and cannot be used for the purpose of not linking with other than the specific program of the present invention. The latter has the problem that it is necessary to change the operating system, and cannot be applied to an existing system.
[0007]
Also, a CAD library access management device that sends out information on a decrypted CAD library only in response to an access request based on a formal license when accessing the contents of an encrypted CAD library corresponding to a CAD program is disclosed It is disclosed in 2000-76313 (2000-03-14). The configuration of the CAD library access management apparatus is shown in FIG. Although the CAD library access management apparatus 100 is incorporated in the file system 200, the file system 200 performs most of the processing for permitting the link. In other words, it is necessary to modify the operating system or to prepare such an operating system. Further, as can be seen from FIG. 7, it is necessary to separately prepare license information 60 describing whether or not the link is permitted in the library, access right management target path definition information 50 and the like.
[0008]
SUMMARY OF THE INVENTION An object of the present invention is to provide a library linking method applied to a computer system and a recording medium recording the program, which solves the above-described problems and allows a linked library to call a function only by an arbitrary execution program. It is to provide.
[0009]
[Means for Solving the Problems]
The library linking method applied to the computer system of the present invention is as follows:
A library linking method applied to a computer system having a link function for linking a program to be executed and a library prepared in advance,
A step of calling an initialization routine in the library by dynamic loading of the library, which is a process on the execution program side, a step of sequentially scanning the binary image on the execution program side by the initialization routine to search for an identification code, and an identification code If is a correct code, the steps to complete the initialization process normally, and if the identification code is not found, or if it is an invalid identification code, the initialization process fails and the library is loaded A step of calling a function in the library by calling a function which is a process on the execution program side, a step of sequentially scanning the binary image on the execution program side by the function to search for the identification code, and the identification code is correct If it is a code, obtain the decryption key from the identification code and The function to release the function and execute the function, and if the identification code is not found, or if the identification code is invalid, it is determined that the library is called from an illegal executable program. , And a step of stopping the processing.
[0010]
A library used in a program is a dynamic link library. The dynamic link library is a mechanism that is loaded into a memory as needed during execution of a program and can call a function in the library. The dynamic link library is generally used for the purpose of saving the capacity of an execution program and for sharing a frequently used function among a plurality of execution programs.
[0011]
The present invention provides a mechanism in which this dynamic link library can be linked only from an arbitrary execution program. This makes it possible to use a highly confidential function that is not desired to be used by a third party as a library that can be dynamically linked only from an arbitrary execution program.
[0012]
A recognition code is placed in an execution program that permits linking to the library, and a highly confidential function in the library is encrypted with a key generated from the recognition code.
[0013]
When the library is actually loaded from the execution program, the initialization routine control in the library is passed. At that time, the execution program side is scanned to search for the identification code. Only when the recognition code in the execution program is found, the function in the encrypted library is expanded so that the function can be called.
[0014]
This makes it impossible for a third party program without an identification code to use library functions.
[0015]
In addition, a step of calling an initialization routine in the library by dynamic loading of the library, which is processing on the execution program side, a step of sequentially scanning the binary image on the execution program side by the initialization routine, and searching for an identification code; If the identification code is the correct code, obtain the decryption key from the identification code, release the encrypted function and complete the initialization process successfully, and if the identification code is not found, Or, if it is an invalid identification code, the initialization process fails, the library is not loaded, the function in the execution program is called, the function is called in the library, and the function is executed. Scanning the binary image on the program side in order to find the identification code, and the identification code If the code is correct, obtain the decryption key from the identification code, release the encrypted function and execute the function, and if the identification code is not found or if the code is invalid If there is, the step of determining that the library is called from an illegal execution program and stopping the processing may be included.
[0016]
In other words, the function may be decrypted by generating a key from the identification code during the initialization routine. Since the encryption is canceled when the function is called, double encryption can be applied.
[0017]
In addition, a step of calling a function in the library by calling a function that is a process on the execution program side, a step of sequentially scanning the binary image on the execution program side by the function to search for an identification code, and a code with a correct identification code If there is, the step of obtaining the decryption key from the identification code, releasing the encrypted function and executing the function, and if the identification code is not found or if it is an invalid identification code May comprise a step of determining that the library is called from an illegal execution program and stopping the processing.
[0018]
That is, a static link library may be used instead of a dynamic link library.
If you need to provide a statically linked library to a third party, you can use the method of the present invention if there is content to be protected and you do not want to link to anything other than a specific executable. . In the case of a static link library, there is no initialization routine, so only the method used when the function is called is used.
[0019]
The identification code may be stored in the data storage area, code storage area, or resource storage area of the execution program.
[0020]
That is, the recognition code prepared in the execution file may not be a data storage area. A system that is difficult to decipher can be obtained by preparing a plurality of identification codes and distributing the storage locations.
[0021]
A recording medium on which a program set to be executed by the computer system of the present invention is recorded.
A recording medium readable by a computer system having a link function for linking a program to be executed and a library prepared in advance,
A step of calling an initialization routine in the library by dynamic loading of the library, which is a process on the execution program side, a step of sequentially scanning the binary image on the execution program side by the initialization routine to search for an identification code, and an identification code If is a correct code, the steps to complete the initialization process normally, and if the identification code is not found, or if it is an invalid identification code, the initialization process fails and the library is loaded A step of calling a function in the library by calling a function which is a process on the execution program side, a step of sequentially scanning the binary image on the execution program side by the function to search for the identification code, and the identification code is correct If it is a code, obtain the decryption key from the identification code and The function to release the function and execute the function, and if the identification code is not found, or if the identification code is invalid, it is determined that the library is called from an illegal executable program. The computer system is set to execute the step of stopping the process.
[0022]
In addition, a step of calling an initialization routine in the library by dynamic loading of the library, which is processing on the execution program side, a step of sequentially scanning the binary image on the execution program side by the initialization routine, and searching for an identification code; If the identification code is the correct code, obtain the decryption key from the identification code, release the encrypted function and complete the initialization process successfully, and if the identification code is not found, Or, if it is an invalid identification code, the initialization processing fails, the step of not loading the library, the step of calling the function in the library by calling the function that is processing on the execution program side, and the function, The binary image on the execution program side is scanned in order to find the identification code, and the identification code If the code is correct, obtain the decryption key from the identification code, release the encrypted function and execute the function, and if the identification code is not found or incorrect If it is a code, the computer system may be set to execute a step of determining that the library is called from an illegal execution program and stopping the processing.
[0023]
In addition, a step of calling a function in the library by calling a function that is a process on the execution program side, a step of sequentially scanning the binary image on the execution program side by the function to search for an identification code, and a code with a correct identification code If there is, the step of obtaining the decryption key from the identification code, releasing the encrypted function and executing the function, and if the identification code is not found or if it is an invalid identification code May be set so that the computer system executes a step of determining that the library is called from an illegal execution program and stopping the processing.
[0024]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a diagram showing a flow of control of a general dynamic link library. The program 10 and the library 20 are included. The execution program 10 is a program that calls a function in the library 20. The program 10 includes processing of a library dynamic load 11 for causing the system to dynamically load the library, and processing of a function call 12 for using the function 22 in the library.
[0025]
The library 20 is a dynamic link library. There are functions 22 and 23 called from the execution program.
[0026]
Control is passed to the library by the library dynamic load 11 and the initialization routine 21 is processed. When this is finished, control returns to program 10 again. When the function 22 is called by the function call 12, control is performed on the library side, and the function 22 is processed. When this is finished, control returns to the program side.
[0027]
FIG. 2 is an example of an execution program and library implementing the present invention. These are composed of a program 30 and a library 40.
[0028]
The program 30 includes a data storage area 31 and a code storage area 34, and the data storage area includes a global variable 32 and an identification code 33. The code storage area includes a library call process 35 and other processes 36.
[0029]
The library 40 includes a data storage area 41 and a code storage area 43, and the data storage area includes a global variable 42. The code storage area includes a library initialization process 44 and an encrypted function 45. The key for releasing the encryption is generated from the identification code 33.
[0030]
In the present invention, the system configured in FIG. 2 operates as follows.
[0031]
The initialization routine 21 in the library 20 is called by the dynamic load 11 of the library shown in FIG. As shown in FIG. 3, the initialization routine 21 sequentially scans the binary image 30 on the execution program side and searches for the identification code 33. If this is the correct code, the initialization process is completed normally. If the identification code is not found or is an invalid identification code, the initialization process fails and the library is not loaded.
[0032]
When called by function call 12 of FIG. 1, function 22 examines binary image 30 of the program and looks for identification code 33. The decryption key is obtained from this identification code, the encrypted function 45 is canceled and the function 22 is returned to execute the function.
[0033]
A similar process is performed for the function 23.
[0034]
If the identification code is not found, it is determined that the library is called from an illegal execution program, and the processing is stopped.
[0035]
Even in the present invention, the control flow of FIG. 1 does not change. There is processing to be performed in addition to processing performed on the library side. The overall operation of the present invention will be described in detail with reference to the flowcharts of FIGS.
[0036]
FIG. 4 is a flowchart showing the operation performed by the library initialization process.
In the case of a permitted execution program In the library initialization routine 21 called by the dynamic load 11 of the library in FIG. 1, first, the binary code of the program that called itself is checked from the top (step A1).
[0037]
If an identification code placed in the program is found by this inspection, the process branches to A3, and if not, the process branches to A4 (step A2).
[0038]
It is checked whether or not the obtained identification code is correct (step A3).
[0039]
Since the program that called the library is not a permitted program, initialization is failed (step A4).
[0040]
Since the program that called the library is a permitted program, the initialization is successful (step A5).
In the case of an execution program that does not have an identification code, the binary code of the program that called itself is checked from the beginning (step A1).
[0041]
Since the identification code is not found in the program by this inspection, the process branches to A4 (step A2).
[0042]
Since the program that called the library is not a permitted program, initialization is failed (step A4).
[0043]
Next, FIG. 5 is a flowchart showing the pre-processing operation when a function of the library is called during program execution.
In the case of a permitted execution program: The function in the library called by the function call 12 in FIG. 1 first checks the binary code of the program that called itself from the top (step B1).
[0044]
Since an identification code placed in the program is found by this inspection, the process branches to B3 (step B2).
[0045]
If it is verified that the identification code is correct, the process branches to B4 (step B3).
[0046]
A decryption key is generated from the identification code (step B4).
[0047]
The encryption applied to a part of the function with the key is released (step B5).
[0048]
Since the program that called the function is a permitted execution program, the function is executed (step B7).
In the case of an execution program having no identification code: First, the binary code of the program that called itself is checked from the top (step B1).
[0049]
Since the identification code is not found by this inspection, the process branches to B6 (step B2).
[0050]
Since the program that called the function is not a permitted execution program, the function cannot be executed (step B6).
[0051]
In this way, by placing an identification code in the program that calls the library and encrypting the functions in the library with the key generated from the code, an executable program without the identification code can call and use the library. Can be prevented.
[0052]
The procedure for generating the key from the identification code desirably uses a value obtained by performing a logical operation or the like from the identification code a plurality of times.
[0053]
(Another embodiment of the invention)
-Static link library may be used instead of dynamic link library.
[0054]
If you need to provide a statically linked library to a third party, you can use the method of the present invention if there is content to be protected and you do not want to link to anything other than a specific executable. . In the case of a static link library, there is no initialization routine, so only the method used when the function is called is used. In this case, since it does not make sense to inform the library provider of the identification code, it is necessary to use known information such as an executable file name as the identification code.
-The recognition code prepared in the executable file need not be the data storage area.
[0055]
As in the example in which the identification codes in FIG. 6 are distributed and stored, the recognition code may be embedded in a program code pattern or an image file stored in an execution file.
[0056]
A system that is difficult to decipher can be obtained by preparing a plurality of identification codes and distributing the storage locations. In this case, the type of identification code is the type of key. If one type of key is assigned to each function, a library that does not affect other encrypted functions can be created even if one identification code is known. If all functions are encrypted with a plurality of keys, a single library with high security strength can be obtained.
-The function may be decrypted by generating a key from the identification code during the initialization routine.
[0057]
Since the encryption is canceled when the function is called, double encryption can be applied. In this case, it is necessary to prepare keys having a common key and different encryption algorithms.
[0058]
【The invention's effect】
As described above, the effect of the present invention is to enable creation of a dynamic link library that cannot call the function from any program other than an arbitrary execution program.
[0059]
The reason is that when the dynamic link library passes the initialization routine and when a function is called from the execution program, the dynamic code is scanned by scanning the identification code embedded in the execution program. It is to check whether it is a program.
[0060]
The identification code is the key to decrypt the library.
[0061]
Also, a static link library may be used instead of a dynamic link library.
[0062]
If you need to provide a statically linked library to a third party, you can use the method of the present invention if there is something to protect and you don't want to link to anything other than a specific executable .
[0063]
The recognition code prepared in the execution file may not be a data storage area. A system that is difficult to decipher can be obtained by preparing a plurality of identification codes and distributing the storage locations.
[0064]
In addition, the function may be decrypted by generating a key from the identification code during the initialization routine. Since the encryption is canceled when the function is called, double encryption can be applied.
[Brief description of the drawings]
FIG. 1 is a diagram of general control when a dynamic library is used.
FIG. 2 is a diagram of a binary image of a library and an executable file to which the present invention is applied.
FIG. 3 is a diagram of binary checking of a library initialization routine to which the present invention is applied.
FIG. 4 is a flowchart of a binary check process of an initialization routine.
FIG. 5 is a flowchart of pre-processing in which a function is executed.
FIG. 6 is a configuration diagram in the case of storing identification codes in a distributed manner.
FIG. 7 is a diagram showing a configuration of a conventional CAD library access management apparatus.
[Explanation of symbols]
10 Program 11 Processing to Load Library to System 12 Processing to Call Library Function 20 Library 21 Initialization Routines 22 to 23 Called Function 30 Program 31, 41 Data Storage Area 32, 42 Global Variable 33 Identification Code 34, 43 Code Storage Area 35 Processing to load library into system 36 Other processing 37 Other processing storing identification code 38 Resource storage area 39 Image data storing identification code 40 Library 44 Library initialization processing 45, 46 Encrypted function 50 Access Right Management Target Path Definition Information 60 License Information 100 CAD Library Access Management Device 102 Access Destination Path Confirmation Processing Unit 104 Access Right Confirmation Processing Unit 106 Library Decryption Processing Unit 110 § yl access processing unit 120 file access request source 130 encrypted library 140 File 200 File systems that are not access management

Claims (8)

実行対象のプログラムと予め用意されたライブラリとのリンク処理をするためのリンク機能を有するコンピュータシステムに適用するライブラリのリンク方法であって、
実行プログラム側の処理であるライブラリの動的ロードによって該ライブラリ中の初期化ルーチンを呼ぶステップと、
該初期化ルーチンにより、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、
該識別コードが正しいコードであった場合は、初期化処理を正常に完了するステップと、
前記識別コードが見つからなかった場合、または、不正な識別コードであった場合は、初期化処理を失敗とし、前記ライブラリをロードしないステップと、
実行プログラム側の処理である関数の呼び出しによって前記ライブラリ中の関数を呼ぶステップと、
該関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、
該識別コードが正しいコードであった場合は、該識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、
前記識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップと、からなるライブラリのリンク方法。
A library linking method applied to a computer system having a link function for linking a program to be executed and a library prepared in advance,
Calling an initialization routine in the library by dynamic loading of the library, which is a process on the execution program side;
The initialization routine sequentially scans the binary image on the execution program side to search for an identification code;
If the identification code is correct, a step of successfully completing the initialization process;
If the identification code is not found, or if it is an invalid identification code, the initialization process fails, and the library is not loaded.
Calling a function in the library by calling a function that is processing on the execution program side;
The function sequentially scans the binary image on the execution program side to search for an identification code;
If the identification code is a correct code, obtaining a decryption key from the identification code, releasing the encrypted function and executing the function;
If the identification code is not found or if the identification code is invalid, it is determined that the library is called from an illegal execution program, and the process is stopped. .
実行対象のプログラムと予め用意されたライブラリとのリンク処理をするためのリンク機能を有するコンピュータシステムに適用するライブラリのリンク方法であって、
実行プログラム側の処理であるライブラリの動的ロードによって該ライブラリ中の初期化ルーチンを呼ぶステップと、
該初期化ルーチンにより、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、
該識別コードが正しいコードであった場合は、該識別コードから暗号解除の鍵を得て、暗号化された関数を解除して初期化処理を正常に完了するステップと、前記識別コードが見つからなかった場合、または、不正な識別コードであった場合は、初期化処理を失敗とし、前記ライブラリをロードしないステップと、
実行プログラム側の処理である関数の呼び出しによって前記ライブラリ中の関数を呼ぶステップと、
該関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、
該識別コードが正しいコードであった場合は、該識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、
前記識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップと、からなるライブラリのリンク方法。
A library linking method applied to a computer system having a link function for linking a program to be executed and a library prepared in advance,
Calling an initialization routine in the library by dynamic loading of the library, which is a process on the execution program side;
The initialization routine sequentially scans the binary image on the execution program side to search for an identification code;
If the identification code is correct, a step of obtaining a descrambling key from the identification code, canceling the encrypted function, and completing the initialization process normally; and the identification code is not found Or if it is an invalid identification code, the initialization process fails and the library is not loaded.
Calling a function in the library by calling a function that is processing on the execution program side;
The function sequentially scans the binary image on the execution program side to search for an identification code;
If the identification code is a correct code, obtaining a decryption key from the identification code, releasing the encrypted function and executing the function;
If the identification code is not found or if the identification code is invalid, it is determined that the library is called from an illegal execution program, and the process is stopped. .
実行対象のプログラムと予め用意されたライブラリとのリンク処理をするためのリンク機能を有するコンピュータシステムに適用するライブラリのリンク方法であって、
実行プログラム側の処理である関数の呼び出しによって前記ライブラリ中の関数を呼ぶステップと、
該関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、
該識別コードが正しいコードであった場合は、該識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、
前記識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップと、からなるライブラリのリンク方法。
A library linking method applied to a computer system having a link function for linking a program to be executed and a library prepared in advance,
Calling a function in the library by calling a function that is processing on the execution program side;
The function sequentially scans the binary image on the execution program side to search for an identification code;
If the identification code is a correct code, obtaining a decryption key from the identification code, releasing the encrypted function and executing the function;
If the identification code is not found or if the identification code is invalid, it is determined that the library is called from an illegal execution program, and the process is stopped. .
前記識別コードは、前記実行プログラムのデータ格納領域またはコード格納領域またはリソース格納領域に格納されている請求項1または2に記載のライブラリのリンク方法。3. The library linking method according to claim 1, wherein the identification code is stored in a data storage area, a code storage area, or a resource storage area of the execution program. 実行対象のプログラムと予め用意されたライブラリとのリンク処理をするためのリンク機能を有するコンピュータシステムにより読み取り可能な記録媒体であって、
実行プログラム側の処理であるライブラリの動的ロードによって該ライブラリ中の初期化ルーチンを呼ぶステップと、
該初期化ルーチンにより、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、
該識別コードが正しいコードであった場合は、初期化処理を正常に完了するステップと、
前記識別コードが見つからなかった場合、または、不正な識別コードであった場合は、初期化処理を失敗とし、前記ライブラリをロードしないステップと、
実行プログラム側の処理である関数の呼び出しによって前記ライブラリ中の関数を呼ぶステップと、
該関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、
該識別コードが正しいコードであった場合は、該識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、
前記識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップとを、前記コンピュータシステムが実行するように設定されたプログラムを記録した記録媒体。
A recording medium readable by a computer system having a link function for linking a program to be executed and a library prepared in advance,
Calling an initialization routine in the library by dynamic loading of the library, which is a process on the execution program side;
The initialization routine sequentially scans the binary image on the execution program side to search for an identification code;
If the identification code is correct, a step of successfully completing the initialization process;
If the identification code is not found, or if it is an invalid identification code, the initialization process fails, and the library is not loaded.
Calling a function in the library by calling a function that is processing on the execution program side;
The function sequentially scans the binary image on the execution program side to search for an identification code;
If the identification code is a correct code, obtaining a decryption key from the identification code, releasing the encrypted function and executing the function;
When the identification code is not found or when the identification code is invalid, the computer system executes a step of determining that the library is called from an unauthorized execution program and stopping the processing. The recording medium which recorded the program set up to do.
実行対象のプログラムと予め用意されたライブラリとのリンク処理をするためのリンク機能を有するコンピュータシステムにより読み取り可能な記録媒体であって、
実行プログラム側の処理であるライブラリの動的ロードによって該ライブラリ中の初期化ルーチンを呼ぶステップと、
該初期化ルーチンにより、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、
該識別コードが正しいコードであった場合は、該識別コードから暗号解除の鍵を得て、暗号化された関数を解除して初期化処理を正常に完了するステップと、
前記識別コードが見つからなかった場合、または、不正な識別コードであった場合は、初期化処理を失敗とし、前記ライブラリをロードしないステップと、
実行プログラム側の処理である関数の呼び出しによって前記ライブラリ中の関数を呼ぶステップと、
該関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、
該識別コードが正しいコードであった場合は、該識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、
前記識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップとを、前記コンピュータシステムが実行するように設定されたプログラムを記録した記録媒体。
A recording medium readable by a computer system having a link function for linking a program to be executed and a library prepared in advance,
Calling an initialization routine in the library by dynamic loading of the library, which is a process on the execution program side;
The initialization routine sequentially scans the binary image on the execution program side to search for an identification code;
If the identification code is a correct code, obtaining a decryption key from the identification code, releasing the encrypted function, and completing the initialization process normally;
If the identification code is not found, or if it is an invalid identification code, the initialization process fails, and the library is not loaded.
Calling a function in the library by calling a function that is processing on the execution program side;
The function sequentially scans the binary image on the execution program side to search for an identification code;
If the identification code is a correct code, obtaining a decryption key from the identification code, releasing the encrypted function and executing the function;
When the identification code is not found or when the identification code is invalid, the computer system executes a step of determining that the library is called from an unauthorized execution program and stopping the processing. The recording medium which recorded the program set up to do.
実行対象のプログラムと予め用意されたライブラリとのリンク処理をするためのリンク機能を有するコンピュータシステムにより読み取り可能な記録媒体であって、
実行プログラム側の処理である関数の呼び出しによって前記ライブラリ中の関数を呼ぶステップと、
該関数により、実行プログラム側のバイナリイメージを順に走査して、識別コードを探すステップと、
該識別コードが正しいコードであった場合は、該識別コードから暗号解除の鍵を得て、暗号化された関数を解除して関数を実行するステップと、
前記識別コードが見つからなかった場合、または、不正な識別コードであった場合は、ライブラリが不正な実行プログラムから呼ばれていると判断して、処理を中止するステップとを、前記コンピュータシステムが実行するように設定されたプログラムを記録した記録媒体。
A recording medium readable by a computer system having a link function for linking a program to be executed and a library prepared in advance,
Calling a function in the library by calling a function that is processing on the execution program side;
The function sequentially scans the binary image on the execution program side to search for an identification code;
If the identification code is a correct code, obtaining a decryption key from the identification code, releasing the encrypted function and executing the function;
When the identification code is not found or when the identification code is invalid, the computer system executes a step of determining that the library is called from an unauthorized execution program and stopping the processing. The recording medium which recorded the program set up to do.
前記識別コードは、前記実行プログラムのデータ格納領域またはコード格納領域またはリソース格納領域に格納されている請求項4から7のいずれか1項に記載の、前記コンピュータシステムが実行するように設定されたプログラムを記録した記録媒体。8. The computer system according to claim 4, wherein the identification code is stored in a data storage area, a code storage area, or a resource storage area of the execution program. A recording medium that records the program.
JP2000287033A 2000-09-21 2000-09-21 Library linking method applied to a computer system and recording medium recording the program Expired - Fee Related JP3654165B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000287033A JP3654165B2 (en) 2000-09-21 2000-09-21 Library linking method applied to a computer system and recording medium recording the program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000287033A JP3654165B2 (en) 2000-09-21 2000-09-21 Library linking method applied to a computer system and recording medium recording the program

Publications (2)

Publication Number Publication Date
JP2002099439A JP2002099439A (en) 2002-04-05
JP3654165B2 true JP3654165B2 (en) 2005-06-02

Family

ID=18770853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000287033A Expired - Fee Related JP3654165B2 (en) 2000-09-21 2000-09-21 Library linking method applied to a computer system and recording medium recording the program

Country Status (1)

Country Link
JP (1) JP3654165B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202021B2 (en) 2012-06-20 2015-12-01 Samsung Electronics Co., Ltd. License verification method and apparatus, and computer readable storage medium storing program therefor

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005135265A (en) * 2003-10-31 2005-05-26 Fujitsu Ltd Information processor
JP4669666B2 (en) * 2004-03-19 2011-04-13 東芝キヤリア株式会社 Microcomputer
JP4411173B2 (en) * 2004-09-30 2010-02-10 富士通株式会社 Computer system management method, computer management system, and computer management program
JP5131269B2 (en) 2007-03-20 2013-01-30 富士通株式会社 Multi-processing system
KR101991687B1 (en) 2012-11-23 2019-06-24 삼성전자 주식회사 Dynamic library profiling method, computer readable recording medium storing thereof and dynamic library profiling system
JP5863689B2 (en) * 2013-02-28 2016-02-17 京セラドキュメントソリューションズ株式会社 Shared library with unauthorized use prevention function

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202021B2 (en) 2012-06-20 2015-12-01 Samsung Electronics Co., Ltd. License verification method and apparatus, and computer readable storage medium storing program therefor

Also Published As

Publication number Publication date
JP2002099439A (en) 2002-04-05

Similar Documents

Publication Publication Date Title
KR100917370B1 (en) Information processing apparatus that executes program, computer readable medium in witch program is stored, and program control method for executing program
US9141787B2 (en) Interlocked binary protection using whitebox cryptography
JP4770425B2 (en) Program, method and apparatus for creating protected execution program
US7346781B2 (en) Initiating execution of a computer program from an encrypted version of a computer program
JP4115759B2 (en) Method and program for using shared library in tamper resistant processor
US20160275019A1 (en) Method and apparatus for protecting dynamic libraries
JP5114617B2 (en) Secure terminal, program, and method for protecting private key
JPH10313309A (en) System for authenticating legitimate execution of prescribed service class by application under framework of international cryptology
KR102275827B1 (en) Method and apparatus for data encryption
JP2008503014A5 (en)
US8843766B2 (en) Method and system for protecting against access to a machine code of a device
US10628562B2 (en) Method for protecting a computer program from being influenced, and computer system
US9256756B2 (en) Method of encryption and decryption for shared library in open operating system
JP2000293370A (en) Computer system, method for executing computer program and computer program recording medium
JP3654165B2 (en) Library linking method applied to a computer system and recording medium recording the program
JP2564593B2 (en) How to secure a program and secure control of a secured program
CN114692134A (en) System and method for protecting codes and data based on linux kernel process monitoring
CN108985096B (en) Security enhancement and security operation method and device for Android SQLite database
US20020023224A1 (en) Computer software installation
CN113486413A (en) Anti-screenshot processing method, computing device and readable storage medium
JP2005149164A (en) Method for calling external disclosure function stored in shared library
CN116070201A (en) Data management method, system, electronic equipment and medium
JP6698775B2 (en) Security providing apparatus and method for protecting code of shared object, and security executing apparatus and method
CN117932648B (en) Byte code protection method, terminal equipment and storage medium
JP5863689B2 (en) Shared library with unauthorized use prevention function

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20041122

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050221

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090311

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090311

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100311

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100311

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130311

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130311

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130311

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130311

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140311

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees