JP2002099439A - Link method of library applicable to computer system and record medium recorded its program - Google Patents

Link method of library applicable to computer system and record medium recorded its program

Info

Publication number
JP2002099439A
JP2002099439A JP2000287033A JP2000287033A JP2002099439A JP 2002099439 A JP2002099439 A JP 2002099439A JP 2000287033 A JP2000287033 A JP 2000287033A JP 2000287033 A JP2000287033 A JP 2000287033A JP 2002099439 A JP2002099439 A JP 2002099439A
Authority
JP
Japan
Prior art keywords
library
identification code
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.)
Granted
Application number
JP2000287033A
Other languages
Japanese (ja)
Other versions
JP3654165B2 (en
Inventor
Takashi Sato
隆士 佐藤
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

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a link method of a library applicable to a computer system and a record medium recorded its program capable of calling a function by a link library only with an arbitrary executive program. SOLUTION: In an executive program 30 to authorize a link to a library 40, a recognition code is placed, so that a key generated from the code encrypts a function that is in a high confidential among the library 40. When loading actually the library 40 from the program 30, since a control covers an initializing routine 44 in the library 40, at that time, an identification code 33 is searched with scanning a side of the program 30. Only when the code 33 in the program 30 is found, a calling of the function is made possible with expanding of functions 45 and 46 in the encrypted library.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、コンピュータシス
テムに適用するライブラリのリンク方法及びそのプログ
ラムを記録した記録媒体に関する。
BACKGROUND OF THE INVENTION 1. Field 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】[0002]

【従来の技術】ソフトウェア開発では、同じプログラム
を繰り返し作成する手間を省くために、似た働きのプロ
グラムをまとめてライブラリとして用意する。ライブラ
リを使うプログラムは、コンパイル時にライブラリとま
とめてコンパイルを行うことで、関数宣言だけでライブ
ラリ中のプログラムコードを使用することができる。
2. Description of the Related Art In software development, programs having similar functions are collectively prepared as a library in order to save the trouble of repeatedly creating the same program. A program that uses the library can be compiled with the library at the time of compilation, so that the program code in the library can be used only with the function declaration.

【0003】ライブラリは、生成される実行プログラム
の容量が増大するという点と、ライブラリの機能を使う
プログラム毎にコンパイルをしなくてはならないという
欠点があった。これらを解決するために用いられるの
が、動的なリンクライブラリである。
[0003] The library has the drawback that the capacity of an executable program to be generated is increased, and that it is necessary to compile each program that uses the functions of the library. A dynamic link library is used to solve these problems.

【0004】動的なリンクライブラリは、プログラムコ
ードの実行中に動的に呼び出される。プログラムの要求
に応じてシステムはライブラリをメモリ上にロードす
る。プログラムはそのライブラリ中の関数を呼び出し
て、必要がなくなったら開放する。この方式により、ど
のプログラムコードでもコンパイルすることなくライブ
ラリを使用することができ、しかも必要に応じてロード
するので、実行プログラムのサイズを圧迫することはな
い。
[0004] Dynamic link libraries are dynamically called during the execution of program code. The system loads the library into memory in response to a program request. The program calls functions in the library and releases them when they are no longer needed. According to this method, the library can be used without compiling any program code, and the program is loaded as needed, so that the size of the execution program is not reduced.

【0005】[0005]

【発明が解決しようとする課題】しかし、ある特定の実
行ファイルのみライブラリの使用を許したいという場合
には、この動的リンクライブラリの利点が、問題にな
る。どんなプログラムでも関数宣言さえできればライブ
ラリ中のプログラムを使用することができるので、秘密
性の高い関数や、ある特定のプログラムでないと正常に
動作しないという関数の場合でも、他のプログラムから
呼び出すことが可能になるからである。
However, if it is desired to permit the use of the library only for a specific executable file, the advantage of the 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 other programs Because it becomes.

【0006】ライブラリが実行プログラムを選ぶシステ
ムには、これまで、リンカによってプログラムを自動リ
ンクさせる特開平06-083593号(1994-03-25)に開示さ
れた発明や、データ処理システムに設定されたセキュリ
ティレベルに応じて、カーネルがサーバから動的リンク
するライブラリを選択する特開平08-241207号(1996-09
-17)に開示された発明などがあった。しかし前者は未
解決の参照を探して解決するためのシステムであり、本
発明の、特定プログラム以外とリンクをさせないという
目的には用いることができない。後者はオペレーティン
グシステムを変更する必要があり、すでにあるシステム
には対応できないという問題がある。
A system in which a library selects an execution program has been set up in the data processing system disclosed in Japanese Patent Application Laid-Open No. 06-083593 (1994-03-25) in which a program is automatically linked by a linker. Japanese Patent Application Laid-Open No. 08-241207 (1996-09) in which a kernel selects a library to be dynamically linked from a server according to a security level
-17). However, the former is a system for searching for and solving unresolved references, and cannot be used for the purpose of not linking with other than the specific program of the present invention. The latter has a problem that the operating system needs to be changed and cannot be used for the existing system.

【0007】また、CADプログラムに対応する暗号化
されたCADライブラリの内容をアクセスした場合に、
正式なライセンスに基づくアクセス要求に対してのみ復
号化したCADライブラリの情報を送出するCADライ
ブラリアクセス管理装置が特開2000-76313号(2000-03-
14)に開示されている。そのCADライブラリアクセス
管理装置の構成を図7に示す。 CADライブラリアク
セス管理装置100は、ファイルシステム200内に組
み込まれているが、ファイルシステム200において、
リンクの許可を行う処理の大部分を行う。即ち、オペレ
ーティングシステムなどに手を加える、もしくはそのよ
うなオペレーティングシステムを用意する必要がある。
また、図7からわかるように、ライブラリにおけるリン
クの許可の有無を記載したライセンス情報60やアクセ
ス権管理対象パス定義情報50などを別途用意する必要
がある。
When accessing the contents of an encrypted CAD library corresponding to a CAD program,
Japanese Patent Application Laid-Open No. 2000-76313 (2000-03-2000) discloses a CAD library access management device for transmitting information of a decrypted CAD library only in response to an access request based on a formal license.
14). FIG. 7 shows the configuration of the CAD library access management device. The CAD library access management device 100 is incorporated in the file system 200.
Performs most of the process of granting links. That is, it is necessary to modify the operating system or prepare such an operating system.
Also, as can be seen from FIG. 7, it is necessary to separately prepare license information 60 indicating access permission / non-permission of the library, access right management target path definition information 50, and the like.

