JP2003050640A - Method for preventing copy of software - Google Patents

Method for preventing copy of software

Info

Publication number
JP2003050640A
JP2003050640A JP2001238758A JP2001238758A JP2003050640A JP 2003050640 A JP2003050640 A JP 2003050640A JP 2001238758 A JP2001238758 A JP 2001238758A JP 2001238758 A JP2001238758 A JP 2001238758A JP 2003050640 A JP2003050640 A JP 2003050640A
Authority
JP
Japan
Prior art keywords
pattern
file
execution file
software
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001238758A
Other languages
Japanese (ja)
Inventor
Yutaka Kase
裕 加瀬
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2001238758A priority Critical patent/JP2003050640A/en
Publication of JP2003050640A publication Critical patent/JP2003050640A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To prevent the copy of software by providing software capable of operating only by specific hardware (equipment). SOLUTION: At the time of preparing an execution file, at least a position designation pattern and a copyright pattern are embedded. This file is encoded, and installed in hardware in the following procedure. The encoded file is decoded, and the specific information of hardware is acquired, and an execution validity/invalidity pattern is generated by using the information and the copyright pattern. The execution validity/invalidity pattern is embedded at a prescribed position indicated by a position designation pattern so that the execution file can be finished. The execution file generates the execution validity/invalidity pattern from the specific information of the hardware and the copyright pattern. Then, this execution validity/invalidity pattern is compared with the execution validity/invalidity pattern embedded in the execution file itself so that the execution validity/invalidity can be judged.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、コンピュータ上で
動作するソフトウェアの作成及び実行に関するものであ
り、特にソフトウェアの複製抑止に効果を持つものに関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to creation and execution of software that operates on a computer, and more particularly to software that has an effect of suppressing duplication of software.

【0002】[0002]

【従来の技術】コンピュータの性能が向上し、様々な測
定機器等のシステムが一般的なパソコン等のコンピュー
タをベースとして開発されている。また、それらの機器
の動作はソフトウェアが重要な役割を果たしている場合
が多い。ソフトウェアはデジタルデータであることから
一般に容易に複製可能である。従って、ある機器と同構
成のハードウェアを調達し、これに複製したソフトウェ
アを組み込むことで同性能の機器を実現することが可能
となる。よって販売側にとっては、ユーザが容易に複製
することを抑止する機能が必要となる。
2. Description of the Related Art As the performance of computers has improved, various measuring instruments and other systems have been developed based on general computers such as personal computers. In many cases, software plays an important role in the operation of those devices. Since the software is digital data, it is generally easily duplicated. Therefore, it becomes possible to realize a device having the same performance by procuring hardware having the same configuration as that of a certain device and incorporating the copied software therein. Therefore, the sales side needs a function to prevent the user from easily copying.

【0003】この対策として、所定のキーワードと共に
ソフトウェアを配布し、インストール時や動作時にこの
キーワードを入力することで機能を制限することなくソ
フトウェアを利用できるようにする方法が一般的となっ
ている。
As a countermeasure against this, a method of distributing software together with a predetermined keyword and inputting this keyword at the time of installation or operation so that the software can be used without restricting the function is generally used.

【0004】[0004]

【発明が解決しようとする課題】しかしながら、この方
法ではキーワードがハードディスクやメモリ等に記憶さ
れているだけで、すべてを他のハードウェアに複製して
しまうことで容易に複製したソフトウェアを実行するこ
とが可能となる。測定機器等のようにハードウェアとソ
フトウェアがセットとなっている商品の場合は、それぞ
れ1対1で組み込まれていることが望ましい。つまり、同
構成の機器に複製したソフトウェアをインストールして
も動作しないようにすることが必要である。
However, in this method, the keywords are only stored in the hard disk, the memory, etc., and all of them are copied to other hardware, so that the copied software can be easily executed. Is possible. In the case of products such as measuring instruments that have a set of hardware and software, it is desirable that they are installed one-to-one. In other words, it is necessary not to operate even if the duplicated software is installed in the device having the same configuration.

【0005】上記課題に鑑み、本発明は、特定のハード
ウェア(機器)でのみ動作するソフトウェアを提供する
ことで、ソフトウェアの複製を抑止することを目的とす
る。
In view of the above problems, the present invention has an object to suppress duplication of software by providing software that operates only on specific hardware (device).

【0006】[0006]

【課題を解決するための手段】ソフトウェアのソースフ
ァイルをコンパイルした結果として得られる実行ファイ
ル(以下、原実行ファイル)を作成する際に、少なくとも
位置指定パターンと著作パターンを埋め込み、所定の演
算によりビット配列を変換してエンコードする。
[Means for Solving the Problems] When creating an execution file (hereinafter referred to as an original execution file) obtained as a result of compiling a software source file, at least a position specification pattern and a work pattern are embedded, and a bit is calculated by a predetermined operation. Convert and encode the array.

【0007】エンコードされたファイルは先ほどの逆演
算により原実行ファイルに戻し、機器情報を取得して、
機器情報と著作パターンを用いて所定の演算を行なうこ
とで、実行可否パターンを生成し、位置指定パターンが
示す所定位置へ埋め込むことにより実行ファイルを生成
する。
The encoded file is returned to the original execution file by the inverse operation described above, the device information is acquired, and
By executing a predetermined calculation using the device information and the work pattern, an executability pattern is generated, and an execution file is generated by embedding the executability pattern in a predetermined position indicated by the position designation pattern.

【0008】実行ファイルは、機器の固有情報を取得
し、著作パターンと所定の演算を行い、実行可否パター
ンを生成し、実行ファイル自身に埋め込まれている実行
可否パターンと比較して、実行可否を判断する。
The execution file acquires the unique information of the device, performs a predetermined calculation with the copyright pattern, generates an execution permission pattern, and compares it with the execution permission pattern embedded in the execution file itself to determine the execution permission. to decide.

【0009】[0009]

