JPS62182928A - プロテクト方式 - Google Patents

プロテクト方式

Info

Publication number
JPS62182928A
JPS62182928A JP61025332A JP2533286A JPS62182928A JP S62182928 A JPS62182928 A JP S62182928A JP 61025332 A JP61025332 A JP 61025332A JP 2533286 A JP2533286 A JP 2533286A JP S62182928 A JPS62182928 A JP S62182928A
Authority
JP
Japan
Prior art keywords
program
response signal
port
data
period
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
JP61025332A
Other languages
English (en)
Inventor
Osamu Onodera
修 小野寺
Ryuichi Yamaki
八巻 龍一
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.)
BOOSUTETSUKU KK
Original Assignee
BOOSUTETSUKU KK
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 BOOSUTETSUKU KK filed Critical BOOSUTETSUKU KK
Priority to JP61025332A priority Critical patent/JPS62182928A/ja
Publication of JPS62182928A publication Critical patent/JPS62182928A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (発明の技術分野〕 本発明はソフトウェアプログラムの不当な使用、例えば
違法コピーによる使用を効果的に防止し得るプロテクト
方式に関する。
〔発明の技術的背景とその問題点〕
近時、ソフトウェアの飛躍的な発展と成長、およびその
多様化に伴い、そのソフトウェアプログラムを不当に複
製する利用者が台頭している。このことは、ソフトウェ
アプログラムに関する著作権の問題を始めとして、正当
なソフトウェア開発の大きな妨げとなっている。
そこで最近では、そのプログラム自体に不当なプログラ
ムのコピーを防ぐ為のプロテクトを組込むことが行われ
ている。然し乍ら、このプロテクトを外すことは不可能
ではなく、不当なコピーツールの開発すら行われている
。この為、現状では新しいプロテクトの開発と、そのプ
ロテクトを外す為の不正なプログラム解析とが交互に行
われていると云っても過言ではない。
〔発明の目的〕
本発明はこのような事情を考慮してなされたもので、そ
の目的とするところは、ソフトウェアプログラムの不当
な使用、例えば違法コピーによる使用を効果的に防止し
得るプロテクト方式を提供することにある。
〔発明の概要〕
本発明はプログラム実行装置にて実行されるプログラム
に、該プログラム実行装置のポートに予め設定されたデ
ータを出力したときに得られる応答信号の周期が予め設
定された周期であることを判定して上記プログラムの実
行を制御するチェックルーチンを組込み、一方、前記プ
ログラム実行装置のポートに接続され、予め設定された
パターンデータが与えられたときそれに対する応答信号
を予め設定された周期で発生する信号発生回路を上記プ
ログラムに対応して設けるようにしたものである。
〔発明の効果〕
かくして本発明によれば、プログラム実行装置にて実行
されるプログラムは、該プログラム実行装置のポートに
、所定の出力データに対応して所定の周期で与えられる
信号発生回路からの応答を検出しない限り動作しないの
で、仮えプログラムの不正なコピーが行われたとしても
、上記プログラムに対応した信号発生回路を準備しない
限り、所定周期の応答を得ることができないので、その
不正な使用を効果的に防止することができる。
しかもポートへの出力データに応じて信号発生回路が発
生する応答の周期はプログラムに対応して任意に設定可
能なものであるから、同一仕様の信号発生回路の再現は
甚だ困難である。従って、プログラムの不正コピーを防
止する為に該プログラムに組込まれるプロテクトを効果
的に支援して、その不正使用を効果的に防止することが
可能となる等の実用上多大なる効果が奏せられる。
〔実施例〕
以下、図面を参照して本発明の一実施例につき説明する
第1図は実施例方式の概念を示す図で、■はディスクや
テープ等のプログラム記憶媒体(図示せず)からロード
されたプログラム2を実行するプログラム実行装置、3
は上記プログラム2に対応して設けられ、所定のパター
ンデータを受けたときに所定の周期の応答信号を発生し
て上記プログラム実行装置lのポート、例えばプリンタ
ポート4に与える信号発生回路である。
上記プログラム実行装置lは、プリンタを接続する為の
プリンタポートを備えたパーソナル・コンピュータの本
体からなり、このようなパーソナル・コンピュータのプ
リンタポート4に前記信号発生回路3が接続されること
になる。
しかして信号発生回路3は、例えば第2図に示すように
2つのTTLナントゲート5a、 5bを用いて構成さ
れたマルチバイブレータを主体とし、前記プリンタポー
ト4に接続される接続ポート7に与えられる信号をスイ
ッチ8a、 6b、〜ehを介して入力して動作し、そ
の出力を応答信号(B U S Y)として前記接続ポ
ート7に出力するようにして構成される。
上記各スイッチ6a、 8b、〜8hは、前記プログラ
ム2に対応して選択的にセットされるものであり、これ
によって成るビットパターンのデータが接続ポート7に
入力されたとき、前記マルチバイブレークが作動して所
定の周期の応答信号が発生されるようになっている。尚
、この応答信号を発生するマルチバイブレークの発振周
期は、スイッチ8a。
8bにより選択的に切替えられて前記マルチバイブレー
タのフィードバックループに介挿されるコンデンサc1
. c2. c3、および抵抗rl、 r2. r3.
 r4とによって定まる時定数により選択的に設定され
るものとなっている。このスイッチ8a、 8bの選択
的な投入によってその発振周期が前記プログラム2に対
応して固有に設定されるようになっている。
このようにして上記信号発生回路3は前記プログラム2
に対応して、前記スイッチ8a、 8b、〜ahの選択
によって定められた端子にデータが入力されたとき、例
えば第4図に示すような周期で応答信号を発生し、これ
を前記プリンタポート4がらプログラム実行装置1に返
送するものとなっている。
尚、プログラム実行装置1がプリンタポート4に出力す
るデータは、プリンタを駆動する為の成るビットパター
ンをなす電圧信号であることから、前記スイッチ8a、
 6b、〜6hに代えてノーマリ・オン、ノーマリ・オ
フのリードリレー組合わせて接続ポート7からのデータ
入力部を構成し、特定のパターンデータが与えられたと
きにのみ前記マルチバイブレークが作動するように構成
するようにしても良い。
一方、プログラム実行装置1にロードされて実行される
プログラム2には、例えば第3図に示すようなパターン
データのチェックルーチンが組込まれている。
このチェックルーチンは、例えばメインプログラムの実
行開始に先立って実行されるもので、前記プリンタポー
ト4に予め設定したパターンのデータを出力して実行さ
れる。
この出力データに対してプリンタポート4に得られる応
答信号のチェックは、先ずループカウンタをクリアしく
ステップa)、前記プリンタポート4に与えられる応答
信号を読込み (ステップb)、これをサンプリングし
てセーブする(ステップC)。この処理を、例えば50
015の待ち時間を経(ステップd)、前記ループカウ
ンタをインクリメントして(ステップe)、該ループカ
ウンタの値が(800)になるまで繰返し行う(ステッ
プf)。
これによってプリンタポート4に得られる応答信号が5
00μs毎に600サンプルに亙って収集される。
しかるのち、前記ループカウンタを再びクリアする(ス
テップg)と共に、周期チェックのエラー数を計測する
エラーカウンタをクリアしくステップh)、次のように
して前記応答信号の周期のチェックが行われる。
即ち、前述したサンプリングデータを順次読出しくステ
ップl)%その周期を調べる(ステップj)。そして検
出される応答信号の周期が所定の周期範囲内、つまり設
定された許容範囲内に存在するか否かを調べる(ステッ
プk)。この周期のニックは、応答信号の変化のパター
ンが予め設定した、例えば第4図に示す周期のパターン
となっているか否かをを判定することによって行われる
そして、合格している場合には前記ループカウンタをイ
ンクリメントしくステップノ)、その値が(30)’に
達するまで繰返して周期のチツエツクを行う(ステップ
m)。
尚、上記周期のチェックにおいて、許容範囲外の周期が
検出された場合には、前記エラーカウンタをインクリメ
ントしくステップn)、そのエラー回数が3回目に達し
たか否かを判定しながら(ステップO)、このパターン
データの周期チェックを繰返して実行する。そして周期
チェックに3回以上の誤りが検出される場合には、前記
プログラム2に対応したパターン発生回路3から得られ
たパターンデータではないと判定して、該プログラム2
の実行を停止する。
このようにしてプリンタポート4に与えられる応答信号
の周期をチェックし、その周期が正規のものであるか否
かを判定し、合格結果が得られた場合にのみ前記プログ
ラム2の実行を許可している。
かくして本方式によれば、プログラムが不正にコピーさ
れたとしても、そのオリジナルなプログラム2に対応し
て準備された信号発生回路3をプリンタポート4に接続
し、該プログラム2に対応付けて設定した所定のパター
ンデータを受けて作動する信号発生回路3が所定の周期
の応答信号をプリンタポート4に与えない限り、プログ
ラム実行装置lにロードされたプログラムをラン(実行
)しないことになる。
またプリンタポート4に接続される信号発生回路3に与
えるパターンデータを順次変化させながら、そのパター
ンデータに対する応答信号を検出し、上記パターンデー
タの変化による応答信号の周期の変化を検出して、その
プロテクトチェックを行うことも可能である。このよう
にすれば、プリンタポート4に出力するパターンデータ
の組合せと、これによって変化する応答信号の周期との
組合せとして更に高度なプロテクトチェックを行い、そ
のプロテクト機能の向上を図ることが可能となる。
故にプログラム2の不正なコピーを防止するプログラム
自体のプロテクトを効果的に支援し、不正にコピーされ
たプログラムの実行を効果的に防止することが可能とな
る。
尚、信号発生回路3はプログラムに対応して設定された
パターンデータを受けて、該プログラムに対応して設定
される周期で出力する如く構成されるものであるから、
一般的にはこれを複製することは非常に困難である。し
かし、信号発生回路3の機能を解析することかできれば
、試行錯誤的にそのパターンと周期を解明することは可
能である。従ってこのような点を配慮して、例えばプリ
ンタポート4から得られるデータの誤りを検出した場合
、自らのプログラムを破壊しながら該プログラムを実行
するようなプロテクトを組込むようにしておけば好都合
である。
尚、本発明は上述した実施例に限定されるものではない
。ここでは与えられた応答信号をサンプリングしてセー
ブした後、その周期をチェックするようにしたが、例え
ば第5図に示すように応答信号に対して準備されたロー
レベルカウンタとハイレベルカウンタとをそれぞれクリ
アしたのち、その応答信号がローレベルか否かを判定し
、ローレベルおよびハイレベルの連続回数を計数しなが
ら、その周期のチェックを行うようにしても良い。
このようなチェックルーチンを組めば、メインプログラ
ムの実行時に、それに並行して応答信号の周期のチェッ
クを行うことが可能となる。またここではプリンタポー
ト4を利用して所定のパターンデータを出力し、これに
対する応答信号を得るようにしたが、他の出力ポートを
利用してプロテクトチェックを行うようにしても良い。
また実施例ではスイッチを用いてパターンおよびその周
期を定めるようにしたが、これらはプログラムに対応し
て固定的に定められるものであるから、例えばマルチバ
イブレークの出力端と接続ポートの各端子とを結ぶジャ
ンパー線の選択的な切断等によって固定的にそのパター
ンを定めるようにしても良い。また前述したようにリレ
ーを用いた論理回路を構成し、所定のパターンが入力さ
れたときにのみマルチバイブレータが作動するように構
成しても良い。要するに本発明はその要旨を逸脱しない
範囲で種々変形して実施することができる。
【図面の簡単な説明】
図は本発明の一実施例方式を示すもので、第1図はその
プロテクトの概念を示す図、第2図は信号発生回路の構
成例を示す図、第3図はプログラムに組込まれる応答信
号の周期チェックルーチンの例を示す図、第4図は応答
信号の周期を示す図、第5図はプログラムに組込まれる
応答信号の周期チェックルーチンの他の例を示す図であ
る。 l・・・プログラム実行装置、2・・・プログラム、3
・・・信号発生回路、4・・・プリンタポート。 出願人代理人 弁理士 鈴江武彦 第1図 第2 図

