JPH04259036A - プログラム変換方式及びプログラム不正動作検出機構 - Google Patents
プログラム変換方式及びプログラム不正動作検出機構Info
- Publication number
- JPH04259036A JPH04259036A JP3040598A JP4059891A JPH04259036A JP H04259036 A JPH04259036 A JP H04259036A JP 3040598 A JP3040598 A JP 3040598A JP 4059891 A JP4059891 A JP 4059891A JP H04259036 A JPH04259036 A JP H04259036A
- Authority
- JP
- Japan
- Prior art keywords
- program
- routine
- data
- checksum
- instruction
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000001514 detection method Methods 0.000 claims description 14
- 230000007257 malfunction Effects 0.000 claims description 13
- 230000010365 information processing Effects 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 abstract 1
- 230000005856 abnormality Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、プログラム変換方式及
びプログラム不正動作検出機構に関し、特に実行される
プログラムが不正に書き換えられていたり、正しくない
プログラムを実行していることをハードウェアにおいて
検出することにより、プログラムの処理速度に影響を与
えることなく信頼性を向上することができるプログラム
変換方式及びプログラム不正動作検出機構に関する。
びプログラム不正動作検出機構に関し、特に実行される
プログラムが不正に書き換えられていたり、正しくない
プログラムを実行していることをハードウェアにおいて
検出することにより、プログラムの処理速度に影響を与
えることなく信頼性を向上することができるプログラム
変換方式及びプログラム不正動作検出機構に関する。
【0002】
【従来の技術】従来、不正プログラムの検出方法として
は、あらかじめプログラムの一定の領域ごとに設けられ
たチェックサムをプログラムの実行とは別にチェックす
る方法がある。
は、あらかじめプログラムの一定の領域ごとに設けられ
たチェックサムをプログラムの実行とは別にチェックす
る方法がある。
【0003】
【発明が解決しようとする課題】上述した従来の不正プ
ログラム検出方法では、プログラムの実行前にそのプロ
グラムをチェックする為の時間が、そのプログラム自身
の実行の為の時間とは別に必要となるという欠点があっ
た。
ログラム検出方法では、プログラムの実行前にそのプロ
グラムをチェックする為の時間が、そのプログラム自身
の実行の為の時間とは別に必要となるという欠点があっ
た。
【0004】又、プログラムの実行とは別にチェックを
行なう為、プログラム実行中に不正にプログラムを変更
した場合には、プログラム実行中にチェックができない
為、プログラムの不正動作を検出できなくなるという欠
点があった。
行なう為、プログラム実行中に不正にプログラムを変更
した場合には、プログラム実行中にチェックができない
為、プログラムの不正動作を検出できなくなるという欠
点があった。
【0005】それ故に、本発明の課題は、プログラム実
行中にプログラムの不正動作を検出可能とするプログラ
ム変換方式及びプログラム不正動作検出機構を提供する
ことにある。
行中にプログラムの不正動作を検出可能とするプログラ
ム変換方式及びプログラム不正動作検出機構を提供する
ことにある。
【0006】
【課題を解決するための手段】本発明のプログラム変換
方式によれば、情報処理装置で実行されるプログラムに
ついて、プログラム言語を上記情報処理装置で実行する
為の機械語に変換する過程において、上記プログラム実
行時に各ルーチンが正しいプログラムであることを確認
する為のデータを、1つのルーチンの開始からルーチン
の切れ目にある分岐を表わす命令までにあるデータおよ
び命令のチェックサム又はチェックサムを暗号化した形
で生成する生成手順と、該生成手順により生成された上
記チェックサム又はチェックサムを暗号化したものを、
各ルーチンごとに付加する付加手順とを有することを特
徴とするプログラム変換方式が得られる。
方式によれば、情報処理装置で実行されるプログラムに
ついて、プログラム言語を上記情報処理装置で実行する
為の機械語に変換する過程において、上記プログラム実
行時に各ルーチンが正しいプログラムであることを確認
する為のデータを、1つのルーチンの開始からルーチン
の切れ目にある分岐を表わす命令までにあるデータおよ
び命令のチェックサム又はチェックサムを暗号化した形
で生成する生成手順と、該生成手順により生成された上
記チェックサム又はチェックサムを暗号化したものを、
各ルーチンごとに付加する付加手順とを有することを特
徴とするプログラム変換方式が得られる。
【0007】本発明のプログラム不正動作検出機構によ
れば、請求項1記載のプログラム変換方式により機械語
に変換されたプログラムを実行する情報処理装置に備え
られたプログラム不正動作検出機構であって、1つのル
ーチンを実行開始時からルーチンの切れ目にある分岐を
表わす命令までにあるデータおよび命令のチェックサム
又はチェックサムを暗号化した型のデータをハードウェ
ア上で生成する生成手段と、あらかじめ上記プログラム
上に付加されているデータとの比較を行なうことによっ
て上記プログラムが正常に動作していることを確認し、
プログラム変換後に不正にプログラムを書き換えられ、
或いは正しくないプログラムを実行していることを検出
する比較手段とを有することを特徴とするプログラム不
正動作検出機構が得られる。
れば、請求項1記載のプログラム変換方式により機械語
に変換されたプログラムを実行する情報処理装置に備え
られたプログラム不正動作検出機構であって、1つのル
ーチンを実行開始時からルーチンの切れ目にある分岐を
表わす命令までにあるデータおよび命令のチェックサム
又はチェックサムを暗号化した型のデータをハードウェ
ア上で生成する生成手段と、あらかじめ上記プログラム
上に付加されているデータとの比較を行なうことによっ
て上記プログラムが正常に動作していることを確認し、
プログラム変換後に不正にプログラムを書き換えられ、
或いは正しくないプログラムを実行していることを検出
する比較手段とを有することを特徴とするプログラム不
正動作検出機構が得られる。
【0008】
【実施例】本実施例によるプログラム変換方式は、プロ
グラム言語を情報処理装置で実行する為の機械語に変換
する過程において、1つのルーチンの開始からルーチン
の切れ目にある分岐を表わす命令までにあるデータおよ
び命令のチェックサム又はチェックサムを暗号化した形
のデータを生成する生成手順と、この生成手段により得
られた上述のデータおよび命令のチェックサム又はチェ
ックサムを暗号化した形のデータを、ルーチン毎に付加
する付加手順とを有する。
グラム言語を情報処理装置で実行する為の機械語に変換
する過程において、1つのルーチンの開始からルーチン
の切れ目にある分岐を表わす命令までにあるデータおよ
び命令のチェックサム又はチェックサムを暗号化した形
のデータを生成する生成手順と、この生成手段により得
られた上述のデータおよび命令のチェックサム又はチェ
ックサムを暗号化した形のデータを、ルーチン毎に付加
する付加手順とを有する。
【0009】また、本実施例によるプログラム不正動作
検出機構は、プログラム実行時に一つのルーチンの開始
および分岐を認識する命令解読部と、この命令解読部に
より認識されたルーチンの開始および分岐によって実行
されるデータおよび命令のチェックサムの生成を制御す
る生成手段としての加算機と、プログラム変換方式によ
り付加されたデータと加算機によりにより生成したチェ
ックサムとを比較し、一致しない場合には異常検出信号
を出す比較機構とを有する。
検出機構は、プログラム実行時に一つのルーチンの開始
および分岐を認識する命令解読部と、この命令解読部に
より認識されたルーチンの開始および分岐によって実行
されるデータおよび命令のチェックサムの生成を制御す
る生成手段としての加算機と、プログラム変換方式によ
り付加されたデータと加算機によりにより生成したチェ
ックサムとを比較し、一致しない場合には異常検出信号
を出す比較機構とを有する。
【0010】以下、本実施例について、図を用いて説明
する。図1および図2はプログラム中のルーチンを表わ
すフローチャートの一例である。図1および図2を用い
てチェックサムの生成手順を説明する。図1に示すルー
チンAは、ルーチンの分岐後ルーチンBの途中に分岐す
る。ルーチンBは、ルーチンの分岐後、他のルーチンの
開始のところに分岐する。ルーチンBにおいてチェック
サムを生成する場合は、ルーチンの開始にあるBS か
ら分岐命令BJ までのCheckB2 部のチェック
サムを生成する。
する。図1および図2はプログラム中のルーチンを表わ
すフローチャートの一例である。図1および図2を用い
てチェックサムの生成手順を説明する。図1に示すルー
チンAは、ルーチンの分岐後ルーチンBの途中に分岐す
る。ルーチンBは、ルーチンの分岐後、他のルーチンの
開始のところに分岐する。ルーチンBにおいてチェック
サムを生成する場合は、ルーチンの開始にあるBS か
ら分岐命令BJ までのCheckB2 部のチェック
サムを生成する。
【0011】ルーチンAにおいてチェックサムを生成す
る場合は、分岐後ルーチンBの命令B2 に分岐する為
、ルーチンAの開始にあるAS から分岐命令AJ ま
でのCheckA部およびルーチンBの開始にあるBS
から分岐先の命令B2 の1つ前の命令B1 までの
CheckB1 部のチェックサムを生成する。
る場合は、分岐後ルーチンBの命令B2 に分岐する為
、ルーチンAの開始にあるAS から分岐命令AJ ま
でのCheckA部およびルーチンBの開始にあるBS
から分岐先の命令B2 の1つ前の命令B1 までの
CheckB1 部のチェックサムを生成する。
【0012】図2は、条件付分岐命令をもつルーチンC
および、条件付分岐によって実行されるサブルーチンで
あるルーチンDである。ルーチンCには条件付分岐命令
Cc があり、条件にあてはまれば分岐を行ないルーチ
ンDに分岐し、条件にあてはまらなければ、分岐を行な
わず命令CCSを実行する。この場合、プログラムを変
換する時にはどちらに行くかわからないため、Chec
kC1 部、CheckC2 部、CheckD部それ
ぞれにチェックサムを生成する。
および、条件付分岐によって実行されるサブルーチンで
あるルーチンDである。ルーチンCには条件付分岐命令
Cc があり、条件にあてはまれば分岐を行ないルーチ
ンDに分岐し、条件にあてはまらなければ、分岐を行な
わず命令CCSを実行する。この場合、プログラムを変
換する時にはどちらに行くかわからないため、Chec
kC1 部、CheckC2 部、CheckD部それ
ぞれにチェックサムを生成する。
【0013】次に本実施例のプログラム不正動作検出機
構を備えた情報処理装置の説明を行なう。図3は、プロ
グラムを実行する情報処理装置の中央処理装置の一例で
ある。この中央処理装置1は、バス制御部2、命令解読
部3、チェック部4、命令実行部5からできている。プ
ログラムは、まずバス制御部2を通じて命令解読部3に
入る。命令解読部3に入ったプログラムは、そこで解読
されルーチンが始まると、チェック部4の加算機18に
加算開始の信号12を出すとともに命令およびデータ1
3を送る。加算機18は加算開始の信号12を受けると
、加算機18内のレジスタをクリアし、命令解読部3か
ら送られてくる命令およびデータ13を加算する。分岐
命令があると、命令解読部3は、加算終了の信号12を
加算機18に出すとともに、比較機構19に対してプロ
グラムに付加されていたチェックサムのデータおよびチ
ェック開始の信号20を送る。チェック開始の信号20
を受けた比較機構19は、加算機18から送られてくる
加算結果15と、命令解読部3から送られてくるチェッ
クサムのデータ14を比較し、一致しなければ、異常検
出信号16を出す。また、先の図1の様に、ルーチンB
の途中から加算する場合は、ルーチンAに付加されてい
るCheckB1 部のチェックサムを加算開始時に命
令解読部3から加算機18に送った後、加算を開始する
。
構を備えた情報処理装置の説明を行なう。図3は、プロ
グラムを実行する情報処理装置の中央処理装置の一例で
ある。この中央処理装置1は、バス制御部2、命令解読
部3、チェック部4、命令実行部5からできている。プ
ログラムは、まずバス制御部2を通じて命令解読部3に
入る。命令解読部3に入ったプログラムは、そこで解読
されルーチンが始まると、チェック部4の加算機18に
加算開始の信号12を出すとともに命令およびデータ1
3を送る。加算機18は加算開始の信号12を受けると
、加算機18内のレジスタをクリアし、命令解読部3か
ら送られてくる命令およびデータ13を加算する。分岐
命令があると、命令解読部3は、加算終了の信号12を
加算機18に出すとともに、比較機構19に対してプロ
グラムに付加されていたチェックサムのデータおよびチ
ェック開始の信号20を送る。チェック開始の信号20
を受けた比較機構19は、加算機18から送られてくる
加算結果15と、命令解読部3から送られてくるチェッ
クサムのデータ14を比較し、一致しなければ、異常検
出信号16を出す。また、先の図1の様に、ルーチンB
の途中から加算する場合は、ルーチンAに付加されてい
るCheckB1 部のチェックサムを加算開始時に命
令解読部3から加算機18に送った後、加算を開始する
。
【0014】
【発明の効果】以上の説明のように、本発明は、プログ
ラム変換時に付加されたルーチン毎のチェックサムと、
プログラム実行中に生成したチェックサムを常時比較す
ることにより、正しいプログラムを実行していることを
確認し、プログラム変換後に書換えられた不正なプログ
ラムを検出できるという効果がある。
ラム変換時に付加されたルーチン毎のチェックサムと、
プログラム実行中に生成したチェックサムを常時比較す
ることにより、正しいプログラムを実行していることを
確認し、プログラム変換後に書換えられた不正なプログ
ラムを検出できるという効果がある。
【図1】プログラム中のルーチンを表わすフローチャー
トの1例である。
トの1例である。
【図2】プログラム中のルーチンを表わすフローチャー
トの1例である。
トの1例である。
【図3】本発明の一実施例によるプログラム不正動作検
出機構を備えた中央処理装置のブロック図である。
出機構を備えた中央処理装置のブロック図である。
1 中央処理装置
2 バス制御部
3 命令解読部
4 チェック部
5 命令実行部
6 外部バス制御信号
7 外部バスデータ信号
8 外部バスアドレス信号
9 フェッチデータ
10 内部アドレス信号
11 内部データ信号
12 加算制御信号
13 命令・データ
14 チェックサム・データ
15 加算結果
16 異常検出信号
17 内部命令
18 加算機
19 比較機構
20 比較開始信号
Claims (2)
- 【請求項1】 情報処理装置で実行されるプログラム
について、プログラム言語を上記情報処理装置で実行す
る為の機械語に変換する過程において、上記プログラム
実行時に各ルーチンが正しいプログラムであることを確
認する為のデータを、1つのルーチンの開始からルーチ
ンの切れ目にある分岐を表わす命令までにあるデータお
よび命令のチェックサム又はチェックサムを暗号化した
形で生成する生成手順と、該生成手順により生成された
上記チェックサム又はチェックサムを暗号化したものを
、各ルーチンごとに付加する付加手順とを有することを
特徴とするプログラム変換方式。 - 【請求項2】 請求項1記載のプログラム変換方式に
より機械語に変換されたプログラムを実行する情報処理
装置に備えられたプログラム不正動作検出機構であって
、1つのルーチンを実行開始時からルーチンの切れ目に
ある分岐を表わす命令までにあるデータおよび命令のチ
ェックサム又はチェックサムを暗号化した型のデータを
ハードウェア上で生成する生成手段と、あらかじめ上記
プログラム上に付加されているデータとの比較を行なう
ことによって上記プログラムが正常に動作していること
を確認し、プログラム変換後に不正にプログラムを書き
換えられ、或いは正しくないプログラムを実行している
ことを検出する比較手段とを有することを特徴とするプ
ログラム不正動作検出機構。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3040598A JPH04259036A (ja) | 1991-02-13 | 1991-02-13 | プログラム変換方式及びプログラム不正動作検出機構 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3040598A JPH04259036A (ja) | 1991-02-13 | 1991-02-13 | プログラム変換方式及びプログラム不正動作検出機構 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04259036A true JPH04259036A (ja) | 1992-09-14 |
Family
ID=12584951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3040598A Withdrawn JPH04259036A (ja) | 1991-02-13 | 1991-02-13 | プログラム変換方式及びプログラム不正動作検出機構 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04259036A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282156A (ja) * | 1996-04-17 | 1997-10-31 | Ricoh Co Ltd | プログラム保護装置及びプログラム保護方法 |
JP2007517299A (ja) * | 2003-12-31 | 2007-06-28 | トラステッド ロジック ソシエテ アノニム | 実行トレースプリントを検証することによるプログラム実行整合性の制御方法 |
JP2008305128A (ja) * | 2007-06-07 | 2008-12-18 | Panasonic Corp | 情報処理装置及び改竄検証方法 |
JP2009521737A (ja) * | 2005-11-10 | 2009-06-04 | 株式会社エヌ・ティ・ティ・ドコモ | Javascriptプログラムの不安全動作安を検出するため、及び防止するための方法及び装置 |
JP4732651B2 (ja) * | 1999-09-20 | 2011-07-27 | ギーゼッケ ウント デフリエント ゲーエムベーハー | プログラム実行を保護するための方法 |
JP4754635B2 (ja) * | 2006-02-27 | 2011-08-24 | シャープ株式会社 | 制御フロー保護機構 |
-
1991
- 1991-02-13 JP JP3040598A patent/JPH04259036A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282156A (ja) * | 1996-04-17 | 1997-10-31 | Ricoh Co Ltd | プログラム保護装置及びプログラム保護方法 |
JP4732651B2 (ja) * | 1999-09-20 | 2011-07-27 | ギーゼッケ ウント デフリエント ゲーエムベーハー | プログラム実行を保護するための方法 |
JP2007517299A (ja) * | 2003-12-31 | 2007-06-28 | トラステッド ロジック ソシエテ アノニム | 実行トレースプリントを検証することによるプログラム実行整合性の制御方法 |
JP2009521737A (ja) * | 2005-11-10 | 2009-06-04 | 株式会社エヌ・ティ・ティ・ドコモ | Javascriptプログラムの不安全動作安を検出するため、及び防止するための方法及び装置 |
JP4754635B2 (ja) * | 2006-02-27 | 2011-08-24 | シャープ株式会社 | 制御フロー保護機構 |
JP2008305128A (ja) * | 2007-06-07 | 2008-12-18 | Panasonic Corp | 情報処理装置及び改竄検証方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8843761B2 (en) | Method and apparatus for protection of a program against monitoring flow manipulation and against incorrect program running | |
US7716495B2 (en) | Protection against runtime function attacks | |
JPH04259036A (ja) | プログラム変換方式及びプログラム不正動作検出機構 | |
US9323920B2 (en) | Data processing arrangement and method for ensuring the integrity of the execution of a computer program | |
JP2004280801A (ja) | プロセッサおよびこのプロセッサ用のプログラムを生成するコンパイラ装置 | |
CN104680043A (zh) | 一种可执行文件的保护方法及装置 | |
TW200805147A (en) | Securised microprocessor with jump verification | |
JP2007058588A (ja) | プログラム保護機能を持つプロセッサ | |
WO2023132210A1 (ja) | 情報処理装置および情報処理方法 | |
JPH05216721A (ja) | 電子計算機 | |
Li et al. | A Static CFG Extraction Scheme for RISC-V Runtime CFI | |
ATE256886T1 (de) | Verfahren und vorrichtung zur verzweigungssteuerung in einem pipelineprozessor | |
JP2005128773A (ja) | マイクロプロセッサ及びコンパイル方法 | |
JPH02165760A (ja) | 再開処理制御方式 | |
JPS6362047A (ja) | プログラムシ−ケンスの異常検知方式 | |
CN114661344A (zh) | 二进制文件的指令恢复方法、***、电子设备和存储介质 | |
JPS61223952A (ja) | デ−タ処理装置のリトライ機能確認方式 | |
JP2535984B2 (ja) | 命令実行検出装置 | |
CN112765009A (zh) | 一种汇编程序的形式验证的方法 | |
JPH04306743A (ja) | 集積回路マイクロプロセッサのデバッグ支援システム | |
JPS62144246A (ja) | 計算機 | |
JPH0223433A (ja) | プログラムのデバッグ方式 | |
JPS63236142A (ja) | ソフトウエア監視装置 | |
JPS59116858A (ja) | マシンチエツク割込み処理方式 | |
JPS58109946A (ja) | プログラムのデバツギング方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19980514 |