【発明の実施の形態】本発明の第1の発明は、ソフトウ
ェアの実行ファイルに、少なくとも、前記実行ファイル
の実行可否を示す実行可否パターンの埋め込み位置を指
定する位置指定パターン、または、所定の著作パターン
のいずれかを埋め込み、前記実行ファイルのビット配列
を所定の演算で変換することを特徴とするソフトウェア
複製防止方法であり、実行ファイルを実行不可能なファ
イルとすることで複製抑止効果が得られる。
BEST MODE FOR CARRYING OUT THE INVENTION A first invention of the present invention is to provide a position designation pattern for designating at least an embedding position of an execution permission pattern indicating execution propriety of the execution file in an execution file of software, or a predetermined work. A software duplication prevention method characterized by embedding one of the patterns and converting the bit array of the execution file by a predetermined operation. By making the execution file an unexecutable file, a duplication suppression effect can be obtained. .

【0010】本発明の第2の発明は、第1の発明のソフ
トウェア複製防止方法で生成された実行ファイルのビッ
ト配列を所定の逆演算で元のビット配列に戻し、前記実
行ファイルをインストールする機器の機器情報を取得
し、前記機器情報と前記実行ファイルに埋め込まれてい
る所定の著作パターンから前記実行ファイルの実行可否
を示す実行可否パターンを生成し、前記実行可否パター
ンを前記実行可否パターンの埋めこみ位置を示す位置指
定パターンに従って埋め込むことを特徴とするソフトウ
ェア複製防止方法であり、特定の機器のみ実行可能なフ
ァイルとすることで複製抑止効果が得られる。
A second aspect of the present invention is a device for restoring a bit array of an execution file generated by the software duplication prevention method of the first aspect to an original bit array by a predetermined inverse operation and installing the execution file. Of the device information and a predetermined copyright pattern embedded in the device information and the execution file to generate an executability pattern indicating executability of the execution file, and embedding the executability pattern in the executability pattern. This is a software duplication prevention method characterized by embedding in accordance with a position designation pattern indicating a position, and a duplication suppression effect can be obtained by making the file executable only by a specific device.

【0011】本発明の第3の発明は、ソフトウェアの実
行ファイルがインストールされている機器の機器情報を
取得し、前記機器情報と前記実行ファイルに埋め込まれ
ている所定のパターンとの演算結果と、前記実行ファイ
ルに埋め込まれている前記実行ファイルの実行可否を示
す実行可否パターンとを比較して、パターンが一致しな
い場合には前記ソフトウェアが複製されたと判断するこ
とを特徴とするソフトウェア複製防止方法であり、ソフ
トウェアが複製されてもどの機器から複製されたかを検
出することが可能となる。
According to a third aspect of the present invention, device information of a device in which an execution file of software is installed is acquired, and a calculation result of the device information and a predetermined pattern embedded in the execution file, A method for preventing software duplication, comprising comparing with an executability pattern indicating executability of the execution file embedded in the execution file, and determining that the software has been copied when the patterns do not match. Therefore, even if the software is copied, it is possible to detect from which device the software is copied.

【0012】本発明の第4の発明は、ソフトウェアの実
行ファイルがインストールされている機器より前記実行
ファイルのファイル名を取得し、取得したファイル名と
前記実行ファイルに埋め込まれている前記実行ファイル
のファイル名を比較して、ファイル名が一致しない場合
には前記ソフトウェアが複製されたと判断することを特
徴とするソフトウェア複製防止方法であり、ファイルの
リネームによる複製を抑止する効果が得られる。
In a fourth aspect of the present invention, the file name of the execution file is acquired from the device in which the execution file of software is installed, and the acquired file name and the execution file embedded in the execution file are acquired. This is a software duplication prevention method characterized by comparing file names and determining that the software has been duplicated when the file names do not match, and has an effect of inhibiting duplication by renaming files.

【0013】なお、以下ではC言語を用いて開発を行な
うことを前提としているが、これに限らず、C++言語、B
ASIC言語、アセンブラ言語、C#言語 等々、コンピュー
タソフトウェアを開発するのに用いられる言語でも全く
同様な効果が得られる。
In the following description, it is assumed that development is performed using C language, but the present invention is not limited to this, and C ++ language, B
The ASIC language, assembler language, C # language, and other languages used to develop computer software have exactly the same effect.

【0014】また、以下では一般的なコンピュータ(パ
ソコン)の場合で説明するが、これに限らず、組み込み
機器、ゲーム機、家電製品等、ソフトウェアが動作する
機器についても同様に適用可能である。
Further, although a general computer (personal computer) will be described below, the present invention is not limited to this, and is similarly applicable to a device in which software operates, such as an embedded device, a game machine, or a home electric appliance.

【0015】(実施の形態1)図1は本発明における実
行ファイルの作成過程を示す概略図である。まず、エン
コード過程について説明する。
(Embodiment 1) FIG. 1 is a schematic diagram showing a process of creating an execution file in the present invention. First, the encoding process will be described.

【0016】ソースファイル1はC言語で作成されたフ
ァイルであり、位置指定パターン11と著作パターン1
2がその中で定義されている。位置指定パターン、著作
パターンは少なくともどちらかは埋め込まれる。原実行
ファイル2は、ソースファイル1をCコンパイラでコン
パイルした結果得られるファイルであり、その内部に位
置指定パターン21と著作パターン22が埋め込まれて
いる。これらはそれぞれ、ソースファイル1中で定義さ
れた位置指定パターン11と著作パターン12をコンパ
イルした結果に相当する。中間実行ファイル3は、原実
行ファイル2に所定の変換を施すエンコードにより得ら
れるファイルであり、その内部に位置指定パターン31
と著作パターン32が埋め込まれている。これらはそれ
ぞれ、原実行ファイル2中の位置指定パターン21と著
作パターン32をエンコードした結果に相当する。以上
の過程をエンコード過程と呼ぶ。
The source file 1 is a file created in C language, and includes the position designation pattern 11 and the writing pattern 1.
2 is defined therein. At least one of the position designation pattern and the work pattern is embedded. The original execution file 2 is a file obtained as a result of compiling the source file 1 with a C compiler, and the position designation pattern 21 and the work pattern 22 are embedded therein. Each of these corresponds to the result of compiling the position designation pattern 11 and the work pattern 12 defined in the source file 1. The intermediate execution file 3 is a file obtained by encoding the original execution file 2 with a predetermined conversion, and has the position specification pattern 31 inside.
And a work pattern 32 are embedded. Each of these corresponds to the result of encoding the position designation pattern 21 and the work pattern 32 in the original execution file 2. The above process is called the encoding process.