【0008】本発明の目的は、以上の問題を解決する、
リンクライブラリが任意の実行プログラムによってのみ
関数を呼び出すことができるようにする、コンピュータ
システムに適用するライブラリのリンク方法及びそのプ
ログラムを記録した記録媒体を提供することにある。
An object of the present invention is to solve the above problems,
An object of the present invention is to provide a link method of a library applied to a computer system and a recording medium storing the program so that the link library can call a function only by an arbitrary execution program.

【0009】[0009]

【課題を解決するための手段】本発明のコンピュータシ
ステムに適用するライブラリのリンク方法は、実行対象
のプログラムと予め用意されたライブラリとのリンク処
理をするためのリンク機能を有するコンピュータシステ
ムに適用するライブラリのリンク方法であって、実行プ
ログラム側の処理であるライブラリの動的ロードによっ
てライブラリ中の初期化ルーチンを呼ぶステップと、初
期化ルーチンにより、実行プログラム側のバイナリイメ
ージを順に走査して、識別コードを探すステップと、識
別コードが正しいコードであった場合は、初期化処理を
正常に完了するステップと、識別コードが見つからなか
った場合、または、不正な識別コードであった場合は、
初期化処理を失敗とし、ライブラリをロードしないステ
ップと、実行プログラム側の処理である関数の呼び出し
によってライブラリ中の関数を呼ぶステップと、関数に
より、実行プログラム側のバイナリイメージを順に走査
して、識別コードを探すステップと、識別コードが正し
いコードであった場合は、識別コードから暗号解除の鍵
を得て、暗号化された関数を解除して関数を実行するス
テップと、識別コードが見つからなかった場合、また
は、不正な識別コードであった場合は、ライブラリが不
正な実行プログラムから呼ばれていると判断して、処理
を中止するステップと、からなる。
The library linking method applied to the computer system of the present invention is applied to a computer system having a link function for linking a program to be executed with a library prepared in advance. A method of linking a library, in which an initialization routine in the library is called by dynamically loading the library, which is processing on the execution program side, and the initialization routine sequentially scans a binary image on the execution program side to identify If you find the code and if the identification code is correct, complete the initialization process normally.If the identification code is not found or if the identification code is incorrect,
A step of not loading the library due to a failure in the initialization processing, a step of calling a function in the library by calling a function which is a processing of the execution program side, and scanning the binary image of the execution program side by the function to identify Finding the code and, if the identification code is correct, obtaining the decryption key from the identification code, decrypting the encrypted function and executing the function, and finding the identification code If the identification code is invalid, or if the identification code is invalid, it is determined that the library is called from an invalid execution program, and the process is stopped.

【0010】プログラムで使うライブラリには動的リン
クライブラリというものがある。動的リンクライブラリ
は、プログラムの実行中に必要に応じてメモリ上にロー
ドされ、ライブラリ中の関数を呼び出すことができる仕
組である。動的リンクライブラリは一般に、実行プログ
ラムの容量を節約するためや、よく使う関数を複数の実
行プログラムで共有できるといった目的で使用される。
A library used in a program includes a dynamic link library. The dynamic link library is a mechanism that can be loaded on a memory as needed during the 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 executable program and sharing a frequently used function among multiple executable programs.

【0011】本発明は、この動的リンクライブラリが、
任意の実行プログラムからしかリンクできない機構を提
供する。これにより、第三者に使用されたくない秘密性
の高い関数を、任意の実行プログラムのみから動的にリ
ンクできるライブラリとして利用することができる。
According to the present invention, the dynamic link library
Provides a mechanism that can be linked only from an arbitrary execution program. As a result, a highly confidential function that is not desired to be used by a third party can be used 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 a 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 control of the initialization routine in the library is transferred. At that time, the execution program is scanned for the identification code. Only when it finds a recognition code in the execution program, expands the function in the encrypted library so that the function can be called.

【0014】これにより、識別コードのない第三者のプ
ログラムでは、ライブラリの関数を使用することができ
なくなる。
As a result, a third party program without an identification code cannot use the functions of the library.

【0015】また、実行プログラム側の処理であるライ
ブラリの動的ロードによってライブラリ中の初期化ルー
チンを呼ぶステップと、初期化ルーチンにより、実行プ
ログラム側のバイナリイメージを順に走査して、識別コ
ードを探すステップと、識別コードが正しいコードであ
った場合は、識別コードから暗号解除の鍵を得て、暗号
化された関数を解除して初期化処理を正常に完了するス
テップと、識別コードが見つからなかった場合、また
は、不正な識別コードであった場合は、初期化処理を失
敗とし、ライブラリをロードしないステップと、実行プ
ログラム側の処理である関数の呼び出しによってライブ
ラリ中の関数を呼ぶステップと、関数により、実行プロ
グラム側のバイナリイメージを順に走査して、識別コー
ドを探すステップと、識別コードが正しいコードであっ
た場合は、識別コードから暗号解除の鍵を得て、暗号化
された関数を解除して関数を実行するステップと、識別
コードが見つからなかった場合、または、不正な識別コ
ードであった場合は、ライブラリが不正な実行プログラ
ムから呼ばれていると判断して、処理を中止するステッ
プと、からなってもよい。
In addition, a step of calling an initialization routine in the library by dynamically loading the library, which is processing on the execution program side, and scanning the binary image on the execution program side in order by the initialization routine to search for an identification code. If the step and the identification code are correct, obtain the decryption key from the identification code, release the encrypted function and complete the initialization process normally, and if the identification code is not found If the identification code is invalid or the identification code is invalid, the initialization process fails and the library is not loaded. By scanning the binary image of the execution program side in order to search for the identification code, If the identification code is correct, obtain the decryption key from the identification code, decrypt the encrypted function and execute the function.If the identification code is not found or If it is the identification code, the process may include a step of determining that the library is called from an unauthorized execution program and stopping the processing.

【0016】即ち、初期化ルーチンの時に識別コードか
ら鍵を生成して、関数の暗号化を解除してもかまわな
い。関数が呼ばれたときにも暗号化を解除するので、二
重の暗号化をかけることができる。
That is, a key may be generated from the identification code at the time of the initialization routine to decrypt the function. Since the encryption is also released when the function is called, double encryption can be applied.

