JP2001202237A - プログラム変換装置およびその機能を実現するためのプログラムを記録した記憶媒体 - Google Patents

プログラム変換装置およびその機能を実現するためのプログラムを記録した記憶媒体

Info

Publication number
JP2001202237A
JP2001202237A JP2000011849A JP2000011849A JP2001202237A JP 2001202237 A JP2001202237 A JP 2001202237A JP 2000011849 A JP2000011849 A JP 2000011849A JP 2000011849 A JP2000011849 A JP 2000011849A JP 2001202237 A JP2001202237 A JP 2001202237A
Authority
JP
Japan
Prior art keywords
program
dummy data
dummy
program conversion
conversion device
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
JP2000011849A
Other languages
English (en)
Inventor
Tadashi Ueda
直史 上田
Akira Hamada
明 濱田
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2000011849A priority Critical patent/JP2001202237A/ja
Publication of JP2001202237A publication Critical patent/JP2001202237A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 コンピュータが実行可能なバイナリデータ中
に、容易に解析ができないようにダミーデータの埋め込
み場所を設定することができるプログラム変換装置を提
供する。 【解決手段】 高水準言語のソースプログラム1をコン
ピュータが実行可能なバイナリデータ5に変換する際
に、本来の処理とは無関係のダミーデータである旨を示
す予約語(例えば、’dummy’)を設け、実行可能
なバイナリデータ5において、予約語によって指定され
た定数が埋め込まれているアドレスを出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ソースプログラム
をコンパイルおよびリンクすることにより、コンピュー
タが実行可能なバイナリデータを生成するためのプログ
ラム変換装置に関し、特に、生成したバイナリデータ中
にダミーデータを格納する箇所を確保することができる
プログラム変換装置に関する。
【0002】
【従来の技術】従来より、プログラムの盗用を抑止した
り、あるいは盗用されていることを証明するために、著
作権表示をプログラムに組み込むことが行われている。
例えば、プログラムに対する著作権表示の組み込みを自
動化する方法が、特開昭62−235640号公報に開
示されている。
【0003】しかしながら、このような著作権表示をポ
ジティブに行うと、著作権表示の削除あるいは改変も容
易となり好ましくない。このような不都合を解消するた
めに、検証用データを単純には読みとれない形に変換
し、コンピュータが実行可能なバイナリデータ中に変換
後の検証用データを埋め込む技術が、特開平10−29
3687号公報に開示されている。
【0004】
【発明が解決しようとする課題】しかしながら、特開平
10−293687号公報に開示された技術のように、
プログラム中に、変換された著作権表示や開発者しか分
からないダミーデータを埋め込むことができたとして
も、リバース・エンジニアリングによりプログラムを解
析して、当該ダミーデータが埋め込まれた箇所を、処理
が通らない箇所として抽出することが可能である。
【0005】このため、単にダミーデータを埋め込んで
あるだけでは、比較的容易に当該ダミーデータの削除を
行うことができる。また、埋め込まれたダミーデータを
参照することにより、対象プログラムの実行を許可/禁
止するような仕組みを構築してあったとしても、参照す
るダミーデータの所在が判明してしまえば、当該ダミー
データ自体がプロテクトの仕組みを解析するための手が
かりとなってしまう。
【0006】本発明は、上述した事情に鑑み提案された
もので、コンピュータが実行可能なバイナリデータ中
に、容易に解析ができないようにダミーデータの埋め込
み場所を設定することができるプログラム変換装置を提
供することを目的とする。
【0007】
【課題を解決するための手段】本発明に係るプログラム
変換装置は、上述した目的を達成するために、以下の特
徴点を備えている。すなわち、本発明に係るプログラム
変換装置は、高水準言語のソースプログラムをコンピュ
ータが実行可能なバイナリデータに変換するプログラム
変換装置であって、本来の処理と関係のないダミーデー
タを示す予約語を設け、該予約語によって指定された定
数を識別して、変換された実行可能なバイナリデータ中
に埋め込まれた前記予約語のアドレスを出力するプログ
ラム変換手段を備えることを特徴とする。
【0008】また、本発明に係るプログラム変換装置
は、高水準言語のソースプログラムをコンピュータが実
行可能なバイナリデータに変換するプログラム変換装置
であって、本来の処理と関係のないダミーデータを示す
予約語を設け、該予約語によって指定された定数を識別
して、変換された実行可能なバイナリデータ中に埋め込
まれた前記予約語のアドレスを出力するプログラム変換
手段と、該アドレスに埋め込まれた定数をダミーデータ
に書き換えるダミーデータ調整手段とを備えることを特
徴とする。
【0009】また、前記予約語は、呼び出される手続き
または関数の実引数であるのが好ましい。また、前記ソ
ースプログラムは、前記指定された実引数に対応して呼
び出される手続きまたは関数の仮引数に対して前記予約
語を指定可能とし、前記プログラム変換手段は、前記仮
引数を参照する記述がある場合には、ユーザに警告を発
するようにしてもよい。
【0010】また、前記プログラム変換手段は、前記指
定可能な定数を制限し、当該制限された定数以外の定数
が指定された場合には、この指定を無視して変換処理を
継続し、その旨をユーザに報知するようにしてもよい。
【0011】また、前記プログラム変換手段は、前記指
定された定数の処理を最適化しないようにしてもよい。
【0012】また、前記ダミーデータ調整手段は、予め
指定されたダミーデータ量と作成されたダミーデータ量
と比較して、不足している場合には、その旨をユーザに
報知するようにしてもよい。
【0013】また、前記ダミーデータ調整手段は、予め
指定されたダミーデータ量と作成されたダミーデータ量
と比較して、過剰な場合には、過剰分のダミーデータを
自動的に削除するようにしてもよい。
【0014】また、本発明は、上記記載のプログラム変
換装置におけるプログラム変換手段とダミーデータ調整
手段の全部又は一部の機能を実現するためのプログラム
を記録したことを特徴とする記憶媒体である。
【0015】上述したように、本発明に係るプログラム
変換装置では、CPUが直接アドレッシングでプログラ
ムから取り込むデータの一部をダミーデータ(予約語)
とすることにより、機械的なチェックではダミーデータ
部分と本来の処理に必要な部分とを切り分けることが困
難となる。すなわち、ダミーデータを示す予約語は、デ
ータ型を示す宣言の一種であり、他の予約語とともにプ
ログラム変換手段に設定されている。処理対象のソース
プログラムに予約語が記述されていた場合に、プログラ
ム変換手段が対応する定数をダミーデータと認識し、そ
のアドレスを出力する。具体的には、ソースプログラム
に対して、ダミーデータで置き換えるための定数を指定
できるようにしておき、コンパイル処理およびリンク処
理において、指定された定数をトレースすることによ
り、実行可能なバイナリデータ中で最終的に割り付けら
れたダミーデータ(予約語)のアドレスを割り出す。ダ
ミーデータそのものがソースプログラムに書き込まれて
いる場合と、仮のダミーデータが書き込まれている場合
が考えられる。前者の場合は、プログラム変換手段のみ
でよいが、後者の場合は、さらに後でダミーデータ調整
手段により仮のダミーデータを本来のダミーデータに置
き換える。
【0016】
【発明の実施の形態】以下、図面に基づいて、本発明に
係るプログラム変換装置の実施形態の一例を説明する。
【0017】図1は、本発明に係るプログラム変換装置
の一実施形態の概略構成図である。本発明に係るプログ
ラム変換装置は、図1に示すように、プログラム部11
と処理部11と入出力部8とからなる構成である。プロ
グラム部10には、前記処理部11で処理されるソース
プログラム1、オブジェクトプログラム3、実行イメー
ジバイナリデータ(1)5、実行イメージバイナリデー
タ(2)7が存在する。処理部11は、コンパイラ2、
リンカ4,ダミーデータ調整手段6を備えている。コン
パイラ2、リンカ4は、高水準言語のソースプログラム
をコンピュータが実行可能なバイナリデータに変換する
プログラム変換手段である。
【0018】入出力部8は、処理部11に接続してコン
パイラ2、リンカ4、ダミーデータ調整手段6に指示を
行うための装置からなり、コンパイラ2等からのエラー
や警告メッセージ等を表示することができる。この入出
力部8は、例えば、キーボードと、CRTまたはLCD
ディスプレイにより構成される。
【0019】コンパイラ2、リンカ4、ダミーデータ調
整手段6は、CPUによって実行されるプログラムとし
て実現されるもので、通常の場合、このプログラムはハ
ードディスクに格納されており、必要に応じてRAMに
ロードして実行されるようになっている。
【0020】次に、処理部11の各処理の概略について
説明する。コンパイラ2は、人間が読み取りやすい形式
の高水準言語で書かれたのソースプログラム1を、コン
ピュータが解釈できる一連のバイナリデータ(コンピュ
ータの命令の集合)であるオブジェクトプログラム3に
変換する。ソースプログラム1を生成するための高水準
言語としては、C言語(図3に示す言語)のほかに、手
続きを記述可能なPL/1やPascal等の言語を使
用することができる。
【0021】オブジェクトプログラム3は、実際にはバ
イナリデータであるが、説明を容易にするため、本実施
形態においては、図5〜図8に示すようなコンピュータ
命令と対応するニーモニックで表現する。なお、以下の
説明では、例えば8086系のCPUを想定している。
【0022】一般的に、ある程度以上の大きさのプログ
ラムでは、ソースプログラム1は複数のファイルに分け
て記述されており、各ファイルがそれぞれコンパイルさ
れて、複数のファイルからなるオブジェクトプログラム
3が生成される。リンカ4は、生成された複数のオブジ
ェクトプログラム3と、使用されている組み込み関数等
のライブラリを繋ぎ合わせて、コンピュータで実行可能
な実行イメージバイナリデータ(1)5を生成する。オ
ブジェクトプログラム3の段階では、アドレスはシンボ
ルとして付加情報を保持しており(アドレスは単なる記
号)、リンカ4で繋ぎ合わせることにより最終的に参照
するアドレスが解決される(アドレスとしての意味をな
す)。
【0023】さらに、コンパイラ2により、ソースプロ
グラム1に記述されたダミーデータに該当する定数を読
み取って、オブジェクトプログラム3中に埋め込まれる
前記定数の位置(領域)を示すダミーアドレス(0)3
aを生成する。また、リンカ4は、ダミーアドレス
(0)3aを読み込んで、実行イメージバイナリデータ
(1)5中のダミーデータに対応する定数の位置(領
域)を示すダミーアドレス(1)5aを生成する。ここ
で、ダミーアドレス(0)3aは、シンボリックな表現
からなり、ダミーアドレス(1)5aは、最終的に解決
されたアドレスからなる。
【0024】最後に、ダミーデータ調整手段6により、
ダミーアドレス(1)5aを参照して、実行イメージバ
イナリデータ(1)5中の定数を所望の値(ダミーデー
タ)に置き換え、実行イメージバイナリデータ(2)7
を生成する。
【0025】上述した操作により、例えば、図2に示す
ように、複数のROM110〜140にまたがるプログ
ラム中に、ダミーデータ領域115a〜145bを設定
し、このダミーデータ領域115a〜145bに、例え
ば「○△×ソフトウエア」という所望のダミーデータを
埋め込むことができる。
【0026】次に、各処理について、具体的に説明す
る。図3に示すように、ソースプログラム1において、
定数が実際の処理とは関係のないダミーデータであるこ
とを示す予約語(例えば、’dummy’)を設けて、
コンパイラ2がダミーデータを識別できるようにしてい
る。この予約語はソースプログラムにおける変数であ
り、任意の定数を指定できる。しかし、実際の処理に対
する副作用を引き起こさないようにするために、ダミー
データとして使用できる定数は、図3に示すような自動
変数(cc)への代入や手続き(関数)呼び出しの実引数
等に限定しておくことが好ましい。特に、プログラムが
実行される際に、「0」が代入されることによりエラー
となる除数等のように、後に値が変わると支障が出る個
所は、ダミー指定されても無視するようにする必要があ
る。
【0027】さらに、ダミーデータの実引数(XX,
(int)0,(dummy int)1)に対応する
仮引数の変数(ff,ee,dd)にも、同じ予約語を
指定できるようにして、呼び出される側でもこれがダミ
ーデータであることをコーディング中に把握しやすくす
るとともに、この指定のある仮引数を参照している場合
には、コンパイラ2によりその旨を警告することが好ま
しい。このことにより、ユーザに対して、ダミーデータ
を受け取る仮引数を誤って使用しないように注意を喚起
することができる。
【0028】コンパイラ2が、図3に示す引数あるいは
代入部分をどのようなオブジェクトプログラムに変換す
るか説明する前に、図4を用いて、8086系における
手続き(関数)呼び出し前後の引数扱いと自動変数領域
の確保について説明する。すなわち、スタックにおける
各データ、引数の格納領域について説明する。
【0029】図4に示すように、まず呼び出し側で、レ
ジスタの値をスタックに退避した後、実引数をスタック
に積む(図4(a))。次に、手続き呼び出しを行う
と、戻り番地が自動的にスタックに積まれ、制御が呼び
出された側に移る(図4(b))。呼び出された側は、
スタックポインタ(図中、SPと記す)の値をベースポ
インタ(図中、BPと記す)にコピーし、自動変数が必
要であればその領域を確保するためにスタックポインタ
をさらに減算する(図4(c))。これにより、呼び出
された手続き(関数)は、「BP+変位」で仮引数を参
照でき、「BP−変位」で自動変数を参照できることに
なる。
【0030】したがって、図3に示す手続き(関数)呼
び出しにおいて、図4(a)に示すように実引数をスタ
ックに積む部分は、コンパイラにより、図5に示すよう
に変換される。すなわち、図5に示すように、まず、M
OV命令で「AX」に「1」をセットし、PUSH命令
でその「AX」の内容をスタックに積むステップが、ダ
ミー指定した「定数1」に対応している。この「AX」
に直接定数をセットする命令では、セットされる定数も
プログラムの中に確保される。
【0031】図5に示すラベル「dmy01」に対応す
るアドレスに、「AX」に直接データをセットする1バ
イトの命令(0xB8)が入り、続く2バイトに定数が
低い方から順にスタックに入る。
【0032】コンパイラ2では、「dmy01+1」と
「dmy01+2」にダミーデータ(定数)が入ったこ
とがわかるので、この「dmy01」に依存するシンボ
リックな2バイトのアドレスをダミーアドレス(0)3
aに書き込む。リンカ4は、オブジェクトファイルを繋
ぎ合わせてアドレスを解決するので、この2バイトのア
ドレスも「dmy01」に対する相対から、実行イメー
ジバイナリデータ(1)5に対応するアドレスデータに
変換され、ダミーアドレス(1)5aに書き込まれる。
上述した処理により、ダミーデータ調整手段6が操作し
て差し支えないダミーデータ領域がわかることになる。
【0033】同様に、図3に示す自動変数(cc)への
代入部分は、図4(c)に示す関係となるので、コンパ
イラ2によって、図6に示すように変換され、セットさ
れる定数がプログラム中に確保される。図6に示すラベ
ル「dmy02」に対応するアドレスから、[BP−2]
に直接データをセットする3バイトの命令(0xC7、
0x46、0xFE)が入り、続く2バイトに定数が低
い方から順にスタックに入る。この場合には、「dmy
02+3」と「dmy02+4」が、ダミーデータの入
っているアドレスということになる。
【0034】なお、同じ値の引数が続く場合や、同じ値
を続けて代入する場合には、図7に示すように、コンパ
イラ2は最適化を行って不要な命令を削除するのが普通
である。しかし、ダミーデータは後で変更するので、図
8に示すように、ラベル(X0001)で区切っておく
などして、ダミーデータ部分が最適化によって消滅した
り、他の部分に影響を与えたりしないようにする必要が
ある。
【0035】また、図2に示す例のように、複数のRO
M115a〜145bに対して、必要な埋め込みデータ
を分散して持たせたい場合には、予め多めにダミーデー
タを指定しておき、リンカ4がオブジェクトファイルを
繋ぎ合わせる際に調整すればよい。例えば、図9に示す
ような手順により、オブジェクトファイルを繋ぎ合わせ
た後に、ダミー調整手段6がダミーデータの量をチェッ
クする。
【0036】まず、ユーザが、入出力部8から多めにダ
ミーデータを指定しておく。図9に示すように、まず、
ダミー調整手段は、ROMの各ブロックにおけるダミー
データの個数をチェックする(S1)。そして、チェッ
クしたダミーデータの個数に基づいて、ダミーデータの
全個数が不足しているか否かを判断する(S2)。
【0037】また、ダミーデータの全個数が不足してい
る場合には、さらに、ダミーデータの個数が所定数に満
たないブロックがあるか否かを判断する(S3)。ここ
で、ダミーデータの全個数が不足している場合、および
ダミーデータの個数が所定数に満たないブロックが存在
する場合には、ユーザに対して不足状況の報知を行い、
異常リターンする。これを認識したユーザは、不足ブロ
ックにダミーデータを追加するようにソースファイルを
変更して、再度コンパイル処理およびリンク処理を行う
ことになる。
【0038】一方、ダミーデータの全個数が不足してい
ないとともに、ダミーデータの個数が所定数に満たない
ブロックが存在しない場合には、ステップ1(S1)に
おけるチェック結果に基づいて、ダミーデータの全個数
が過剰であるか否かを判断する(S5)。ここで、ダミ
ーデータの全個数が過剰でない場合、すなわち、ダミー
データが所定の条件を全て満たしているばあいには、正
常リターンする。
【0039】一方、ダミーデータの全個数が過剰である
場合には、ダミーデータの多いブロックから削減するダ
ミーデータを決定する(S6)。そして、この結果をコ
ンパイラ2に伝えて(S7:図1の破線の矢印)、異常
リターンする。これを受けて、コンパイラ2は、過剰の
ダミーデータを削減したオブジェクトファイル3を作り
直す。上述した処理により、必要なダミーデータが各ブ
ロックに分散した実行イメージのバイナリデータを得る
ことができる。
【0040】
【発明の効果】本発明に係るプログラム変換装置は、上
述した構成を有するため、以下の効果を奏する。
【0041】本発明に係るプログラム変換装置では、ソ
ースプログラムにおいて、本来の処理とは無関係のダミ
ーデータである旨を示す予約語を設け、プログラム変換
手段が、ソースプログラムをバイナリデータに変換する
とともに、予約語によって指定された定数が埋め込まれ
ているアドレスを出力している。したがって、バイナリ
データの間に処理が通らない部分を設けてダミーデータ
を埋め込む従来の技術と比較して、処理が通らない部分
が存在しないため、機械的に埋め込まれたデータを発見
することが困難となる。さらに、ダミー領域の確保をソ
ースレベルで行うので、ダミーデータが本来の処理に影
響を与えるようなバグが発生し難くなる。また、本発明
に係るプログラム変換装置では、バイナリデータにおい
て、予約語によって指定された定数が埋め込まれている
アドレスのデータを、ダミーデータに書き換えるので、
手続きを繋ぎ合わせる順序が変更されたり、手続きの追
加削除が行われた場合であっても、最終的に生成された
実行可能なバイナリデータ中のダミーデータの領域に、
所望の順序でダミーデータを埋め込むことができる。な
お、手続きを繋ぎ合わせる順序を決めていない場合にも
同様の効果を奏することができる。
【0042】また、本発明に係るプログラム変換装置で
は、予約語によって、ソースプログラムの手続きまたは
関数呼び出しにおける実引数の定数をダミー指定可能と
している。したがって、一つの手続きの中だけではな
く、呼び出した手続きを辿っていかないと、ダミーデー
タかどうかを判別することができないので、コンピュー
タが実行可能なバイナリデータに対するリバース・エン
ジニアジングによりプログラムが解析され、プログラム
が改竄あるいは盗用されることを効果的に防止すること
ができる。
【0043】また、本発明に係るプログラム変換装置で
は、ダミー指定された実引数に対応して呼び出される手
続きまたは関数の仮引数に対して予約語を指定可能と
し、ソースプログラムにおいて、仮引数を参照する記述
がある場合には、ユーザに警告を発しているので、した
がって、ユーザに対して、ダミーデータを受け取る仮引
数を誤って使用しないように注意を喚起することができ
る。
【0044】また、本発明に係るプログラム変換装置で
は、予約語によってダミー指定可能な定数を制限し、当
該制限された定数以外の定数がダミー指定された場合に
は、このダミー指定を無視して変換処理を継続し、その
旨をユーザに報知している。すなわち、ソースプログラ
ムをコンピュータが実行可能なバイナリデータに変換す
る際に、命令とともに当該バイナリデータ中に取り込ま
れるデータに変換されない定数は、ダミー指定しても無
駄である。例えば、定数との掛け算が、シフトと足し算
とに置き換えられるようになっている場合である。ま
た、後にデータが変更されると、実行時にエラーになる
可能性のある個所をダミー指定されると、本来の処理に
支障が出る可能性がある。例えば、配列の添え字や除数
などである。しがって、上述した構成とすることによ
り、仮にこれらの不適当な定数に対してダミー指定が行
われた場合であっても、処理を続行することができる。
また、ユーザは、ダミーデータのアドレスが出力されな
い理由を知ることができる。
【0045】また、本発明に係るプログラム変換装置で
は、予約語によってダミー指定された定数の処理を最適
化しない。したがって、ソースプログラムでは区別して
いた本来の処理とダミーデータの処理とが、最適化によ
り統合されないので、コンピュータが実行可能なバイナ
リデータにおいて、ダミーデータが消滅することがな
い。
【0046】また、本発明に係るプログラム変換装置で
は、所定のダミーデータ量を予め指定可能とし、作成さ
れたダミーデータ量が所定のダミーデータ量と比較して
不足している場合には、その旨をユーザに報知してい
る。したがって、報知を受けたユーザは、ソースプログ
ラムのダミー指定を増やして、必要なダミーデータ領域
を確保することができる。
【0047】また、本発明に係るプログラム変換装置で
は、所定のダミーデータ量を予め指定可能とし、作成さ
れたダミーデータ量が所定のダミーデータ量と比較して
過剰な場合には、過剰分のダミーデータを自動的に削除
している。したがって、ダミー処理を減らすことがで
き、実行イメージバイナリデータの容量が削減されると
ともに、不必要な処理速度の低下を防止することができ
る。
【0048】また、本発明に係る記憶媒体には、上述し
たプログラム変換装置の全部または一部の機能を実現す
るためのプログラムを記録している。したがって、この
記憶媒体に記録されたプログラムをコンピュータまたは
CPUで実行することにより、容易にプログラム変換装
置の全部または一部の機能を実現することができる。
【図面の簡単な説明】
【図1】本発明に係るプログラム変換装置の一実施形態
を示す概略構成図である。
【図2】ダミーデータを埋め込む領域を示すROMの概
念図である。
【図3】高水準言語の一例であるC言語によるソースプ
ログラム例である。
【図4】スタックにおける手続き(関数)呼び出し前後
の引数扱いと自動変数領域の確保を示す概念図である。
【図5】オブジェクトプログラムの一例をニーモニック
で表現した説明図である。
【図6】オブジェクトプログラムの一例をニーモニック
で表現した説明図である。
【図7】オブジェクトプログラムの一例をニーモニック
で表現した説明図である。
【図8】オブジェクトプログラムの一例をニーモニック
で表現した説明図である。
【図9】ダミーデータ量のチェック手順を示すフローチ
ャートである。
【符号の説明】
1 ソースプログラム 2 コンパイラ 3 オブジェクトプログラム 4 リンカ 5 実行イメージバイナリデータ(1) 6 ダミーデータ調整手段 7 実行イメージバイナリデータ(2) 8 入出力部 10 プログラム部 11 処理部

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 高水準言語のソースプログラムをコンピ
    ュータが実行可能なバイナリデータに変換するプログラ
    ム変換装置であって、 本来の処理と関係のないダミーデータを示す予約語を設
    け、該予約語によって指定された定数を識別して、変換
    された実行可能なバイナリデータ中に埋め込まれた前記
    予約語のアドレスを出力するプログラム変換手段を備え
    ることを特徴とするプログラム変換装置。
  2. 【請求項2】 高水準言語のソースプログラムをコンピ
    ュータが実行可能なバイナリデータに変換するプログラ
    ム変換装置であって、 本来の処理と関係のないダミーデータを示す予約語を設
    け、該予約語によって指定された定数を識別して、変換
    された実行可能なバイナリデータ中に埋め込まれた前記
    予約語のアドレスを出力するプログラム変換手段と、 該アドレスに埋め込まれた定数をダミーデータに書き換
    えるダミーデータ調整手段と、 を備えることを特徴とするプログラム変換装置。
  3. 【請求項3】 前記予約語は、呼び出される手続きまた
    は関数の実引数であることを特徴とする請求項1又は2
    記載のプログラム変換装置。
  4. 【請求項4】 前記ソースプログラムは、前記指定され
    た実引数に対応して呼び出される手続きまたは関数の仮
    引数に対して前記予約語を指定可能とし、 前記プログラム変換手段は、前記仮引数を参照する記述
    がある場合には、ユーザに警告を発することを特徴とす
    る請求項3記載のプログラム変換装置。
  5. 【請求項5】 前記プログラム変換手段は、前記指定可
    能な定数を制限し、当該制限された定数以外の定数が指
    定された場合には、この指定を無視して変換処理を継続
    し、その旨をユーザに報知することを特徴とする請求項
    1、2、3又は4記載のプログラム変換装置。
  6. 【請求項6】 前記プログラム変換手段は、前記指定さ
    れた定数の処理を最適化しないことを特徴とする請求項
    1〜5のいずれかに記載のプログラム変換装置。
  7. 【請求項7】 前記ダミーデータ調整手段は、予め指定
    されたダミーデータ量と作成されたダミーデータ量と比
    較して、不足している場合には、その旨をユーザに報知
    することを特徴とする請求項1〜6のいずれかに記載の
    プログラム変換装置。
  8. 【請求項8】 前記ダミーデータ調整手段は、予め指定
    されたダミーデータ量と作成されたダミーデータ量と比
    較して、過剰な場合には、過剰分のダミーデータを自動
    的に削除することを特徴とする請求項1〜6のいずれか
    に記載のプログラム変換装置。
  9. 【請求項9】 請求項1〜8のいずれかに記載のプログ
    ラム変換装置におけるプログラム変換手段とダミーデー
    タ調整手段の機能を実現するためのプログラムを記録し
    たことを特徴とする記憶媒体。
  10. 【請求項10】 請求項1〜8のいずれかに記載のプロ
    グラム変換装置におけるプログラム変換手段とダミーデ
    ータ調整手段の一部の機能を実現するためのプログラム
    を記録したことを特徴とする記憶媒体。