【0017】ここで、原実行ファイル2に埋め込まれる
位置指定パターン21と著作パターン22について説明
する。位置指定パターン21は、後述するインストーラ
によって最終的な実行ファイルに埋め込まれる実行可否
パターンをどの位置に埋め込むかを指定するものであ
る。インストーラは原実行ファイルから位置指定パター
ンをサーチし、位置指定パターンそのものが埋め込まれ
ている位置または位置指定パターンが指示する位置に実
行可否パターンを埋め込む。著作パターン22は、予め
定義された任意のパターンである。インストーラ及び最
終的な実行ファイル自身は、著作パターンと機器情報を
用いて所定の演算を行なうことで実行可否パターンを生
成する。中間実行ファイル3は、原実行ファイル2にビ
ットシフトや論理演算等の所定の処理を行なうことで、
バイナリエディタ等によっても位置指定パターン31や
著作パターン32をはじめ、原実行ファイル2の内容が
わからなくなるようにしたものである。
Here, the position designation pattern 21 and the work pattern 22 embedded in the original execution file 2 will be described. The position designation pattern 21 is for designating at which position the executability pattern to be embedded in the final executable file by the installer to be described later is embedded. The installer searches for the position designation pattern from the original execution file, and embeds the executability pattern at the position where the position designation pattern itself is embedded or at the position designated by the position designation pattern. The work pattern 22 is an arbitrary pattern defined in advance. The installer and the final executable file itself generate an executability pattern by performing a predetermined calculation using the copyright pattern and device information. The intermediate execution file 3 performs predetermined processing such as bit shift and logical operation on the original execution file 2,
The contents of the original execution file 2 including the position designation pattern 31 and the literary work pattern 32 are made unknown by a binary editor or the like.

【0018】次にエンコード過程の詳細について具体例
をあげて説明する。図2はエンコード過程の処理を示す
フローチャートである。理解の一助とするため、フロー
チャート右側には、各処理でのメモリ内容の概略を示し
た。
Next, details of the encoding process will be described with a specific example. FIG. 2 is a flowchart showing the process of the encoding process. To facilitate understanding, the right side of the flowchart shows an outline of the memory contents in each process.

【0019】ステップS201では、ソースファイルM
yApl.cをメモリへ読み込む。MyApl.c内で
はメモリ内容211に示すように、#define文に
より、位置指定パターンとして「MyPositio
n」が定義され、著作パターンとして「MySign」
が定義されている。これらのパターンは一例であり、予
め定義されていれば任意な文字列、数字列、ビット列で
も構わない。ステップS202でコンパイルが行なわれ
ると、メモリ内容212に示すように、位置指定パター
ンと著作パターンはバイナリデータとして組み込まれ
る。なお、メモリ内容212は一般的なバイナリエディ
タと同様の表記であらわしており、16進数値部分はメ
モリ内容を示し、その右側の部分は有効なアスキーコー
ドに変換したものである。以下、他のメモリ内容表示も
同様である。ステップS203では、コンパイル結果を
原実行ファイルMyApl.exeとして記録メディア
へ保存する。以上の処理により、ソースファイルMyA
pl.cから原実行ファイルMyApl.exeを得
る。
In step S201, the source file M
yApl. Read c into memory. MyApl. In c, as shown in the memory content 211, a #define statement is used to specify "MyPosition" as the position specification pattern.
n ”is defined and the work pattern is“ MySign ”.
Is defined. These patterns are examples, and may be arbitrary character strings, numeral strings, or bit strings as long as they are defined in advance. When the compilation is performed in step S202, the position designation pattern and the work pattern are incorporated as binary data, as shown in the memory contents 212. Note that the memory contents 212 are expressed in the same notation as in a general binary editor. The hexadecimal value part indicates the memory contents, and the part on the right side thereof is converted into a valid ASCII code. The same applies to other memory content displays. In step S203, the compilation result is used as the original execution file MyApl. Save as exe on the recording medium. Through the above processing, the source file MyA
pl. c to the original execution file MyApl. Get exe.

【0020】なお、後述する実施の形態4のように機器
情報から実行可否を判別する機能を原実行ファイルMy
Apl.exeが有していれば、機器へインストールす
る前の時点では機器情報が組み込まれていないため、M
yAple.exeを起動しても正常に動作せず、実行
は中止される。
Note that the original execution file My has the function of determining whether or not it can be executed from the device information as in the fourth embodiment described later.
Appl. If exe has it, M is because the device information is not incorporated before it is installed in the device.
yAple. Even if exe is started, it does not operate normally and execution is stopped.

【0021】ステップS204では、ステップS203
で保存した原実行ファイルMyApl.exeをメモリ
に読み込む。メモリ内容214はメモリ内容212に等
しい。ステップS205では、メモリ内容214のすべ
てのビットを1ビット左シフトする。先頭のビットは最
後尾へシフトする。この操作をエンコードと呼ぶ。これ
により、メモリ内容215のような結果が得られる。な
お、ここで述べたエンコードの方法は一例であり、任意
のビットシフト、論理演算を組み合わせてエンコード方
法を定義することが可能である。また、圧縮や冗長性を
もたせても構わない。ステップS206では、エンコー
ド結果を中間実行ファイルMyApl.encとして記
録メディアに保存する。
In step S204, step S203
The original execution file MyApl. Read exe into memory. The memory content 214 is equal to the memory content 212. In step S205, all the bits of the memory content 214 are left-shifted by 1 bit. The first bit shifts to the last bit. This operation is called encoding. This results in a memory content 215. Note that the encoding method described here is an example, and it is possible to define an encoding method by combining arbitrary bit shifts and logical operations. Also, compression or redundancy may be provided. In step S206, the encoding result is converted into the intermediate execution file MyApl. Save as enc on the recording medium.