【0017】また、実行プログラム側の処理である関数
の呼び出しによってライブラリ中の関数を呼ぶステップ
と、関数により、実行プログラム側のバイナリイメージ
を順に走査して、識別コードを探すステップと、識別コ
ードが正しいコードであった場合は、識別コードから暗
号解除の鍵を得て、暗号化された関数を解除して関数を
実行するステップと、識別コードが見つからなかった場
合、または、不正な識別コードであった場合は、ライブ
ラリが不正な実行プログラムから呼ばれていると判断し
て、処理を中止するステップと、からなってもよい。
Further, 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 a binary image of the execution program side by the function to search for an identification code, If the code is correct, obtain the decryption key from the identification code, decrypt the encrypted function and execute the function.If the identification code is not found or if the wrong identification code is used, If there is, a step of determining that the library is called from an unauthorized execution program and stopping the process may be performed.

【0018】即ち、動的リンクライブラリでなくとも静
的リンクライブラリでもかまわない。静的リンクライブ
ラリを第三者に提供しなくてはならない場合に、そのラ
イブラリに保護すべき内容があり、特定の実行ファイル
以外にリンクさせたくない場合は、本発明の方法を使う
ことができる。静的リンクライブラリの場合は、初期化
ルーチンが存在しないので、関数が呼ばれたときの方法
だけを使うことになる。
That is, a static link library may be used instead of a dynamic link library. If you have to provide a statically linked library to a third party, and you have content to protect in that library and do not want to link it beyond a specific executable, you can use the method of the present invention . In the case of a statically linked library, there is no initialization routine, so only the method used when the function was called is used.

【0019】また、識別コードは、実行プログラムのデ
ータ格納領域またはコード格納領域またはリソース格納
領域に格納されていてもよい。
Further, the identification code may be stored in a data storage area, a code storage area, or a resource storage area of the execution program.

【0020】即ち、実行ファイルに用意する認識コード
はデータ格納領域でなくともかまわない。識別コードを
複数用意して、格納する場所を分散させることで、解読
されにくいシステムにすることができる。
That is, the recognition code prepared in the execution file need not be a data storage area. By preparing a plurality of identification codes and distributing the storage locations, a system that is difficult to decipher can be obtained.

【0021】本発明のコンピュータシステムが実行する
ように設定されたプログラムを記録した記録媒体は、実
行対象のプログラムと予め用意されたライブラリとのリ
ンク処理をするためのリンク機能を有するコンピュータ
システムにより読み取り可能な記録媒体であって、実行
プログラム側の処理であるライブラリの動的ロードによ
ってライブラリ中の初期化ルーチンを呼ぶステップと、
初期化ルーチンにより、実行プログラム側のバイナリイ
メージを順に走査して、識別コードを探すステップと、
識別コードが正しいコードであった場合は、初期化処理
を正常に完了するステップと、識別コードが見つからな
かった場合、または、不正な識別コードであった場合
は、初期化処理を失敗とし、ライブラリをロードしない
ステップと、実行プログラム側の処理である関数の呼び
出しによってライブラリ中の関数を呼ぶステップと、関
数により、実行プログラム側のバイナリイメージを順に
走査して、識別コードを探すステップと、識別コードが
正しいコードであった場合は、識別コードから暗号解除
の鍵を得て、暗号化された関数を解除して関数を実行す
るステップと、識別コードが見つからなかった場合、ま
たは、不正な識別コードであった場合は、ライブラリが
不正な実行プログラムから呼ばれていると判断して、処
理を中止するステップとを、コンピュータシステムが実
行するように設定されている。
A recording medium storing a program set to be executed by the computer system of the present invention is read by a computer system having a link function for linking a program to be executed with a library prepared in advance. A recording medium capable of calling an initialization routine in the library by dynamically loading the library as a process on the execution program side;
An initialization routine for sequentially scanning the binary image on the execution program side to search for an identification code;
If the identification code is correct, the initialization process is completed normally.If the identification code is not found or the identification code is incorrect, the initialization Not loading, a step of calling a function in the library by calling a function which is a process of the execution program side, a step of sequentially scanning a binary image of the execution program side by the function to search for an identification code, If is the correct code, obtain the decryption key from the identification code, decrypt the encrypted function and execute the function, and if the identification code is not found or the incorrect identification code If so, it is determined that the library is being called from an invalid execution program, and the process is terminated. The door is set so that the computer system to perform.

【0022】また、実行プログラム側の処理であるライ
ブラリの動的ロードによってライブラリ中の初期化ルー
チンを呼ぶステップと、初期化ルーチンにより、実行プ
ログラム側のバイナリイメージを順に走査して、識別コ
ードを探すステップと、識別コードが正しいコードであ
った場合は、識別コードから暗号解除の鍵を得て、暗号
化された関数を解除して初期化処理を正常に完了するス
テップと、識別コードが見つからなかった場合、また
は、不正な識別コードであった場合は、初期化処理を失
敗とし、ライブラリをロードしないステップと、実行プ
ログラム側の処理である関数の呼び出しによって前記ラ
イブラリ中の関数を呼ぶステップと、関数により、実行
プログラム側のバイナリイメージを順に走査して、識別
コードを探すステップと、識別コードが正しいコードで
あった場合は、識別コードから暗号解除の鍵を得て、暗
号化された関数を解除して関数を実行するステップと、
識別コードが見つからなかった場合、または、不正な識
別コードであった場合は、ライブラリが不正な実行プロ
グラムから呼ばれていると判断して、処理を中止するス
テップとを、コンピュータシステムが実行するように設
定されていてもよい。
In addition, a step of calling an initialization routine in the library by dynamically loading the library, which is processing on the execution program side, and scanning the binary image on the execution program side in order by the initialization routine to search for an identification code. If the step and the identification code are correct, obtain the decryption key from the identification code, release the encrypted function and complete the initialization process normally, and if the identification code is not found Or if the identification code is invalid, the initialization process fails, the step of not loading the library, the step of calling a function in the library by calling a function that is processing on the execution program side, The function scans the binary image on the execution program side in order and searches for the identification code. If, when the identification code is a valid code, with the key decryption from the identification code, performing a function to release the encrypted function,
If the identification code is not found or if the identification code is invalid, the computer system executes a step of determining that the library is called from an invalid execution program and stopping the processing. May be set to.