JP2000011849A 2000-01-20 2000-01-20 プログラム変換装置およびその機能を実現するためのプログラムを記録した記憶媒体 Pending JP2001202237A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000011849A JP2001202237A (ja) 2000-01-20 2000-01-20 プログラム変換装置およびその機能を実現するためのプログラムを記録した記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000011849A JP2001202237A (ja) 2000-01-20 2000-01-20 プログラム変換装置およびその機能を実現するためのプログラムを記録した記憶媒体

Publications (1)

Publication Number Publication Date
JP2001202237A true JP2001202237A (ja) 2001-07-27

Family

ID=18539659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000011849A Pending JP2001202237A (ja) 2000-01-20 2000-01-20 プログラム変換装置およびその機能を実現するためのプログラムを記録した記憶媒体

Country Status (1)

Country Link
JP (1) JP2001202237A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100414501C (zh) * 2006-07-18 2008-08-27 华为技术有限公司 一种嵌入式操作系统加载逻辑文件的方法和嵌入式系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100414501C (zh) * 2006-07-18 2008-08-27 华为技术有限公司 一种嵌入式操作系统加载逻辑文件的方法和嵌入式系统

Similar Documents

Publication Publication Date Title
US6247169B1 (en) Structured exception-handling methods, apparatus, and computer program products
US7822723B2 (en) Method, system, program and data structure for controlling access to sensitive functions
EP0707264A2 (en) System and method for determining whether a software package conforms to packaging rules and requirements
US7036111B2 (en) Code verification system and method
US8141035B2 (en) Method for accessing internal states of objects in object oriented programming
CN111176722B (zh) 第三方库的文件版本检测方法、装置及存储介质
US6185578B1 (en) Program creation apparatus, program creation method, and recording medium containing a software program for implementing the method
US5819252A (en) Method and apparatus for handling and detecting an invalid use of a data structure
JP4806158B2 (ja) マークアップ内でサブクラスを宣言的に定義し、使用するためのシステムおよび方法
US7458071B2 (en) Compilation method, compiler apparatus and compiler
US20050102649A1 (en) Strategy for referencing code resources
JP3555858B2 (ja) プログラムの編集方法、シングルパッケージ化システム、プログラム開発システム、プログラムの身元情報付加システム及び記憶媒体
JP2001202237A (ja) プログラム変換装置およびその機能を実現するためのプログラムを記録した記憶媒体
US7404083B2 (en) Image signal analysis for watermark detection and decoding
JPH09128267A (ja) データ処理装置およびデータ処理方法
JP7348492B2 (ja) 情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
US5388263A (en) Procedure state descriptor system for digital data processors
US6701331B1 (en) Data processing device and method of processing data
US20040015876A1 (en) Method and structure of implementing a safe pointer
US20010016939A1 (en) Convention checking apparatus, convention checking system, convention checking method, and storage medium on which is recorded a convention checking program
US7398513B2 (en) Method and system of detecting invalid function calls between segments in generating a computer program
CN109460640A (zh) 一种Java程序保护方法、装置、设备及可读存储介质
CN114489683B (zh) 一种类java语言基于JVM的函数式编程语法实现方法
JP2012018641A (ja) ソフトウェア開発システム
JP2002055852A (ja) オブジェクトの生成・消滅情報管理方式