【0022】以上の処理により、原実行ファイルMyA
pl.exeから中間実行ファイルMyApl.enc
を得る。中間実行ファイルMyApl.encは、ユー
ザにとっては単なるバイナリファイルである。エンコー
ド過程における変換方法を知らない限りこのファイルを
解析して有効な実行ファイルを得ることは非常に困難で
ある。従って、中間実行ファイルAyApl.encを
記録メディアに保存することで、複製抑止効果が得られ
る。
By the above processing, the original execution file MyA
pl. exe to the intermediate execution file MyApl. enc
To get Intermediate execution file MyApl. The enc is just a binary file for the user. It is very difficult to analyze this file and obtain a valid executable file unless you know the conversion method in the encoding process. Therefore, the intermediate execution file AyApl. By storing the enc in the recording medium, a copy inhibition effect can be obtained.

【0023】上記の例では、コンパイルとエンコードを
分けて処理した。具体的にはCコンパイラソフトウェア
とエンコード用ソフトウェアの2つのソフトウェアによ
り処理が実行されている。これらの処理を図3に示すよ
うに1つのソフトウェアで一括して行なうようにしても
良い。図3はエンコード過程の一括処理を示すフローチ
ャートである。ここで、ステップS301、S302、
S303、S304は、それぞれ図2のステップS20
1、S202、S205、S206に相当し、メモリ内
容311、312、313は、それぞれ図2のメモリ内
容211、212、215に相当する。こうすることに
より、図2における原実行ファイルMyApl.exe
が記録メディア上には保存されない。原実行ファイルM
yApl.exeはメモリ内容212に示すように、そ
のバイナリデータから位置指定パターンや著作パターン
が特定できるため、第三者が内容を解析する恐れがある
が、中間実行ファイルMyApl.encからは位置指
定パターンや著作パターンがバイナリファイル中のどこ
にあるのかを判別できず解析が困難であることから、よ
り複製抑止効果を高めることが可能である。
In the above example, compilation and encoding are processed separately. Specifically, the processing is executed by two pieces of software, C compiler software and encoding software. These processes may be collectively performed by one software as shown in FIG. FIG. 3 is a flowchart showing a batch process of the encoding process. Here, steps S301, S302,
S303 and S304 correspond to step S20 of FIG. 2, respectively.
1, S202, S205, S206, and the memory contents 311, 312, 313 correspond to the memory contents 211, 212, 215 of FIG. 2, respectively. By doing so, the original execution file MyApl. exe
Is not saved on the recording medium. Original execution file M
yApl. As shown in the memory contents 212, since the position designation pattern and the work pattern can be specified from the binary data of the exe, a third party may analyze the contents, but the intermediate execution file MyApl. Since enc cannot determine where the position designation pattern or the work pattern is in the binary file and the analysis is difficult, it is possible to further enhance the copy inhibition effect.

【0024】また、販売した機器に、本発明の方法で作
成されたインストーラを組み込んでおけば、その機器で
しかファイルをインストールできない。中間実行ファイ
ルを配布することで、販売した機器にのみファイルがイ
ンストール可能となり、ユーザが独自に調達した機器等
ではインストールできない。よって、実行ファイルの複
製を抑止することができる。
If the sold device incorporates the installer created by the method of the present invention, the file can be installed only on the device. By distributing the intermediate execution file, the file can be installed only on the sold device, and cannot be installed on the device that the user independently procured. Therefore, copying of the execution file can be suppressed.

【0025】あるいは、販売した機器の固有情報を予め
把握しておき、バージョンアップの際などには、その固
有情報を組み込んだ実行ファイルを配布することで、特
定の機器に対してのみ有効なバージョンアップを行なう
ことが可能となる。
Alternatively, by grasping the unique information of the sold device in advance and distributing the execution file including the unique information when upgrading the version, a version effective only for the specific device can be obtained. It is possible to perform up.

【0026】(実施の形態2)本実施の形態では、実施
の形態1における位置指定パターン、著作パターンを有
しないソースファイルに対する複製防止について説明す
る。
(Embodiment 2) In this embodiment, description will be given of copy protection for a source file that does not have the position designation pattern and the work pattern in the first embodiment.

【0027】図4はパターン追加型のエンコード過程を
示すフローチャートである。実施の形態1では、ソース
ファイル中に予め位置指定パターンあるいは著作パター
ンを埋め込んでいたが、本実施の形態では、これらのパ
ターンを有しないソースファイルをコンパイルして得ら
れる原実行ファイルに、これらのパターンを埋め込む方
法を示す。なお、図4ではソースファイルをコンパイル
して原実行ファイルを得る過程は省略している。
FIG. 4 is a flowchart showing a pattern addition type encoding process. In the first embodiment, the position specification pattern or the work pattern is embedded in the source file in advance. However, in the present embodiment, the source execution file obtained by compiling the source file having no such pattern does not contain these patterns. Shows how to embed a pattern. In FIG. 4, the process of compiling the source file to obtain the original execution file is omitted.