【0023】また、実行プログラム側の処理である関数
の呼び出しによってライブラリ中の関数を呼ぶステップ
と、関数により、実行プログラム側のバイナリイメージ
を順に走査して、識別コードを探すステップと、識別コ
ードが正しいコードであった場合は、識別コードから暗
号解除の鍵を得て、暗号化された関数を解除して関数を
実行するステップと、識別コードが見つからなかった場
合、または、不正な識別コードであった場合は、ライブ
ラリが不正な実行プログラムから呼ばれていると判断し
て、処理を中止するステップとを、コンピュータシステ
ムが実行するように設定されていてもよい。
Further, 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 a binary image of the execution program side by the function to search for an identification code, If the code is correct, obtain the decryption key from the identification code, decrypt the encrypted function and execute the function.If the identification code is not found or if the wrong identification code is used, If there is, the computer system may be set to execute the step of determining that the library is called from an unauthorized execution program and stopping the processing.

【0024】[0024]

【発明の実施の形態】図1は、一般的な動的リンクライ
ブラリの制御の流れを示した図である。プログラム10
とライブラリ20から構成されている。実行プログラム
10は、ライブラリ20中の関数をコールするプログラ
ムである。プログラム10は、システムにライブラリを
動的にロードさせる、ライブラリの動的ロード11の処
理と、ライブラリ中の関数22を使用するための関数の
呼び出し12の処理を含んでいる。
FIG. 1 is a diagram showing a control flow of a general dynamic link library. Program 10
And a library 20. The execution program 10 is a program that calls a function in the library 20. The program 10 includes a process of dynamically loading a library 11 that causes the system to dynamically load a library, and a process of calling a function 12 to use a function 22 in the library.

【0025】ライブラリ20は、動的リンクライブラリ
である。実行プログラムからコールされる関数22、2
3がある。
The library 20 is a dynamic link library. Function 22, 2 called from the execution program
There are three.

【0026】ライブラリの動的ロード11によって、制
御はライブラリに渡り、初期化ルーチン21の処理が行
われる。これが終了すると、ふたたび制御はプログラム
10に戻る。関数呼び出し12によって関数22の呼び
出しがおこなわれると、制御はライブラリ側になり、関
数22の処理を行う。これが終了するとプログラム側に
制御が戻る。
By the dynamic loading 11 of the library, the control is transferred to the library, and the processing of the initialization routine 21 is performed. When this is complete, control returns to program 10 again. When the function 22 is called by the function call 12, the control is performed on the library side and the processing of the function 22 is performed. When this is completed, control returns to the program side.

【0027】図2は、本発明を実施した実行プログラム
とライブラリの例である。これらはプログラム30とラ
イブラリ40から構成されている。
FIG. 2 shows an example of an execution program and a library embodying the present invention. These are composed of a program 30 and a library 40.

【0028】プログラム30は、データ格納領域31と
コード格納領域34を含み、データ格納領域はグローバ
ル変数32と、識別コード33を含む。コード格納領域
は、ライブラリ呼び出し処理35と、そのほかの処理3
6を含んでいる。
The program 30 includes a data storage area 31 and a code storage area 34. 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 3
6 is included.

【0029】ライブラリ40は、データ格納領域41と
コード格納領域43を含み、データ格納領域はグローバ
ル変数42を含む。コード格納領域はライブラリ初期化
処理44と暗号化された関数45を含む。この暗号化を
解除する鍵は、識別コード33から生成できるようにし
ておく。
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. A key for decrypting this encryption can be generated from the identification code 33.

【0030】本発明において、図2で構成されたシステ
ムは、次のように動作する。
In the present invention, the system configured in FIG. 2 operates as follows.

【0031】図1のライブラリの動的ロード11によっ
てライブラリ20中の初期化ルーチン21が呼ばれる。
図3のように、初期化ルーチン21は、実行プログラム
側のバイナリイメージ30を順に走査して、識別コード
33を探す。これが正しいコードであった場合は、初期
化処理を正常に完了する。識別コードが見つからなかっ
たもしくは、不正な識別コードであった場合は、初期化
処理は失敗し、ライブラリはロードされない。
The initialization routine 21 in the library 20 is called by the dynamic loading 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 to search 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】関数22は図1の関数の呼び出し12によ
って呼ばれると、プログラムのバイナリイメージ30を
検査して、識別コード33を探す。この識別コードから
暗号解除の鍵を得て、暗号化された関数45を解除して
関数22に戻して関数を実行する。
When called by function call 12 of FIG. 1, function 22 examines program binary image 30 for an identification code 33. The decryption key is obtained from the identification code, and the encrypted function 45 is decrypted and returned to the function 22 to execute the function.

【0033】関数23も同様の処理が行われる。The function 23 performs the same processing.

【0034】識別コードが見つからない場合は、ライブ
ラリが不正な実行プログラムから呼ばれていると判断し
て、処理を中止する。
If the identification code is not found, it is determined that the library is called from an unauthorized execution program, and the processing is stopped.

【0035】本発明でも図1の制御の流れは変わらな
い。ライブラリ側で行われる処理に追加して行う処理が
ある。本発明の全体の動作について、図4、図5のフロ
ーチャートを参照して、詳細に説明する。
In the present invention, the control flow shown in FIG. 1 does not change. There are processes performed in addition to the processes 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】図4は、ライブラリの初期化処理が行う動
作を示すフローチャートである。 ・許可された実行プログラムの場合 図1のライブラリの動的ロード11によって呼ばれたラ
イブラリ初期化ルーチン21では、まず自分を呼んだプ
ログラムのバイナリコードを先頭から検査していく(ス
テップA1)。
FIG. 4 is a flowchart showing the operation performed by the library initialization processing. In the case of a permitted execution program In the library initialization routine 21 called by the dynamic loading of the library 11 in FIG. 1, first, the binary code of the program that called itself is checked from the beginning (step A1).

【0037】この検査によってプログラム中に置かれた
識別コードを見つけたのならA3、そうでないのならA
4へ分岐する(ステップA2)。
A3 if the identification code found in the program is found by this check, A if not
Branching to step 4 (step A2).

【0038】得た識別コードが正しいのかどうかを検査
する(ステップA3)。
It is checked whether the obtained identification code is correct (step A3).

