JPH0540657A - 動的トレーサ - Google Patents

動的トレーサ

Info

Publication number
JPH0540657A
JPH0540657A JP3281961A JP28196191A JPH0540657A JP H0540657 A JPH0540657 A JP H0540657A JP 3281961 A JP3281961 A JP 3281961A JP 28196191 A JP28196191 A JP 28196191A JP H0540657 A JPH0540657 A JP H0540657A
Authority
JP
Japan
Prior art keywords
tracer
software
real
circuit
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
JP3281961A
Other languages
English (en)
Other versions
JPH0812627B2 (ja
Inventor
Thomas E Glover
トーマス・エドウイン・グローバー
Derek K W Smith
デレク・ケイ・ダブリユー・スミス
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0540657A publication Critical patent/JPH0540657A/ja
Publication of JPH0812627B2 publication Critical patent/JPH0812627B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】実回路と相互に作用して、存在しているが、実
回路の作動には使用されないトレーサ出力を生じるトレ
ーサ回路からなる動的ハードウェア・トレーサの提供。 【構成】回路は実機能を遂行する実回路と、トレーサか
らなっている。トレーサは実回路から入力信号を受け取
り、この入力信号を処理する機能的トレーサ回路からな
っている。機能的トレーサ回路は実回路と対話して、回
路の実機能に寄与したり、あるいはこれを変更すること
がない。動的ハードウェア・トレーサはコピーされた回
路の指示をもたらす。また、本発明はソフトウェア内に
配置された動的ソフトウェア・トレーサにも関する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はある人間の著作権資料が
他の人間のハードウェアもしくはソフトウェア・プロダ
クトに存在していることを検出する、換言すると、問題
の資料の出所を追跡する方法及び装置に関する。詳細に
いえば、本発明はハードウェア形式及びソフトウェア形
式の両方、またはハードウェア/ソフトウェアの組合せ
形式で実現できる動的追跡手法に関する。
【0002】
【従来の技術】静的トレーサをソフトウェア・コードに
挿入し、ソフトウェアがコピーされたのか、盗用された
のかを判断できるようにする従来技術の手法が開発され
ている。従来技術のトレーサは静的なものであって、こ
れらはコードの行にすぎず、何も行わず、プログラムを
実行した場合に、これによって無視されるものである。
しかしながら、これらの何も行わないコードの行はプロ
グラム・コード内にあり、コードがコピーされた場合、
これらはコードのコピーされたバージョンに現れ、コピ
ーの証拠となる。これが当てはまるのは、オリジナルの
コードを作成する人間は誰もプログラム・コードにトレ
ーサを含めないからである。オリジナルのコードを作成
する人間がプログラムにトレーサを挿入することにした
場合、トレーサが同一のものとなり、かつこれが実際の
コード内の同一の位置に配置される可能性はきわめて少
ない。
【0003】ソフトウェアをコピーする人間はますます
手の込んだことを行うようになってきており、コピーし
ようと考えるソフトウェアをデコンパイルし、これを読
んで、微妙な変更が行えるようにしている。概して、著
作物がコピーされ、多くの司法管轄区で著作権の侵害を
構成するという事実は残っている。しかしながら、熟練
したコピー実行者はコピーしようと思うコードを読むこ
とができるのであるから、静的トレーサ・コードが何も
しないので、これを発見し、コピー前にプログラムから
除去することができる。これは静的トレーサ・コードを
プログラム・コードに挿入することの欠点である。
【0004】同様にして、熟練したハードウェアのコピ
ー実行者はマイクロ・チップないし集積回路のリバース
・エンジニアリングを行い、リバース・エンジニアリン
グを行ったチップについての自分たちの知識を使用し
て、費用のかさむ設計及び開発段階を経ることなく、そ
のチップのクローンを作成している。
【0005】
【発明が解決しようとする課題】本発明の目的の1つ
は、実回路と相互に作用して存在しているが、実回路の
作動には使用されないトレーサ出力を生じるトレーサ回
路からなる動的ハードウェア・トレーサを提供すること
である。
【0006】本発明の他の目的は、トレーサ回路によっ
て発生されたトレーサ信号を検出して、トレーサ回路の
存在を検出することのできる動的ハードウェア検出ソフ
トウェアを提供することである。
【0007】本発明の他の目的は、トレーサ回路が発生
したトレーサ信号と対話を行うが、実際のソフトウェア
の実行に関しては有用な機能を何ら果たさない、実ソフ
トウェア・コードに埋め込まれたソフトウェア・トレー
サ・コードからなる動的ソフトウェア・トレーサを提供
することである。
【0008】本発明のさらに他の目的は、実ソフトウェ
ア・コードと対話を行うが、実際のソフトウェアの実行
に何ら影響を及ぼさない、実ソフトウェア・コードに埋
め込まれたソフトウェア・トレーサ・コードからなる動
的ソフトウェア・トレーサを提供することである。
【0009】
【課題を解決するための手段】本発明はハードウェア及
びソフトウェアの両方、ならびにこれらの組合せで作動
可能なタイプの動的トレーサを生成するための手法であ
る。
【0010】ハードウェア・トレーサは集積回路の一部
または離散回路に動的回路として現れる。この回路を本
明細書においては「トレーサ回路」と呼ぶ。これは製品
の回路の他の部分に接続され、実際に、ある種の機能を
果たす回路であるが、その機能は製品の実際の作動には
何の影響も及ぼさない。他の回路を本明細書においては
「実回路」と定義する。
【0011】このハードウェア・トレーサは機能を果た
すという点で動的であると定義される。トレーサ回路は
実際に機能するだけではなく、実回路に接続され、実回
路からの論理信号を受け取り、これらを処理して、検出
することのできるトレーサ出力信号を作り出す。トレー
サ出力信号は製品の作動には必要ない。たとえば、製品
の回路がビデオ・モニタ・ドライバであり、トレーサ回
路を含んでいる場合、トレーサ回路及びトレーサ回路が
作り出すあらゆる信号はビデオ・モニタを駆動する機能
には使用されない。
【0012】製品のリバース・エンジニアリングを行っ
て、これをコピーしようとする者は、製品の回路がどの
ように作動するかを判定する複雑で、費用のかさむプロ
セスを行うことがないので、トレーサ回路を実回路と区
別することができず、したがって、製品の実回路をコピ
ーするときにトレーサ回路をコピーすることとなる。回
路が静的もしくは受動的なものである場合、これがリバ
ース・エンジニアリング作業中に明瞭になることは明ら
かであり、コピーから消去できる。
【0013】トレーサ回路はソフトウェアで検出できる
出力信号を作り出すことができる。その結果、これらの
信号を調査し、これらの存在についての何らかの表示を
表示する検出プログラムを作成することができる。機器
の一部がコピーされた回路を含んでいると推測される場
合には、検出プログラムを実行し、トレーサ信号の存在
についての表示が存在しているのであれば、製品の回路
がコピーされているとの充分な表示が提供されたことに
なる。この手法は疑いのある製品の回路をリバース・エ
ンジニアリングして、それがコピーであるかどうかを判
定する必要をなくすものである。
【0014】本発明は検出することができ、コピーの証
拠を提供する動的トレーサを、ソフトウェアに組み込む
ことを意図している。
【0015】動的ソフトウェア・トレーサの2つの実施
例を、本発明によって提供する。
【0016】第1の実施例は1行または複数行のトレー
サ・コードが実コードの行に埋め込まれたものである。
トレーサ・ソフトウェア・コードは上述のトレーサ回路
と対話を行う。この場合も、トレーサ・ソフトウェア・
コードは実ソフトウェアの実行に関しては何も行わない
が、これが実際のハードウェア、すなわちトレーサ回路
と反応するのであるから、プログラムを逆アセンブルし
たコピー実行者は、特にいくつかのトレーサ「単位」が
システム全体にわたって分散されている場合に、このこ
とを判断するのにかなりの困難を受けることとなる。結
果として、コピー実行者がトレーサ・コードを検出し、
コピー前にこれをプログラムから取り出すことがやりに
くくなり、トレーサは残存し、それ故、コピーの証拠を
もたらすこととなる。
【0017】このようなプログラムの一例はビデオ・ド
ライバ集積回路などの集積回路を検査するのに使用され
る診断プログラムである。このプログラムはマザー・ボ
ードまたはビデオ・カード自体のいずれかのROM内に
配置される。このプログラムは入力信号を集積回路に与
え、かつ集積回路から応答を得ることによって、集積回
路をテストする。実ソフトウェア・コードは実回路をテ
ストし、動的トレーサのみとして作用するトレーサ・コ
ードはトレーサ回路に対して応答を要求する。プログラ
ムをコピーすることを考えてこのプログラム作動を判定
しようとする人間には、トレーサ・コードの判別がきわ
めて困難となる。したがって、コピー実行者はコピーし
たプログラムにトレーサ・コードを残さざるをえなくな
り、それ故、トレーサを保存することになる。
【0018】第2の実施例は1行または複数行のトレー
サ・コードが実コードの若干の行と対話を行い、実コー
ドの作動または実行と関係のない結果を生じるものであ
る。トレーサ・コードが実コードから導かれる結果を使
用し、かつ実コードのサブルーチンの呼出しさえ行うこ
とができるのであるから、トレーサ・コードがあること
を検出するのがきわめて困難となる。結果として、プロ
グラムを逆アセンブルしても、トレーサ・コードが必要
なのかどうか、またそのコードを残し、それ故、トレー
サを保存するのかどうかを簡単に決定できなくなる。
【0019】本発明の一態様によれば、実機能を遂行す
る実回路で構成された集積回路で使用される動的ハード
ウェア・トレーサが提供され、トレーサが前記実回路か
ら少なくとも1つの入力信号を受け取り、該少なくとも
1つの入力信号を処理する機能的トレーサ回路で構成さ
れているが、該機能的トレーサ回路は実回路と対話を行
って集積回路の実機能に寄与、またはこれを変更するこ
とがなく、前記動的ハードウェア・トレーサは他の集積
回路にこれが存在することによって、このような他の集
積回路が前記の集積回路からコピーされたことを示すも
のとなる。
【0020】本発明の他の態様によれば、下記のものか
らなる集積回路が提供される。 (a)少なくとも1つの出力端子における出力であり、
かつ実機能を提供するために使用される少なくとも1つ
の出力信号を発生するように作動する実回路。及び (b)前記実回路によって発生された少なくとも1つの
実信号に電気的な処理を行うため前記実回路に接続さ
れ、前記実回路と対話する動的ハードウェア・トレーサ
として作用し、これによって該動的ハードウェア・トレ
ーサがこれが他の集積回路に存在することによって、こ
のような他の集積回路がコピーされたものであることを
示すトレーサ回路。
【0021】本発明のさらに他の態様によれば、実ソフ
トウェア・トレーサのブロックに埋め込まれた少なくと
も1行のソフトウェア・コードからなり、該少なくとも
1行のソフトウェア・コードが実機能をもたらす少なく
とも1つの実出力信号を生じる実回路も含んでいる集積
回路内に配置されたトレーサ回路からのトレーサ出力信
号と対話を行い、実ソフトウェア・トレーサの前記ブロ
ックが前記の少なくとも1つの実出力信号と対話を行う
が、前記ソフトウェア・トレーサ・コードが実ソフトウ
ェア、実回路または実機能の作動に影響を及ぼさず、こ
れによって前記ソフトウェア・トレーサ・コードがそれ
が他のソフトウェア内に存在することによって、このよ
うな他のソフトウェアがコピーされたものであることを
示す、ソフトウェア内に配置された動的ソフトウェア・
トレーサが提供される。
【0022】本発明のさらにまた他の態様によれば、実
機能をもたらすための処理を行う実ソフトウェアのブロ
ックと、実ソフトウェアの前記実ブロックに埋め込まれ
た少なくとも1行のソフトウェア・トレーサ・コードか
らなり、前記の少なくとも1行のソフトウェア・トレー
サ・コードが実ソフトウェア・コードの前記ブロックと
対話を行い、これによって命令を受け取り、前記の少な
くとも1行のソフトウェア・トレーサ・コードが前記命
令に基づいて処理を行って、トレース可能な結果を生
じ、該トレース可能結果が実ソフトウェアのブロックま
たは実機能の作動にまったく影響を及ぼさず、これによ
って前記の少なくとも1行のソフトウェア・トレーサ・
コードが他のソフトウェアにそれが存在することによっ
て、このような他のソフトウェアがコピーされたもので
あることを示す、動的ソフトウェア・トレーサを含むソ
フトウェアが提供される。
【0023】本発明のさらにまた他の態様によれば、製
品内に配置された動的製品トレーサの存在を検出するソ
フトウェアが提供され、該製品は少なくとも1つの実出
力を提供し、これによって実機能をもたらす実部分と、
前記製品内に配置されたトレーサ手段からなり、かつ前
記実部分と対話して少なくとも1つのトレーサ出力をも
たらす動的トレーサ部分とからなっており、前記ソフト
ウェアが前記製品と対話して、前記の少なくとも1つの
トレーサ出力の存在を検出し、かつ前記の少なくとも1
つのトレーサ出力が存在していることを表示し、前記製
品トレーサの存在を検出し、これが他の製品に存在して
いることを示すことによって、このような他の製品がコ
ピーされたものであることを示す。
【0024】本発明のさらにまた他の態様によれば、特
定の有用な機能を遂行する電子ハードウェア構成要素の
第1部分を定義し、該第1部分から少なくとも1つの出
力信号を獲得し、機能的ではあるが、前記第1部分の作
動に寄与しない前記電子ハードウェア構成要素の第2部
分を定義し、前記第1部分を前記第2部分に接続して、
前記第2部分が前記の少なくとも1つの出力信号に作用
してトレーサ出力信号を生じるようにし、該トレーサ信
号の存在を検出して、電子ハードウェア構成要素内での
前記第2部分の存在を判別し、これによって前記ハード
ウェア構成要素の出所を判断するステップからなる、電
子ハードウェア構成要素の出所を追跡する方法が提供さ
れる。
【0025】本発明のさらにまた他の態様によれば、特
定の有用な機能を遂行するソフトウェアの第1部分を定
義し、該第1部分から少なくとも1つの出力を獲得し、
機能的ではあるが、前記第1部分の作動と対話せず、ま
たこれを修正することのない前記ソフトウェアの第2部
分を定義し、前記第1部分からの前記の少なくとも1つ
の出力を使用して、前記第2部分からトレーサ出力を生
じるために前記第2部分を制御し、前記トレーサ出力を
検出し、これによって前記ソフトウェア内での前記第2
部分の存在を検出し、これによって前記ソフトウェアの
出所を判断するステップからなる、ソフトウェアの出所
を追跡する方法が提供される。
【0026】
【実施例】図1は本発明の第1実施例を示す。集積回路
10は実回路12の部分と、トレーサ回路14の部分を
含んでいる。実回路は任意のタイプのものであってもか
まわず、また任意の機能を遂行することができる。トレ
ーサ回路は演算回路であって、端子16に出力信号をも
たらし、入力端子20を介して実回路からの信号を受け
取る機能を果たす。しかしながら、トレーサ回路は集積
回路の実際の機能には何かを行うものではない。たとえ
ば、集積回路がビデオ表示装置を駆動する機能を行う場
合、実回路12がビデオ表示装置を駆動するのに必要な
すべての機能を行う。トレーサ回路はトレーサとして作
用するので、集積回路がこれを若干変更し、コピーする
ことを目的としてリバース・エンジニアリングされた場
合、動的トレーサはコピーされた集積回路に残り、集積
回路がコピーされたことの証拠となる。コピー実行者が
集積回路をリバース・エンジニアリングした場合、集積
回路がコピーされた事実を隠蔽するために、若干の些細
な部分を変更または除去することを目的として、結果が
吟味される。トレーサ回路がこれが実回路と対話を行わ
ない、あるいは何らかの種類の出力を生じないという点
で静的である場合、検出し、取り除くのがはるかに容易
となる。本発明の動的トレーサを実回路と区別するのは
きわめて困難であり、したがって、コピー実行者がこれ
を除去することができたり、あるいは変更したコピー集
積回路が適正に作動することに自身をもてたりすること
が少なくなる。
【0027】図1に示した構成は動的トレーサも含んで
いるソフトウェアと任意選択で対話することができる。
一連のソフトウェア・コード22は実ソフトウェア・コ
ード24及びトレーサ・ソフトウェア・コード26の一
部を含んでいる。実ソフトウェア・コード24は正常な
態様で実回路12と対話を行う。このような対話は図1
において、リンク28によって略示されている。トレー
サ・ソフトウェアはリンク30を介して、トレーサ回路
14と対話できる。実ソフトウェアもリンク32によっ
て、トレーサ・ソフトウェアと対話できる。トレーサ回
路が結果を生じたり、あるいは実ソフトウェアまたは実
回路のいずれかによって使用される結果を生じるような
方法で実ソフトウェアと会話したりすることがないこと
に留意すべきである。結果として、動的トレーサがソフ
トウェア内に存在することになる。コピーを目的とし
て、ソフトウェアを若干変更するために逆アセンブルし
たソフトウェアを検討する場合、コピー実行者が動的ソ
フトウェア・トレーサを除去することはなくなるが、こ
れはトレーサ・ソフトウェアが集積回路もしくは実ソフ
トウェアと論理的に対話するように見えるからである。
コピー実行者は結果としてえられるコピーが作動しなく
なる懸念があるので、トレーサ・ソフトウェアを除去す
ることができない。ソフトウェア・トレーサはしたがっ
て、トレーサとなり、ソフトウェアがコピーされたこと
の証拠をもたらす。
【0028】図2は本発明によるトレーサ回路を含める
ために修正されたビデオ表示装置及びプリンタ・ドライ
バ回路のブロック図である。
【0029】図2に示す回路を集積回路のブレッドボー
ド・モックアップであるとみなすことができる。
【0030】図2に示す回路と本発明との関連を詳細に
理解する必要性はない。
【0031】回路をコンピュータのマザー・ボードのメ
イン・バスに接続することができる。表1はこのバスの
各種のアドレスとこれらが表す機能の間の関係を示す。
【表1】
【0032】表1から、バスに使用されていないいくつ
かのアドレス位置があることがわかる。これらの未使用
の位置をトレーサ信号に使用して、図1に示す端子16
を表すことができる。結果として、本発明を実現するた
めに、ブレッド・ボードのアーキテクチャ及び外部との
その対話を大幅に変更する必要がないことがわかる。こ
れがほとんどの場合に当てはまるのは、装置がその装置
の実際の作動のために利用可能なすべてのポート及びこ
れらに関連するアドレスを使いきることがほとんど起こ
らないからである。
【0033】この例においては、実回路で使用されてい
ないアドレス3B0、3B1及び3BFを利用して、画
面列ポート、画面行ポート及び画面活動ポートのそれぞ
れを作成する。換言すれば、実回路から信号を取り入
れ、列及び行に関してビデオ表示装置上のカーソル位置
を表す信号、及び画面が活動または非活動であるかを表
す信号を発生するトレーサ回路が開発される。
【0034】トレーサ回路は図2のビデオ・サポート論
理ブロック34に配置される。
【0035】図3及び図4はブロック34に示すビデオ
・サポート論理回路の詳細な略図である。
【0036】ブロック34に追加されたトレーサ回路は
表2、表3及び表4に示すビット番号/機能チャートを
生じる。
【表2】
【表3】
【表4】
【0037】既存のデコーダ36は通常使用されていな
い出力端子38に信号を生じる。この信号は画面活動ポ
ート選択信号すなわちSAP SEL信号であって、図
4に示されているデコーダ40に供給される。この信号
はインバータ42によって逆転されたタイミング信号と
ともに、デコーダ40を制御し、データ・イン・ライン
に現れるデータを復号し、データ・アウト・ラインに各
種のビット−機能を発生させる。データ・アウト・ライ
ンに現れる復号された信号は、表4に示すビット・パタ
ーンにしたがう。
【0038】再度図3を参照すると、インバータ44は
既存の信号を実回路からデコーダ46に供給する。この
信号はライン48及び50に現れる既存の信号ととも
に、デコーダ46を制御するので、ライン52、54及
び56に現れる既存の信号が復号され、出力端子58及
び60のそれぞれに、画面列ポート選択信号SCP S
EL及び画面行ポート選択信号SRP SELを生じ
る。
【0039】SCP SEL信号は図4に示すデコーダ
62に供給され、インバータ64によって逆転されたタ
イミング信号とともに取り込まれて、このデコーダに対
するデータ・イン・ラインに現れる信号から、表2に示
すビット・パターンをデータ・アウト・ラインに発生す
る。
【0040】SRP SEL信号は図4に示すデコーダ
66に供給され、インバータ68によって逆転されたタ
イミング信号とともに取り込まれて、このデコーダに対
するデータ・イン・ラインに現れる信号から、表3に示
すビット・パターンをデータ・アウト・ラインに発生す
る。
【0041】集積回路の実回路に追加されたトレーサ回
路はインバータ42、44、64、及び68、ならびに
デコーダ40、46、62及び66で構成されている。
このトレーサ回路が集積回路の実回路全体のうちごく小
さな部分のみを形成していることを理解する必要があ
る。さらに、図示の回路が本発明の例にすぎず、本発明
がいかなる態様においても、図示の回路に限定されるも
のではないことを理解すべきである。
【表5】
【0042】表5は図2に示したビデオ表示装置及びプ
リンタ・ドライバの回路、及び付加された、図3及び図
4に示すトレーサ回路の回路をチェックするソフトウェ
ア・コード・リストの一部を示す。作動前の、このよう
なビデオ表示装置及びプリンタ・ドライバを有するコン
ピュータの各起動ないしブート時に、マザーボードに配
置されたROMに記憶されている、診断プログラムとい
うプログラムが実行される。このプログラムの機能は、
ビデオ表示装置及びプリンタ・ドライバ集積回路の各種
の機能をチェックし、その回路の適切な作動を確認する
ことである。
【0043】表5は実ソフトウェア70のブロック及び
実ソフトウェアに埋め込まれたソフトウェア・トレーサ
72のブロックを含んでいる。コンピュータの作動に
は、診断チェックが回路のこの部分で正しいことが重要
である。トレーサ・ソフトウェアはトレーサ回路と会話
を行い、この回路をチェックする。トレーサ回路の作動
が実際の集積回路の作動に関して何も行わないのである
から、トレーサ・ソフトウェアの作動から導かれるトレ
ーサ回路の診断結果が存在していることは、無関係であ
る。
【0044】無関係でないのは、集積回路とソフトウェ
ア・プログラムの両方にトレーサ回路及びトレーサ・ソ
フトウェアが存在することである。これらが存在するこ
とが、本発明の動的ハードウェア・トレーサと動的ソフ
トウェア・トレーサを提供する。
【表6】
【0045】本発明によれば、ソフトウェア・トレーサ
がこれが対話を行う実際のハードウェアを有しているこ
とは必要ない。動的ソフトウェア・トレーサはソフトウ
ェア・トレーサが対話を行う実ソフトウェアを有してい
る限り、ハードウェアとの対話なしで存在することがで
きる。表6はこのようなソフトウェアの例である。この
例において、実ソフトウェア・コード74のブロックは
ソフトウェア・トレーサ・コード76のブロックと対話
を行い、動的トレーサをもたらす。トレーサ・ソフトウ
ェア76が実ソフトウェア74からデータを受け取り、
処理することに留意すべきである。しかしながら、この
トレーサ・データの処理結果は実ソフトウェアの作動に
は使用されない。ソフトウェア・トレーサを使用する
と、これがもはやトレーサ・ソフトウェアではなくなる
のであるから、その機能を満たさないことになる。
【0046】今まで、集積回路がコピーされたのではな
いかとの疑いを持った場合、まず、コピーの証拠をえる
ためのオリジナルとの類似性を見つけだす試みとして、
疑いのある回路のリバース・エンジニアリングを行う必
要があった。
【0047】図1に示すように、トレーサ回路14が出
力端子16に信号出力を生じるのであるから、これらの
信号を検出することができる。トレーサ回路によって生
成されたトレーサ信号の存在を検出し、表示するため
に、ソフトウェア、すなわち図1に示すソフトウェア・
トレーサ26と類似したプログラムを提供することがで
きる。このプログラムはしたがって、信号が存在すれ
ば、トレーサ回路なのであるから、トレーサ回路の存在
を検出できる。
【0048】コピーされた疑いのある集積回路でこのト
レーサ回路検出回路を実行することは、疑いのある集積
回路をまずリバース・エンジニアリングするよりもはる
かに費用のかからないものである。
【表7】
【0049】このソフトウェアの例を表7に示す、これ
は図2に示すトレーサ回路のみの診断をテストするソフ
トウェアである。このソフトウェアはトレーサ回路によ
って発生したトレーサ信号の存在を示すものであり、し
たがって、テストを行っている集積回路にトレーサ回路
が存在していることを示すものである。このソフトウェ
アはトレーサ回路検出ソフトウェアの例である。これは
表5に示したソフトウェア・トレーサ・ブロックときわ
めて類似したものであるが、有用な出力、すなわち上述
のトレーサ信号の存在の表示をもたらすものである。
【0050】
【発明の効果】本発明によれば、ハードウェア及びソフ
トウェアの両方、ならびにこれらの組み合わせで作動可
能なタイプの動的トレーサを提供することができる。
【図面の簡単な説明】
【図1】本発明の一態様のブロック図である。
【図2】本発明の特定の実施例の1つのブロック図であ
る。
【図3】図2に示した実施例の関連部分の略図である。
【図4】図3の略図に続く略図である。
【符号の説明】
10 集積回路 12 実回路 14 トレーサ回路 16 端子 20 入力端子 22 ソフトウェア・コード 24 実ソフトウェア 26 トレーサ・ソフトウェア 28,30,32 リンク 38 出力端子 42,44,64,68 インバータ 48,50,52,54,56 ライン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デレク・ケイ・ダブリユー・スミス カナダ国、オンタリオ州クレウ・アベニユ ー 28番地

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】実機能を遂行する実回路と、該実回路から
    少なくとも1つの入力信号を受け取り、該少なくとも1
    つの入力信号を処理する機能的トレーサ回路からなるト
    レーサとからなる集積回路で使用する動的ハードウェア
    ・トレーサであって、前記機能的トレーサ回路が実回路
    と対話して、集積回路の実機能に寄与することまたはこ
    れを変更することがなく、前記動的ハードウェア・トレ
    ーサが他の集積回路に存在することによって、かかる他
    の集積回路が前記集積回路からコピーされたものである
    ことを示す前記動的ハードウェア・トレーサ。
  2. 【請求項2】前記トレーサ回路が少なくとも1つのトレ
    ーサ出力端子に少なくとも1つのトレーサ信号を発生す
    る請求項1記載の動的ハードウェア・トレーサ。
  3. 【請求項3】前記トレーサ回路が実回路の一体的な部分
    として形成されている請求項1記載の動的ハードウェア
    ・トレーサ。
  4. 【請求項4】少なくとも1つの出力端子の出力であり、
    実機能を提供するために使用される少なくとも1つの出
    力信号を発生するように作動する実回路と、 前記実回路に接続された、前記実回路と対話を行い、こ
    れによってそれが他の集積回路内に存在することによっ
    て、かかる他の集積回路がコピーされたものであること
    を示す、前記実回路によって発生された少なくとも1つ
    の実信号を電気的に処理するトレーサ回路とからなる集
    積回路。
  5. 【請求項5】前記トレーサ回路が少なくとも1つの出力
    端子における出力である少なくとも1つの出力信号を発
    生する請求項4記載の集積回路。
  6. 【請求項6】実ソフトウェア・コードのブロックに埋め
    込まれた少なくとも1行のソフトウェア・トレーサ・コ
    ードからなり、該少なくとも1行のソフトウェア・トレ
    ーサ・コードが実機能をもたらす少なくとも1つの実出
    力信号を生じる実回路も含んでいる集積回路内に配置さ
    れたトレーサ回路からのトレーサ出力信号と対話を行
    い、実ソフトウェア・コードの前記ブロックが前記の少
    なくとも1つの実出力信号と対話を行うが、前記ソフト
    ウェア・トレーサ・コードが実ソフトウェア、実回路ま
    たは実機能の作動に影響を及ぼさない、ソフトウェア内
    に配置された動的ソフトウェア・トレーサにおいて、こ
    れによって前記ソフトウェア・トレーサ・コードがそれ
    が他のソフトウェア内に存在することによって、このよ
    うな他のソフトウェアがコピーされたものであることを
    示す前記動的ソフトウェア・トレーサ。
  7. 【請求項7】前記の少なくとも1行のソフトウェア・ト
    レーサ・コードが実ソフトウェア・コードの前記ブロッ
    クと対話して、実ソフトウェア・コードの前記ブロック
    から命令を受け取り、前記の少なくとも1行のソフトウ
    ェア・トレーサ・コードが該命令に基づいて処理を遂行
    する請求項6記載の動的ソフトウェア・トレーサ。
  8. 【請求項8】実機能をもたらすための処理を行う実ソフ
    トウェアのブロックと、実ソフトウェアの前記実ブロッ
    クに埋め込まれた少なくとも1行のソフトウェア・トレ
    ーサ・コードからなり、前記の少なくとも1行のソフト
    ウェア・トレーサ・コードが実ソフトウェア・コードの
    前記ブロックと対話を行い、これによって命令を受け取
    り、前記の少なくとも1行のソフトウェア・トレーサ・
    コードが前記命令に基づいて処理を行って、トレース可
    能な結果を生じ、該トレース可能結果が実ソフトウェア
    のブロックまたは実機能の作動にまったく影響を及ぼさ
    ず、これによって前記の少なくとも1行のソフトウェア
    ・トレーサ・コードが他のソフトウェアにそれが存在す
    ることによって、このような他のソフトウェアがコピー
    されたものであることを示す、動的ソフトウェア・トレ
    ーサを含むコンピュータ・プログラム製品。
  9. 【請求項9】製品内に配置された動的製品トレーサの存
    在を検出するソフトウェアにおいて、該製品が少なくと
    も1つの実出力を提供し、これによって実機能をもたら
    す実部分と、前記製品内に配置されたトレーサ手段から
    なり、かつ前記実部分と対話して少なくとも1つのトレ
    ーサ出力をもたらす動的トレーサ部分とからなってお
    り、前記ソフトウェアが前記製品と対話して、前記の少
    なくとも1つのトレーサ出力の存在を検出し、かつ前記
    の少なくとも1つのトレーサ出力が存在していることを
    表示し、前記製品トレーサの存在を検出し、これが他の
    製品に存在していることを示すことによって、このよう
    な他の製品がコピーされたものであることを示す、前記
    コンピュータ・プログラム製品。
  10. 【請求項10】前記製品が集積回路、コンピュータ・プ
    ログラム、ファームウェア及びマイクロコードからなる
    製品群から選択された少なくとも1つである請求項9記
    載のコンピュータ・プログラム製品。
  11. 【請求項11】(a)特定の有用な機能を遂行する電子
    ハードウェア構成要素の第1部分を定義し、 (b)該第1部分から少なくとも1つの出力信号を獲得
    し、 (c)機能的ではあるが、前記第1部分の作動に寄与し
    ない前記電子ハードウェア構成要素の第2部分を定義
    し、 (d)前記第1部分を前記第2部分に接続して、前記第
    2部分が前記の少なくとも1つの出力信号に作用してト
    レーサ出力信号を生じるようにし、 (e)該トレーサ信号の存在を検出して、電子ハードウ
    ェア構成要素内での前記第2部分の存在を判別し、これ
    によって前記ハードウェア構成要素の出所を判断する、 前記(a)〜(e)のステップを有する電子ハードウェ
    ア構成要素の出所を追跡する方法。
  12. 【請求項12】(a)特定の有用な機能を遂行するソフ
    トウェアの第1部分を定義し、 (b)該第1部分から少なくとも1つの出力を獲得し、 (c)機能的ではあるが、前記第1部分の作動と対話せ
    ず、またこれを修正することのない前記ソフトウェアの
    第2部分を定義し、 (d)前記第1部分からの前記の少なくとも1つの出力
    を使用して、前記第2部分からトレーサ出力を生じるた
    めに前記第2部分を制御し、 (e)前記トレーサ出力を検出し、これによって前記ソ
    フトウェア内での前記第2部分の存在を検出し、これに
    よって前記ソフトウェアの出所を判断する、 前記(a)〜(e)のステップを有するソフトウェアの
    出所を追跡する方法。
JP3281961A 1990-10-05 1991-10-03 動的トレーサ Expired - Lifetime JPH0812627B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA2026998 1990-10-05
CA002026998A CA2026998C (en) 1990-10-05 1990-10-05 Dynamic trace elements

Publications (2)

Publication Number Publication Date
JPH0540657A true JPH0540657A (ja) 1993-02-19
JPH0812627B2 JPH0812627B2 (ja) 1996-02-07

Family

ID=4146117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3281961A Expired - Lifetime JPH0812627B2 (ja) 1990-10-05 1991-10-03 動的トレーサ

Country Status (3)

Country Link
US (1) US5212728A (ja)
JP (1) JPH0812627B2 (ja)
CA (1) CA2026998C (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412718A (en) * 1993-09-13 1995-05-02 Institute Of Systems Science Method for utilizing medium nonuniformities to minimize unauthorized duplication of digital information
US5530751A (en) * 1994-06-30 1996-06-25 Hewlett-Packard Company Embedded hidden identification codes in digital objects
US5592549A (en) * 1995-06-15 1997-01-07 Infosafe Systems, Inc. Method and apparatus for retrieving selected information from a secure information source
US6088452A (en) * 1996-03-07 2000-07-11 Northern Telecom Limited Encoding technique for software and hardware
US10296464B2 (en) 2016-12-09 2019-05-21 Intel Corporation System, apparatus and method for dynamic profiling in a processor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58186843A (ja) * 1982-04-26 1983-10-31 Fujitsu Ltd プログラム保護方式
JPS63311545A (ja) * 1987-06-15 1988-12-20 Toshiba Corp デイジタルコントロ−ラ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4598170A (en) * 1984-05-17 1986-07-01 Motorola, Inc. Secure microprocessor
FR2600183B1 (fr) * 1986-06-13 1990-10-12 Eurotechnique Sa Circuit integre pour la memorisation et le traitement d'informations de maniere confidentielle comportant un dispositif anti-fraude
JPH01129328A (ja) * 1987-11-13 1989-05-22 Toshiba Corp コピー防止装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58186843A (ja) * 1982-04-26 1983-10-31 Fujitsu Ltd プログラム保護方式
JPS63311545A (ja) * 1987-06-15 1988-12-20 Toshiba Corp デイジタルコントロ−ラ

Also Published As

Publication number Publication date
CA2026998C (en) 1994-05-10
JPH0812627B2 (ja) 1996-02-07
CA2026998A1 (en) 1992-04-06
US5212728A (en) 1993-05-18

Similar Documents

Publication Publication Date Title
US8141056B2 (en) Just-in-time dynamic instrumentation
TWI323843B (en) Method and device for pc component diagnostic test before executing operation system
US20050160405A1 (en) System and method for generating code coverage information
KR20030014352A (ko) 장치 계산을 위한 가상 rom
JPH1083287A (ja) コンピュータシステム及びその動作方法
US7606973B2 (en) System and method for pervasive computing with a portable non-volatile memory device
US7840948B2 (en) Automation of keyboard accessibility testing
JPH0540657A (ja) 動的トレーサ
JPH1153211A (ja) 開発支援装置
CN101105764B (zh) 计算机操作系统尚未执行前的计算机元件侦错方法及模块
KR20000008628A (ko) 컴퓨터 시스템의 부팅음악 출력방법
JP3001470B2 (ja) パーソナルコンピュータのブート不良検出システム
JP2003281076A (ja) Dmaコントローラの不正アクセス検出装置、不正アクセス検出方法およびそのプログラム
KR101064650B1 (ko) 리눅스 운영체제 기반의 시스템에서 usb 디바이스 드라이버의 커널 하드닝을 수행하는 방법 및 그 장치
KR970049495A (ko) 퍼스널 컴퓨터 제조공정에서의 시스템 환경 설정방법
KR200204353Y1 (ko) 바이오스 셋업 선택 기능을 갖는 컴퓨터
JP2001209555A (ja) 入出力エミュレーション装置、入出力装置のエミュレーション方法および入出力装置エミュレーションプログラムを記録した記録媒体
JP2003263340A (ja) デバッグ装置
JPH0512005A (ja) 情報処理装置
CN112631878A (zh) 一种动态生成sdr信息的方法和设备
CN116340082A (zh) 一种基于硬件虚拟化的riscv应用程序动态分析方法及装置
JPH05324396A (ja) プログラム走行履歴記録方式
JPH11175366A (ja) 電子回路解析装置、電子回路解析方法、電子回路解析プログラムを記録した媒体および電子回路解析システム
JPH0675753A (ja) コンソール変更方式
JPH0244432A (ja) 電子計算機制御方式