【0028】ステップS401では、原実行ファイルM
yApl.exeをメモリに読み込む。メモリ内容41
1はこのときのメモリ内容の一例である。ステップS4
02では、メモリ内容412に示すように、ステップS
401で読み込んだ内容の最後尾に位置パターンを付加
する。さらに、ステップS403では、メモリ内容41
3に示すように最後尾に著作パターンを付加する。ステ
ップS404では、メモリ内容413のすべてのビット
を1ビット左シフトし、結果としてメモリ内容414を
得る。先頭のビットは最後尾へシフトする。なお、この
エンコード方法は一例であり、他の方法でエンコードし
ても構わない。ステップS405では、メモリ内容41
4を中間実行ファイルMyApl.encとして記録メ
ディアへ保存する。
In step S401, the original execution file M
yApl. Read exe into memory. Memory contents 41
1 is an example of the memory contents at this time. Step S4
02, as shown in the memory content 412, step S
A position pattern is added to the end of the contents read in 401. Further, in step S403, the memory contents 41
As shown in 3, a work pattern is added to the end. In step S404, all bits of memory content 413 are left-shifted by 1 bit, and as a result, memory content 414 is obtained. The first bit shifts to the last bit. It should be noted that this encoding method is an example, and other methods may be used for encoding. In step S405, the memory contents 41
4 is an intermediate execution file MyApl. Save as enc on the recording medium.

【0029】以上により、実施の形態1と同様の効果を
もつ中間実行ファイルを得ることが可能である。
As described above, it is possible to obtain the intermediate execution file having the same effect as that of the first embodiment.

【0030】(実施の形態3)本実施の形態では、複製
されたソフトウェアがどのハードウェアから複製された
かを検出する場合について説明する。
(Embodiment 3) In this embodiment, a case will be described in which from which hardware the copied software is copied.

【0031】図1におけるデコード過程について説明す
る。
The decoding process in FIG. 1 will be described.

【0032】中間実行ファイル3は、実施の形態1で説
明したエンコード過程で得られたファイルであり、位置
指定パターン31と著作パターン32が埋め込まれてい
る。原実行ファイル4は、中間実行ファイル3に所定の
変換を施すデコードにより得られるファイルであり、そ
の内部に位置指定パターン41と著作パターン42が埋
め込まれている。原実行ファイル4は原実行ファイル2
と全く同一のファイルである。実行ファイル5は、この
ファイルが使用される機器にインストールされるファイ
ルであり、当該機器の機器情報と著作パターン42から
生成された実行可否パターン51と、著作パターン52
が埋め込まれている。以上の過程をデコード過程と呼
ぶ。ただし、インストール過程を含むものとする。
The intermediate execution file 3 is a file obtained in the encoding process described in the first embodiment, in which the position designation pattern 31 and the work pattern 32 are embedded. The original execution file 4 is a file obtained by decoding the intermediate execution file 3 by performing a predetermined conversion, and the position designation pattern 41 and the work pattern 42 are embedded therein. Original execution file 4 is original execution file 2
And the file is exactly the same. The execution file 5 is a file that is installed in the device in which this file is used, and includes an executability pattern 51 and a copyright pattern 52 generated from the device information of the device and the copyright pattern 42.
Is embedded. The above process is called a decoding process. However, the installation process is included.

【0033】次に、デコード過程の詳細について具体例
をあげて説明する。図5はデコード過程の処理を示すフ
ローチャートである。理解の一助とするため、フローチ
ャート右側には、各処理でのメモリ内容の概略を示し
た。
Next, details of the decoding process will be described with a specific example. FIG. 5 is a flowchart showing the process of the decoding process. To facilitate understanding, the right side of the flowchart shows an outline of the memory contents in each process.

【0034】ステップS501では、中間実行ファイル
MyApl.encをメモリへ読み込む。中間実行ファ
イルは、例えば実施の形態1で得られたものであり、メ
モリ内容511は図2のメモリ内容215と同一であ
る。ステップS502では、メモリ内容511のすべて
のビットを1ビット右シフトする。最後尾のビットは先
頭へシフトする。この操作をデコードと呼ぶ。これによ
り、メモリ内容512のような結果が得られる。これ
は、図2におけるメモリ内容212あるいはメモリ内容
214と同一であり、メモリ上で原実行ファイルMyA
pl.exeが復元されたことを意味する。なお、ここ
で述べたデコードの方法は一例であり、実施の形態1の
エンコードの際に行なった演算の逆演算と等価であれ
ば、任意のビットシフト、論理演算を組み合わせてデコ
ード方法を定義することが可能である。結果として原実
行ファイルMyApl.exeが復元できれば良い。
In step S501, the intermediate execution file MyApl. Read enc into memory. The intermediate execution file is obtained, for example, in the first embodiment, and the memory content 511 is the same as the memory content 215 of FIG. In step S502, all the bits of the memory content 511 are right-shifted by 1 bit. The last bit is shifted to the beginning. This operation is called decoding. This results in a memory content 512. This is the same as the memory content 212 or the memory content 214 in FIG. 2, and the original execution file MyA is stored in the memory.
pl. This means that exe has been restored. Note that the decoding method described here is an example, and if it is equivalent to the inverse operation of the operation performed at the time of encoding in the first embodiment, an arbitrary bit shift and logical operation are combined to define the decoding method. It is possible. As a result, the original execution file MyApl. It is sufficient if exe can be restored.

【0035】ステップS503では、インストール対象
機器に装着されているネットワークインタフェースのM
AC(Media Access Control)アドレスを取得する。MA
Cアドレスはネットワークインタフェースそれぞれに割
り当てられた固有の番号である。MACアドレス513
は16進数で表記している。なお、機器情報はMACに
限らず、インストール対象のハードウェアが保持する固
有の機器情報であればよい。例えば、当該システムある
いはOS等を含むソフトウェアが保持する固有情報、製
品のシリアル番号、ディスクのID番号などでもよい。
ステップS504では、ステップS503で取得したM
ACアドレス513とメモリ内容512に埋め込まれた
著作パターン「MySign」を用いて演算514のよ
うな演算を行なって実行可否パターンを得る。なお、演
算514は一例であり、ビットシフト、論理演算、その
他の任意の演算を定義しても良い。
In step S503, the M of the network interface installed in the device to be installed is installed.
Acquires an AC (Media Access Control) address. MA
The C address is a unique number assigned to each network interface. MAC address 513
Is expressed in hexadecimal. The device information is not limited to the MAC, and may be unique device information held by the hardware to be installed. For example, the unique information held by the system or software including the OS, the product serial number, the disc ID number, or the like may be used.
In step S504, the M acquired in step S503
Using the AC address 513 and the copyrighted pattern “MySign” embedded in the memory content 512, an operation like operation 514 is performed to obtain an executability pattern. Note that the operation 514 is an example, and bit shift, logical operation, and other arbitrary operations may be defined.