【0039】ライブラリを呼び出したプログラムは、許
可されたプログラムではなかったので、初期化を失敗さ
せる(ステップA4)。
Since the program which called the library is not a permitted program, the initialization is failed (step A4).

【0040】ライブラリを呼び出したプログラムは、許
可されたプログラムだったので、初期化を成功させる
(ステップA5)。 ・識別コードを持たない実行プログラムの場合 自分を呼んだプログラムのバイナリコードを先頭から検
査していく(ステップA1)。
Since the program that called the library was a permitted program, the initialization was successful (step A5). In the case of an execution program having no identification code The binary code of the program that called itself is checked from the beginning (step A1).

【0041】この検査によってプログラム中に識別コー
ドが見つからないのでA4へ分岐する(ステップA
2)。
Since the identification code is not found in the program by this check, the flow branches to A4 (step A).
2).

【0042】ライブラリを呼び出したプログラムは、許
可されたプログラムではなかったので、初期化を失敗さ
せる(ステップA4)。
Since the program that called the library is not a permitted program, the initialization is failed (step A4).

【0043】次に、図5は、プログラム実行中にライブ
ラリの持つ関数をコールされたときの前処理の動作を示
すフローチャートである。 ・許可された実行プログラムの場合 図1の関数の呼び出し12によって呼ばれたライブラリ
中の関数は、まず自分を呼び出したプログラムのバイナ
リコードを先頭から検査していく(ステップB1)。
FIG. 5 is a flowchart showing the pre-processing operation when a function of the library is called during execution of the program. 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 beginning (step B1).

【0044】この検査によってプログラム中に置かれた
識別コードを見つけたのでB3へ分岐する(ステップB
2)。
Since the identification code located in the program is found by this inspection, the flow branches to B3 (step B).
2).

【0045】識別コードは正しいことを検査したらB4
へ分岐する(ステップB3)。
When it is checked that the identification code is correct, B4
Branch to (step B3).

【0046】識別コードから暗号解除の鍵を生成する
(ステップB4)。
A decryption key is generated from the identification code (step B4).

【0047】その鍵で関数の一部にかけられた暗号化を
解除する(ステップB5)。
The encryption applied to a part of the function is released with the key (step B5).

【0048】関数を呼び出したプログラムは、許可され
た実行プログラムだったので、関数の実行を行う(ステ
ップB7)。 ・識別コードを持たない実行プログラムの場合 まず自分を呼び出したプログラムのバイナリコードを先
頭から検査していく(ステップB1)。
Since the program that called the function was 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 beginning (step B1).

【0049】この検査によって識別コードが見つからな
いのでB6へ分岐する(ステップB2)。
Since the identification code is not found by this inspection, the flow branches to B6 (step B2).

【0050】関数を呼び出したプログラムは、許可され
た実行プログラムではなかったので、関数の実行ができ
ない(ステップB6)。
Since the program that called the function was not a permitted execution program, the function cannot be executed (step B6).

【0051】このように、ライブラリを呼び出すプログ
ラム中に識別コードを置き、ライブラリ中の関数を、そ
のコードから生成した鍵で暗号化しておくことにより、
識別コードのない実行プログラムが、ライブラリを呼び
出して使用することを妨げることが可能になる。
As described above, by placing the identification code in the program that calls the library and encrypting the function in the library with the key generated from the code,
It is possible to prevent an executable program without an identification code from calling and using the library.

【0052】識別コードから鍵を生成する手順は、識別
コードから論理演算などを複数回行って得た値を使用す
るのが望ましい。
In the procedure for generating a key from an identification code, it is desirable to use a value obtained by performing a logical operation or the like a plurality of times from the identification code.

【0053】(発明の他の実施の形態) ・動的リンクライブラリでなくとも静的リンクライブラ
リでもかまわない。
(Other Embodiments of the Invention) A static link library may be used instead of a dynamic link library.

【0054】静的リンクライブラリを第三者に提供しな
くてはならない場合に、そのライブラリに保護すべき内
容があり、特定の実行ファイル以外にリンクさせたくな
い場合は、本発明の方法を使うことができる。静的リン
クライブラリの場合は、初期化ルーチンが存在しないの
で、関数が呼ばれたときの方法だけを使うことになる。
この場合、ライブラリ提供先に識別コードを知らせるの
は意味をなさないので、実行ファイル名などの既知の情
報を識別コードにする必要がある。 ・実行ファイルに用意する認識コードはデータ格納領域
でなくともかまわない。
If the static link library must be provided to a third party, and the library has contents to be protected and it is not desired to link other than a specific executable file, use the method of the present invention. be able to. In the case of a statically linked library, there is no initialization routine, so only the method used when the function was called is used.
In this case, it does not make sense to notify the library providing destination of the identification code, so that known information such as the execution file name must be used as the identification code. -The recognition code prepared in the execution file does not have to be the data storage area.

【0055】図6の識別コードを分散して格納した例の
ように、プログラム・コードのパターンや、実行ファイ
ルに格納された画像ファイルなどに認識コードを埋めて
もかまわない。
As in the example shown in FIG. 6 where the identification codes are distributed and stored, the recognition codes may be embedded in a pattern of a program code or an image file stored in an execution file.

【0056】識別コードを複数用意して、格納する場所
を分散させることで、解読されにくいシステムにするこ
とができる。この場合、識別コードの種類は鍵の種類に
なる。関数1つにつき1種類の鍵を割り当てると、ひと
つの識別コードが知られても他の暗号化した関数に影響
を及ぼさないライブラリができる。また、すべての関数
で複数の鍵による暗号化を行うようにすれば、単体のセ
キュリティ強度の高いライブラリになる。 ・初期化ルーチンの時に識別コードから鍵を生成して、
関数の暗号化を解除してもかまわない。
By preparing a plurality of identification codes and distributing the storage locations, a system that is difficult to decipher can be obtained. In this case, the type of the identification code is the type of the key. Assigning one type of key to each function results in a library that, even if one identification code is known, does not affect other encrypted functions. In addition, if all functions perform encryption using a plurality of keys, a single library having high security strength can be obtained. -Generate a key from the identification code during the initialization routine,
The function can be decrypted.

【0057】関数が呼ばれたときにも暗号化を解除する
ので、二重の暗号化をかけることができる。この場合は
鍵は共通で、暗号化アルゴリズムが異なるものを用意す
る必要がある。
Since the encryption is also released when the function is called, double encryption can be applied. In this case, it is necessary to prepare a key having a common key and a different encryption algorithm.