Claims (1)

    【特許請求の範囲】
  1. プログラム実行装置にて実行されるプログラムと、この
    プログラムに組込まれて上記プログラム実行装置のポー
    トに予め設定したデータを出力し、この出力データに対
    する応答信号の周期を検出して上記プログラムの実行を
    制御するチェックルーチンと、上記ポートに接続されて
    該ポートから予め設定されたデータが与えられたとき、
    予め設定された周期の応答信号を発生する信号発生回路
    とからなることを特徴とするプロテクト方式。
JP61025332A 1986-02-07 1986-02-07 プロテクト方式 Pending JPS62182928A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61025332A JPS62182928A (ja) 1986-02-07 1986-02-07 プロテクト方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61025332A JPS62182928A (ja) 1986-02-07 1986-02-07 プロテクト方式

Publications (1)

Publication Number Publication Date
JPS62182928A true JPS62182928A (ja) 1987-08-11

Family

ID=12162976

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61025332A Pending JPS62182928A (ja) 1986-02-07 1986-02-07 プロテクト方式

Country Status (1)

Country Link
JP (1) JPS62182928A (ja)

Similar Documents

Publication Publication Date Title
US4791356A (en) In-circuit testing system
JPS62182928A (ja) プロテクト方式
JPS62182927A (ja) プロテクト方式
TW255021B (en) Testing data processing apparatus
JPS5552515A (en) Pcm signal processor
JPH03235135A (ja) プログラムの自動検査方式
JPS58159132A (ja) キ−入力判別方法
JPS6010363A (ja) メモリアドレス指定方式
JPS6314556A (ja) 保守用制御システム
Williamson et al. What is Programming?
Wilson The interfacing of two digital computers.
JPS54118751A (en) Double-system computer system
JPS5537634A (en) Integrated-circuit device
JPH0573437A (ja) メモリパリテイ回路
JPS5694449A (en) Trace system in computer
JPS5542343A (en) Control system for memory unit
JPH09288584A (ja) 状態検出回路
Holcombe et al. Complete test generation for Extreme Programming
JPS6488750A (en) Test method for information processor
JPS6113609B2 (ja)
JPS6250860B2 (ja)
JPS5478928A (en) Controller for peripheral memory unit
JPS55127635A (en) Interruption input interface
JPS57168354A (en) Output system of compile list
JPS63103985A (ja) 集積回路素子検査装置