【0036】ステップS505では、メモリ内容512
の位置指定パターン「MyPosition」の位置に
ステップS504で得られた実行可否パターンを上書き
して埋め込む。これによりメモリ内容515を得る。ス
テップS506では、メモリ内容515を実行ファイル
MyApl.exeとしてインストール対象機器の記録
メディアに保存することでインストールを行なう。な
お、この際、実行ファイルに任意のタイムスタンプを与
えてもよい。また、実行可否パターンの生成時において
日付や時刻情報を用いて生成することにより、有効期間
の制限をかけることも可能である。
In step S505, the memory contents 512
The executability pattern obtained in step S504 is overwritten and embedded in the position of the position designation pattern "MyPosition" of. This gives the memory content 515. In step S506, the memory contents 515 are stored in the execution file MyApl. Installation is performed by saving it as exe in the recording medium of the installation target device. At this time, an arbitrary time stamp may be given to the execution file. In addition, it is possible to limit the valid period by generating the executability pattern by using the date and time information.

【0037】以上の処理により、中間実行ファイルMy
Apl.encから実行ファイルMyApl.exeを
得る。ハードウェア固有の情報が実行ファイルMyAp
l.exeに埋め込まれることになり、ソフトウェアと
ハードウェアがセットとなる。よって、ソフトウェアの
みが複製されても、どのハードウェアのものから複製さ
れたかを検出することが可能となる。
By the above processing, the intermediate execution file My
Appl. Enc to execute the file MyApl. Get exe. Hardware specific information is executable file MyAp
l. It will be embedded in exe, and software and hardware will be a set. Therefore, even if only the software is copied, it is possible to detect from which hardware the copy is made.

【0038】(実施の形態4)本実施の形態では、複製
された実行ファイルを検出し、実効ファイルの動作を中
止する場合について説明する。
(Embodiment 4) In this embodiment, a case will be described in which a duplicated executable file is detected and the operation of the effective file is stopped.

【0039】図6は実行ファイルの処理を示すフローチ
ャートである。以下、一例をあげて実行ファイルの処理
を詳細に説明する。
FIG. 6 is a flow chart showing the processing of the execution file. Hereinafter, the processing of the execution file will be described in detail with an example.

【0040】実行ファイルには、メモリ内容613に示
すように、実施の形態1及び実施の形態3で示した方法
で実行可否パターンが埋め込まれている。まず、ステッ
プS601では、実行ファイルが起動すると、実行して
いるハードウェアの機器情報を取得する。この場合、M
ACアドレス611を取得する。ステップS602で
は、MACアドレス611とメモリ内容613に示す実
行ファイルに埋め込まれている著作パターンから演算6
12を行い、内部的に実行可否パターンを生成する。演
算612は実施の形態3で用いられた演算514と同一
である。ステップ603では、内部的に生成された実行
可否パターンとメモリ内容613に示す実行ファイルに
埋め込まれている実行可否パターンとを比較する。これ
らが一致した場合は正常に動作を継続する。一致しなけ
れば、実行ファイルがセットとなっていないハードウェ
ア上で動作していることとなるので、実行ファイルが複
製されたと判断し、実行を中止する。その際、ステップ
604のようにユーザに対して警告を表示してもよい。
As shown in the memory contents 613, the execution file is embedded with the executability pattern by the method shown in the first and third embodiments. First, in step S601, when the execution file is activated, the device information of the hardware being executed is acquired. In this case, M
The AC address 611 is acquired. In step S602, calculation 6 is performed from the work pattern embedded in the execution file shown in the MAC address 611 and the memory content 613.
12 is performed and an executability pattern is internally generated. Calculation 612 is the same as calculation 514 used in the third embodiment. In step 603, the internally-executable executability pattern is compared with the executability pattern embedded in the execution file shown in the memory content 613. If they match, the operation continues normally. If they do not match, it means that the executable file is operating on hardware that is not included in the set. Therefore, it is determined that the executable file has been duplicated and the execution is stopped. At that time, a warning may be displayed to the user as in step 604.

【0041】以上により、複製された実行ファイルを検
出できるとともに、実行ファイルの動作を中止すること
が可能となる。これにより、複製抑止効果がさらに向上
する。
As described above, the duplicated executable file can be detected and the operation of the executable file can be stopped. As a result, the copy suppression effect is further improved.

【0042】なお、本実施の形態の処理を原実行ファイ
ルに適用することにより、実施の形態1で述べたよう
に、インストールを行なわない状態で原実行ファイルを
実行することが不可能となり、効果的な複製抑止とな
る。
By applying the processing of the present embodiment to the original execution file, it becomes impossible to execute the original execution file without the installation as described in the first embodiment, and the effect is obtained. It will be an effective copy control.

【0043】(実施の形態5)本実施の形態では、リネ
ームによる複製を防止する場合について説明する。
(Embodiment 5) In this embodiment, description will be given of a case of preventing duplication by renaming.

【0044】インストール済みの実行ファイルのファイ
ル名を変更(リネーム)することにより、販売側が提供し
たものとは異なるソフトウェアとして動作させることが
可能である。その際、コンピュータ上の(具体的にはフ
ァイルシステム内の)どこにそのファイルがあるかを発
見することは、特にファイル数が多い場合、困難であ
る。これを回避するために、実行ファイルはリネームさ
れると実行できないようにしておくことが望ましい。
By changing (renaming) the file name of the installed executable file, it is possible to operate as software different from that provided by the seller. In that case, it is difficult to find where the file is located on the computer (specifically, in the file system), especially when the number of files is large. In order to avoid this, it is desirable that the executable file cannot be executed when it is renamed.