【0058】[0058]

【発明の効果】以上説明したように、本発明の効果は、
任意の実行プログラム以外からは、その関数をコールす
ることのできない動的リンクライブラリの作成を可能に
することにある。
As described above, the effect of the present invention is as follows.
The object of the present invention is to make it possible to create a dynamically linked library that cannot call its functions from any program other than an arbitrary executable program.

【0059】その理由は、動的リンクライブラリが初期
化ルーチンを通過したとき、更に、実行プログラムから
関数をコールされたときに、実行プログラム側に埋め込
まれている識別コードを走査して、動的リンクを許可し
たプログラムかどうかを検査することにある。
The reason is that when the dynamic link library passes through the initialization routine, and when the function is called from the execution program, the identification code embedded in the execution program is scanned and the dynamic link library is scanned. To check whether the program allows linking.

【0060】そして識別コードがライブラリの暗号化を
解除する鍵になっていることにある。
The identification code is a key for decrypting the library.

【0061】また、動的リンクライブラリでなくとも静
的リンクライブラリでもかまわない。
In addition, a static link library may be used instead of the dynamic link library.

【0062】静的リンクライブラリを第三者に提供しな
くてはならない場合に、そのライブラリに保護すべき内
容があり、特定の実行ファイル以外にリンクさせたくな
い場合は、本発明の方法を使うことができる。
When a static link library must be provided to a third party, and the library has contents to be protected and it is not desired to link other than a specific executable file, the method of the present invention is used. be able to.

【0063】また、実行ファイルに用意する認識コード
はデータ格納領域でなくともかまわない。識別コードを
複数用意して、格納する場所を分散させることで、解読
されにくいシステムにすることができる。
The recognition code prepared in the execution file need not be a data storage area. By preparing a plurality of identification codes and distributing the storage locations, a system that is difficult to decipher can be obtained.

【0064】また、初期化ルーチンの時に識別コードか
ら鍵を生成して、関数の暗号化を解除してもかまわな
い。関数が呼ばれたときにも暗号化を解除するので、二
重の暗号化をかけることができる。
In the initialization routine, a key may be generated from the identification code to decrypt the function. Since the encryption is also released when the function is called, double encryption can be applied.

【図面の簡単な説明】[Brief description of the drawings]

【図1】動的ライブラリ使用時の一般的な制御の図であ
る。
FIG. 1 is a diagram of general control when a dynamic library is used.

【図2】本発明を適用したライブラリと実行ファイルの
バイナリイメージの図である。
FIG. 2 is a diagram of a binary image of a library and an executable file to which the present invention is applied.

【図3】本発明を適用したライブラリ初期化ルーチンの
バイナリ検査の図である。
FIG. 3 is a diagram of a binary check of a library initialization routine to which the present invention is applied.

【図4】初期化ルーチンのバイナリ検査の処理のフロー
チャートである。
FIG. 4 is a flowchart of a binary inspection process of an initialization routine.

【図5】関数が実行される前処理のフローチャートであ
る。
FIG. 5 is a flowchart of a pre-process in which a function is executed.

【図6】識別コードを分散して格納する場合の構成図で
ある。
FIG. 6 is a configuration diagram in a case where identification codes are stored in a distributed manner.

【図7】従来の技術のCADライブラリアクセス管理装
置の構成を示す図である。
FIG. 7 is a diagram showing a configuration of a conventional CAD library access management device.

【符号の説明】[Explanation of symbols]

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 ファイルシステム Reference Signs List 10 program 11 processing for loading library into system 12 processing for calling library function 20 library 21 initialization routine 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 for loading 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 Reference numeral 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 Encryption processing unit 110 File access processing unit 120 File access request source 130 Encrypted library 140 File not accessed for access 200 File system

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】 実行対象のプログラムと予め用意された
ライブラリとのリンク処理をするためのリンク機能を有
するコンピュータシステムに適用するライブラリのリン
ク方法であって、 実行プログラム側の処理であるライブラリの動的ロード
によって該ライブラリ中の初期化ルーチンを呼ぶステッ
プと、 該初期化ルーチンにより、実行プログラム側のバイナリ
イメージを順に走査して、識別コードを探すステップ
と、 該識別コードが正しいコードであった場合は、初期化処
理を正常に完了するステップと、 前記識別コードが見つからなかった場合、または、不正
な識別コードであった場合は、初期化処理を失敗とし、
前記ライブラリをロードしないステップと、 実行プログラム側の処理である関数の呼び出しによって
前記ライブラリ中の関数を呼ぶステップと、 該関数により、実行プログラム側のバイナリイメージを
順に走査して、識別コードを探すステップと、 該識別コードが正しいコードであった場合は、該識別コ
ードから暗号解除の鍵を得て、暗号化された関数を解除
して関数を実行するステップと、 前記識別コードが見つからなかった場合、または、不正
な識別コードであった場合は、ライブラリが不正な実行
プログラムから呼ばれていると判断して、処理を中止す
るステップと、からなるライブラリのリンク方法。
1. A library linking method applied to a computer system having a link function for linking a program to be executed with a library prepared in advance, the library linking method being a process on the execution program side. Calling an initialization routine in the library by dynamic loading; scanning the binary image of the execution program side in order by the initialization routine to search for an identification code; and when the identification code is a correct code. Is a step of successfully completing the initialization process, and if the identification code is not found, or if the identification code is incorrect, the initialization process is a failure,
A step of not loading the library; a step of calling a function in the library by calling a function which is a process on the execution program side; and a step of sequentially scanning a binary image on the execution program side by the function to search for an identification code. If the identification code is a correct code, obtain a decryption key from the identification code, decrypt the encrypted function and execute the function; and if the identification code is not found, Or, if the identification code is invalid, determining that the library is called from an invalid execution program, and stopping the processing, and linking the library.
【請求項2】 実行対象のプログラムと予め用意された
ライブラリとのリンク処理をするためのリンク機能を有
するコンピュータシステムに適用するライブラリのリン
ク方法であって、 実行プログラム側の処理であるライブラリの動的ロード
によって該ライブラリ中の初期化ルーチンを呼ぶステッ
プと、 該初期化ルーチンにより、実行プログラム側のバイナリ
イメージを順に走査して、識別コードを探すステップ
と、 該識別コードが正しいコードであった場合は、該識別コ
ードから暗号解除の鍵を得て、暗号化された関数を解除
して初期化処理を正常に完了するステップと、 前記識別コードが見つからなかった場合、または、不正
な識別コードであった場合は、初期化処理を失敗とし、
前記ライブラリをロードしないステップと、 実行プログラム側の処理である関数の呼び出しによって
前記ライブラリ中の関数を呼ぶステップと、 該関数により、実行プログラム側のバイナリイメージを
順に走査して、識別コードを探すステップと、 該識別コードが正しいコードであった場合は、該識別コ
ードから暗号解除の鍵を得て、暗号化された関数を解除
して関数を実行するステップと、 前記識別コードが見つからなかった場合、または、不正
な識別コードであった場合は、ライブラリが不正な実行
プログラムから呼ばれていると判断して、処理を中止す
るステップと、からなるライブラリのリンク方法。
2. A library linking method applied to a computer system having a link function for linking a program to be executed with a library prepared in advance, the method comprising: Calling an initialization routine in the library by dynamic loading; scanning the binary image of the execution program side in order by the initialization routine to search for an identification code; and when the identification code is a correct code. Obtaining a decryption key from the identification code, decrypting the encrypted function and completing the initialization process normally; and when the identification code is not found, or with an incorrect identification code. If there is, the initialization process will be failed,
A step of not loading the library; a step of calling a function in the library by calling a function that is a process of the execution program; and a step of sequentially scanning a binary image of the execution program by the function to search for an identification code. Obtaining the decryption key from the identification code if the identification code is a correct code, decrypting the encrypted function and executing the function, and if the identification code is not found Or, if the identification code is invalid, determining that the library is called from an invalid execution program, and stopping the processing, and linking the library.
【請求項3】 実行対象のプログラムと予め用意された
ライブラリとのリンク処理をするためのリンク機能を有
するコンピュータシステムに適用するライブラリのリン
ク方法であって、 実行プログラム側の処理である関数の呼び出しによって
前記ライブラリ中の関数を呼ぶステップと、 該関数により、実行プログラム側のバイナリイメージを
順に走査して、識別コードを探すステップと、 該識別コードが正しいコードであった場合は、該識別コ
ードから暗号解除の鍵を得て、暗号化された関数を解除
して関数を実行するステップと、 前記識別コードが見つからなかった場合、または、不正
な識別コードであった場合は、ライブラリが不正な実行
プログラムから呼ばれていると判断して、処理を中止す
るステップと、からなるライブラリのリンク方法。
3. A method of linking a library to be applied to a computer system having a link function for linking a program to be executed with a library prepared in advance, wherein the function is a call on the execution program side. Calling a function in the library by using the function, sequentially scanning a binary image on the execution program side to search for an identification code, and, if the identification code is a correct code, Obtaining a decryption key, decrypting the encrypted function, and executing the function; if the identification code is not found, or if the identification code is incorrect, the library is Determining that the library is called from the program and stopping the processing. Click method.
【請求項4】 前記識別コードは、前記実行プログラム
のデータ格納領域またはコード格納領域またはリソース
格納領域に格納されている請求項1または2に記載のラ
イブラリのリンク方法。
4. The library link 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.
【請求項5】 実行対象のプログラムと予め用意された
ライブラリとのリンク処理をするためのリンク機能を有
するコンピュータシステムにより読み取り可能な記録媒
体であって、 実行プログラム側の処理であるライブラリの動的ロード
によって該ライブラリ中の初期化ルーチンを呼ぶステッ
プと、 該初期化ルーチンにより、実行プログラム側のバイナリ
イメージを順に走査して、識別コードを探すステップ
と、 該識別コードが正しいコードであった場合は、初期化処
理を正常に完了するステップと、 前記識別コードが見つからなかった場合、または、不正
な識別コードであった場合は、初期化処理を失敗とし、
前記ライブラリをロードしないステップと、 実行プログラム側の処理である関数の呼び出しによって
前記ライブラリ中の関数を呼ぶステップと、 該関数により、実行プログラム側のバイナリイメージを
順に走査して、識別コードを探すステップと、 該識別コードが正しいコードであった場合は、該識別コ
ードから暗号解除の鍵を得て、暗号化された関数を解除
して関数を実行するステップと、 前記識別コードが見つからなかった場合、または、不正
な識別コードであった場合は、ライブラリが不正な実行
プログラムから呼ばれていると判断して、処理を中止す
るステップとを、前記コンピュータシステムが実行する
ように設定されたプログラムを記録した記録媒体。
5. A recording medium readable by a computer system having a link function for performing a link process between a program to be executed and a library prepared in advance. Calling an initialization routine in the library by loading; scanning the binary image on the execution program side in order to search for an identification code by the initialization routine; and if the identification code is a correct code, A step of normally completing the initialization processing; and if the identification code is not found, or if the identification code is invalid, the initialization processing is considered to have failed,
A step of not loading the library; a step of calling a function in the library by calling a function which is a process on the execution program side; and a step of sequentially scanning a binary image on the execution program side by the function to search for an identification code. If the identification code is a correct code, obtain a decryption key from the identification code, decrypt the encrypted function and execute the function; and if the identification code is not found, Or, if the identification code is invalid, determining that the library is called from an invalid execution program, and stopping the process. The recording medium on which it was recorded.
【請求項6】 実行対象のプログラムと予め用意された
ライブラリとのリンク処理をするためのリンク機能を有
するコンピュータシステムにより読み取り可能な記録媒
体であって、 実行プログラム側の処理であるライブラリの動的ロード
によって該ライブラリ中の初期化ルーチンを呼ぶステッ
プと、 該初期化ルーチンにより、実行プログラム側のバイナリ
イメージを順に走査して、識別コードを探すステップ
と、 該識別コードが正しいコードであった場合は、該識別コ
ードから暗号解除の鍵を得て、暗号化された関数を解除
して初期化処理を正常に完了するステップと、 前記識別コードが見つからなかった場合、または、不正
な識別コードであった場合は、初期化処理を失敗とし、
前記ライブラリをロードしないステップと、 実行プログラム側の処理である関数の呼び出しによって
前記ライブラリ中の関数を呼ぶステップと、 該関数により、実行プログラム側のバイナリイメージを
順に走査して、識別コードを探すステップと、 該識別コードが正しいコードであった場合は、該識別コ
ードから暗号解除の鍵を得て、暗号化された関数を解除
して関数を実行するステップと、 前記識別コードが見つからなかった場合、または、不正
な識別コードであった場合は、ライブラリが不正な実行
プログラムから呼ばれていると判断して、処理を中止す
るステップとを、前記コンピュータシステムが実行する
ように設定されたプログラムを記録した記録媒体。
6. A recording medium readable by a computer system having a link function for performing link processing between a program to be executed and a library prepared in advance, wherein dynamic processing of the library which is processing on the execution program side is performed. Calling an initialization routine in the library by loading; scanning the binary image on the execution program side in order to search for an identification code by the initialization routine; and if the identification code is a correct code, Obtaining a decryption key from the identification code, decrypting the encrypted function and completing the initialization process normally, and if the identification code is not found, or if the identification code is invalid. The initialization process fails,
A step of not loading the library; a step of calling a function in the library by calling a function which is a process on the execution program side; and a step of sequentially scanning a binary image on the execution program side by the function to search for an identification code. If the identification code is a correct code, obtain a decryption key from the identification code, decrypt the encrypted function and execute the function; and if the identification code is not found, Or, if the identification code is invalid, determining that the library is called from an invalid execution program, and stopping the process. The recording medium on which it was recorded.
【請求項7】 実行対象のプログラムと予め用意された
ライブラリとのリンク処理をするためのリンク機能を有
するコンピュータシステムにより読み取り可能な記録媒
体であって、 実行プログラム側の処理である関数の呼び出しによって
前記ライブラリ中の関数を呼ぶステップと、 該関数により、実行プログラム側のバイナリイメージを
順に走査して、識別コードを探すステップと、 該識別コードが正しいコードであった場合は、該識別コ
ードから暗号解除の鍵を得て、暗号化された関数を解除
して関数を実行するステップと、 前記識別コードが見つからなかった場合、または、不正
な識別コードであった場合は、ライブラリが不正な実行
プログラムから呼ばれていると判断して、処理を中止す
るステップとを、前記コンピュータシステムが実行する
ように設定されたプログラムを記録した記録媒体。
7. A recording medium readable by a computer system having a link function for performing link processing between a program to be executed and a library prepared in advance. A step of calling a function in the library; a step of sequentially scanning a binary image on an execution program side by the function to search for an identification code; and, if the identification code is a correct code, a code from the identification code. Obtaining a key for unlocking, executing the function by unlocking the encrypted function, and, if the identification code is not found or if the identification code is incorrect, the library executes an incorrect execution program. Determining that the process is called from the computer system and stopping the process. A recording medium recording a program set to run.
【請求項8】 前記識別コードは、前記実行プログラム
のデータ格納領域またはコード格納領域またはリソース
格納領域に格納されている請求項4から7のいずれか1
項に記載の、前記コンピュータシステムが実行するよう
に設定されたプログラムを記録した記録媒体。
8. The storage medium 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 recording a program set to be executed by the computer system according to the item.
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 true JP2002099439A (en) 2002-04-05
JP3654165B2 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 (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
JP2005301949A (en) * 2004-03-19 2005-10-27 Toshiba Kyaria Kk Microcomputer
JP2006099619A (en) * 2004-09-30 2006-04-13 Fujitsu Ltd Computer system management method and system therefor and computer management program
US8732441B2 (en) 2007-03-20 2014-05-20 Fujitsu Limited Multiprocessing system
JP2014167718A (en) * 2013-02-28 2014-09-11 Kyocera Document Solutions Inc Shared library with unauthorized use preventing function
US9959191B2 (en) 2012-11-23 2018-05-01 Samsung Electronics Co., Ltd. Dynamic library profiling method and dynamic library profiling system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101999656B1 (en) 2012-06-20 2019-07-12 삼성전자 주식회사 License verification method, apparatus and computer readable medium thereof

Cited By (8)

* 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
US7805758B2 (en) 2003-10-31 2010-09-28 Fujitsu Limited Information processing apparatus
JP2005301949A (en) * 2004-03-19 2005-10-27 Toshiba Kyaria Kk Microcomputer
JP4669666B2 (en) * 2004-03-19 2011-04-13 東芝キヤリア株式会社 Microcomputer
JP2006099619A (en) * 2004-09-30 2006-04-13 Fujitsu Ltd Computer system management method and system therefor and computer management program
US8732441B2 (en) 2007-03-20 2014-05-20 Fujitsu Limited Multiprocessing system
US9959191B2 (en) 2012-11-23 2018-05-01 Samsung Electronics Co., Ltd. Dynamic library profiling method and dynamic library profiling system
JP2014167718A (en) * 2013-02-28 2014-09-11 Kyocera Document Solutions Inc Shared library with unauthorized use preventing function

Also Published As

Publication number Publication date
JP3654165B2 (en) 2005-06-02

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
US7874009B2 (en) Data processing device
KR101676326B1 (en) Interlocked binary protection using whitebox cryptography
CN1647443B (en) Method and aystem for helping secure operation within an integrated system employing a data access control function
US6895506B1 (en) Secure storage and execution of processor control programs by encryption and a program loader/decryption mechanism
US20030120938A1 (en) Method of securing software against reverse engineering
JP4850830B2 (en) Computer system and program generation apparatus
US7707631B2 (en) Device and method for processing a program code
KR970049730A (en) System and method for executing a checkable program with a device using an uncheckable program from a trusted source
US8843766B2 (en) Method and system for protecting against access to a machine code of a device
KR102275827B1 (en) Method and apparatus for data encryption
US20130340087A1 (en) Software License Management
US20110271350A1 (en) method for protecting software
JP2004038394A (en) Method for using shared library in tamper resistant processor and its program
US9256756B2 (en) Method of encryption and decryption for shared library in open operating system
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
JP3654165B2 (en) Library linking method applied to a computer system and recording medium recording the program
CN112231753B (en) Encryption protection method and device for sensitive information in Shell script
CN117150515B (en) Safety protection method for EDA secondary development source code, electronic equipment and storage medium
US20020023224A1 (en) Computer software installation
CN107092517B (en) SDK tool package generation method and device
US20110145596A1 (en) Secure Data Handling In A Computer System
US20100146634A1 (en) Data protection device and method
CN116070201B (en) Data management method, system, electronic equipment and medium

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