【0045】図7はリネーム防止処理を示すフローチャ
ートである。
FIG. 7 is a flowchart showing the rename prevention process.

【0046】実行ファイルは、起動されるとステップS
701で実行ファイル自身のファイル名を取得する。フ
ァイル名は、一般的には実行されている機器のファイル
システムに登録されているファイル名である。実行ファ
イルには、その内部に実行ファイル自身のファイル名が
埋め込まれており、ステップS702でこのファイル名
とステップS701で取得したファイル名を比較する。
一致した場合は正常に動作を継続する。一致しなけれ
ば、実行ファイルがリネームされている、すなわち、複
製されていると判断して、実行を中止する。その際、ス
テップ703のようにユーザに対して警告を表示しても
よい。
When the execution file is started, the step S
In 701, the file name of the execution file itself is acquired. The file name is generally a file name registered in the file system of the device being executed. The execution file has the file name of the execution file itself embedded therein, and this file name is compared with the file name acquired in step S701 in step S702.
If they match, the operation continues normally. If they do not match, it is determined that the executable file has been renamed, that is, duplicated, and execution is stopped. At that time, a warning may be displayed to the user as in step 703.

【0047】なお、実施の形態1〜4による方法で作成
されていないソフトウェアであっても、本実施の形態に
よるリネーム防止機能が組み込まれていれば、リネーム
によるファイルの複製を防止することが可能である。
Even if the software is not created by the method according to the first to fourth embodiments, it is possible to prevent the file duplication by the rename if the rename prevention function according to the present embodiment is incorporated. Is.

【0048】以上により、ファイル名の変更による実行
ファイルの複製を抑止できる。
As described above, the copying of the execution file due to the change of the file name can be suppressed.

【0049】なお、本発明では、各実施の形態を独立に
説明したが、組合せて実行してもよい。
In the present invention, the respective embodiments have been described independently, but they may be combined and executed.

【0050】[0050]

【発明の効果】以上、述べたように、本発明によれば、
原実行ファイルを実行不可能にすると共に、ユーザ等の
第三者が内容を解析できないようにすることができ、フ
ァイル複製の抑止効果が得られる。
As described above, according to the present invention,
In addition to making the original execution file unexecutable, it is possible to prevent a third party such as a user from analyzing the contents, and the effect of suppressing file duplication is obtained.

【0051】また、ソフトウェアのみが複製されてもど
のハードウェアのものから複製されたかを検出すること
が可能となる。
Further, even if only software is copied, it is possible to detect from which hardware the copy is made.

【0052】また、複製された実行ファイルを検出でき
るとともに、実行ファイルの動作を中止することが可能
となる。
Further, the duplicated executable file can be detected and the operation of the executable file can be stopped.

【0053】さらに、リネームによる複製を抑止でき
る。
Furthermore, it is possible to suppress the duplication by renaming.

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

【図1】本発明の実施の形態1における実行ファイルの
作成過程を示す概略図
FIG. 1 is a schematic diagram showing a process of creating an execution file according to the first embodiment of the present invention.

【図2】同エンコード過程の処理を示すフローチャートFIG. 2 is a flowchart showing a process of the encoding process.

【図3】同エンコード過程の一括処理を示すフローチャ
ート
FIG. 3 is a flowchart showing batch processing of the encoding process.

【図4】本発明の実施の形態2におけるパターン追加型
のエンコード過程を示すフローチャート
FIG. 4 is a flowchart showing a pattern addition type encoding process according to the second embodiment of the present invention.

【図5】本発明の実施の形態3におけるデコード過程の
処理を示すフローチャート
FIG. 5 is a flowchart showing a process of a decoding process according to the third embodiment of the present invention.

【図6】本発明の実施の形態4における実行ファイルの
処理を示すフローチャート
FIG. 6 is a flowchart showing processing of an executable file according to the fourth embodiment of the present invention.

【図7】本発明の実施の形態5におけるリネーム防止処
理を示すフローチャート
FIG. 7 is a flowchart showing rename prevention processing according to the fifth embodiment of the present invention.

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

1 ソースファイル 2、4 原実行ファイル 3 中間実行ファイル 5 実行ファイル 11、21、31、41、51 位置指定パターン 12、22、32、42、52 著作パターン 1 source file 2, 4 original execution file 3 Intermediate execution file 5 executable files 11, 21, 31, 41, 51 Position designation pattern 12, 22, 32, 42, 52 Copyright patterns

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 ソフトウェアの実行ファイルに、少なく
とも前記実行ファイルの実行可否を示す実行可否パター
ンの埋め込み位置を指定する位置指定パターン、また
は、所定の著作パターンのいずれかを埋め込み、前記実
行ファイルのビット配列を所定の演算で変換することを
特徴とするソフトウェア複製防止方法。
1. A bit of the execution file, wherein at least one of a position designating pattern for designating an embedding position of an executability pattern indicating the executability of the execution file or a predetermined work pattern is embedded in the execution file of the software. A method for preventing software duplication, which comprises converting an array by a predetermined operation.
【請求項2】 請求項1記載のソフトウェア複製防止方
法で生成された実行ファイルのビット配列を所定の逆演
算で元のビット配列に戻し、前記実行ファイルをインス
トールする機器の機器情報を取得し、前記機器情報と前
記実行ファイルに埋め込まれている所定の著作パターン
から前記実行ファイルの実行可否を示す実行可否パター
ンを生成し、前記実行可否パターンを前記実行可否パタ
ーンの埋めこみ位置を示す位置指定パターンに従って埋
め込むことを特徴とするソフトウェア複製防止方法。
2. The bit array of the execution file generated by the software duplication prevention method according to claim 1 is returned to the original bit array by a predetermined inverse operation, and device information of a device in which the execution file is installed is acquired, An executability pattern indicating executability of the execution file is generated from the device information and a predetermined work pattern embedded in the execution file, and the executability pattern is generated according to a position designation pattern indicating an embedded position of the executability pattern. A software copy prevention method characterized by embedding.
【請求項3】 ソフトウェアの実行ファイルがインスト
ールされている機器の機器情報を取得し、前記機器情報
と前記実行ファイルに埋め込まれている所定のパターン
との演算結果と、前記実行ファイルに埋め込まれている
前記実行ファイルの実行可否を示す実行可否パターンと
を比較して、パターンが一致しない場合には前記ソフト
ウェアが複製されたと判断することを特徴とするソフト
ウェア複製防止方法。
3. The device information of the device in which the execution file of the software is installed is acquired, and the calculation result of the device information and the predetermined pattern embedded in the execution file and the embedded result in the execution file. A method for preventing software duplication, comprising comparing an executability pattern indicating whether or not the execution file is present, and determining that the software has been duplicated when the patterns do not match.
【請求項4】 ソフトウェアの実行ファイルがインスト
ールされている機器より前記実行ファイルのファイル名
を取得し、取得したファイル名と前記実行ファイルに埋
め込まれている前記実行ファイルのファイル名を比較し
て、ファイル名が一致しない場合には前記ソフトウェア
が複製されたと判断することを特徴とするソフトウェア
複製防止方法。
4. The file name of the execution file is acquired from the device in which the execution file of the software is installed, and the acquired file name is compared with the file name of the execution file embedded in the execution file, A method of preventing software duplication, wherein the software is judged to have been duplicated when the file names do not match.
JP2001238758A 2001-08-07 2001-08-07 Method for preventing copy of software Pending JP2003050640A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001238758A JP2003050640A (en) 2001-08-07 2001-08-07 Method for preventing copy of software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001238758A JP2003050640A (en) 2001-08-07 2001-08-07 Method for preventing copy of software

Publications (1)

Publication Number Publication Date
JP2003050640A true JP2003050640A (en) 2003-02-21

Family

ID=19069623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001238758A Pending JP2003050640A (en) 2001-08-07 2001-08-07 Method for preventing copy of software

Country Status (1)

Country Link
JP (1) JP2003050640A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235076A (en) * 2004-02-23 2005-09-02 Fujitsu Ltd Computer system, central device, and program execution method
JP2006023839A (en) * 2004-07-06 2006-01-26 Toshiba Corp File management device and file management method
GB2418498A (en) * 2004-09-23 2006-03-29 Farhan Khan Protecting software code by creating a unique fingerprint
JP2006106998A (en) * 2004-10-04 2006-04-20 Yokogawa Electric Corp Means for saving and loading plc configuring module
KR100636162B1 (en) * 2004-08-25 2006-10-18 삼성전자주식회사 Protection method for software and device thereof
JP2009543244A (en) * 2006-07-12 2009-12-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and system for obfuscating cryptographic functions

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235076A (en) * 2004-02-23 2005-09-02 Fujitsu Ltd Computer system, central device, and program execution method
JP4514473B2 (en) * 2004-02-23 2010-07-28 富士通株式会社 Computer system, central apparatus, and program execution method
US7865961B2 (en) 2004-02-23 2011-01-04 Fujitsu Limited Computer system, central unit, and program execution method
JP2006023839A (en) * 2004-07-06 2006-01-26 Toshiba Corp File management device and file management method
KR100636162B1 (en) * 2004-08-25 2006-10-18 삼성전자주식회사 Protection method for software and device thereof
GB2418498A (en) * 2004-09-23 2006-03-29 Farhan Khan Protecting software code by creating a unique fingerprint
GB2418498B (en) * 2004-09-23 2009-08-05 Farhan Khan Software mapping
JP2006106998A (en) * 2004-10-04 2006-04-20 Yokogawa Electric Corp Means for saving and loading plc configuring module
JP4582399B2 (en) * 2004-10-04 2010-11-17 横河電機株式会社 PLC configuration module save means
JP2009543244A (en) * 2006-07-12 2009-12-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and system for obfuscating cryptographic functions

Similar Documents

Publication Publication Date Title
Hong et al. Behavioral synthesis techniques for intellectual property protection
JP2007148575A (en) Program, method, and device for preparing protected execution program
US20070143228A1 (en) Licensing matrix
US20080288921A1 (en) Transformations for Software Obfuscation and Individualization
KR20070086517A (en) Watermarking computer program code
KR20070086522A (en) Watermarking computer code by equivalent mathematical expressions
CN111512307B (en) Compiling apparatus and method
US20090044016A1 (en) Protecting a dsp algorithm
US9607133B1 (en) Method and apparatus for watermarking binary computer code
JP2007156861A (en) Apparatus and method for protecting confidential information, and program
JP2003050640A (en) Method for preventing copy of software
JP4517636B2 (en) Execution program creation method, function program, and function program execution method
JP2007316938A (en) License management program, method for controlling use of software, license check program, and license check setup program
US20080301654A1 (en) Program processing apparatus, program processing method and computer readable information recording medium
KR101604891B1 (en) Method for detection software piracy and theft using partial information of executable file and apparatus using the same
CN102117394A (en) Method and device for detecting whether a computer file has been copied and method and device for enabling such detection
EP2012269B1 (en) Method for embedding a multi-bit digital watermark in media data
US8141045B2 (en) Automatically identifying the source of copied software
US6931634B2 (en) Encrypted compiler
Shin et al. Data Hiding in Windows Executable Files
KR20140089044A (en) Method of detecting software similarity using feature information of executable files and apparatus therefor
JP4125995B2 (en) Data conversion system
JP2007172526A (en) Information processing system and information processing method
US20080046875A1 (en) Program Code Identification System and Method
Sengupta et al. Automated low cost scheduling driven watermarking methodology for modern CAD high-level synthesis tools