(57)【要約】【課題】  １台のコンピュータでのみ動作可能で、プログラム解析等が困難であり、セキュリティ機能が高いインストーラ、インストーラ管理装置、及び、ソフトウエア管理装置を提供する。【解決手段】  インストーラ管理装置を起動すると、格納されているインストーラにＭＡＣアドレスが組み込まれ、インストーラが生成、起動される。インストーラは、格納され又は取得したＭＡＣアドレスとを比較し、一致した場合にのみ起動し、ソフトウエア管理装置を生成する。インストーラ管理装置はインストーラの終了を待って削除する。ソフトウエア管理装置を起動すると、格納され又は取得したＭＡＣアドレスが一致した場合にのみ動作を行い、ソフトウエアを生成、起動する。ソフトウエアは、格納され又は取得したＭＡＣアドレスが一致した場合にのみ動作を行う。ソフトウエア管理装置はソフトウエアの終了を待って削除する。【選択図】  図８
2010073218.tif 000002
【特許請求の範囲】
【請求項１】
１電子機器にのみ唯一動作を許可するソフトウエアであって、
動作する電子機器に固有の指標を確保する固有指標確保手段と、
初回起動時、動作する電子機器に固有の指標を実行体の固有指標確保手段にバイナリの状態で格納する固有指標格納手段と、
起動時、起動時に取得した動作する電子機器に固有の指標と固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する固有指標一致動作継続許可手段と
を有することを特徴とする１電子機器唯一動作許可ソフトウエア。
【請求項２】
第1のソフトウエアが組み込まれた第２のソフトウエアであり、第１及び／又は第２のソフトウエアが１電子機器にのみ唯一動作を許可するソフトウエアであって、
第１のソフトウエアを確保した第１のソフトウエア確保手段と、
第１のソフトウエアを生成する第１のソフトウエア生成手段と
を第２のソフトウエアに有し、
第１及び／又は第２のソフトウエアの少なくとも一方に、
動作する電子機器に固有の指標を確保する固有指標確保手段と、
起動時、起動時に取得した動作する電子機器に固有の指標と固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合のみ動作継続を許可する固有指標一致動作継続許可手段と
を有し、
第１のソフトウエアに前記固有指標確保手段と前記固有指標一致動作継続許可手段を有している場合、
初回起動時、動作する電子機器に固有の指標を第1のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第1のソフトウエア存在第1のソフトウエア固有指標格納手段
を第１のソフトウエアに備えるか、又は、
初回起動時、動作する電子機器に固有の指標を第1のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第２のソフトウエア存在第1のソフトウエア固有指標格納手段
を第２のソフトウエアに備え、
第２のソフトウエアに前記固有指標確保手段と前記固有指標一致動作継続許可手段を有している場合、
初回起動時、動作する電子機器に固有の指標を第２のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第２のソフトウエア存在第２のソフトウエア固有指標格納手段
を第２のソフトウエアに備え、
第１及び第２のソフトウエアの両方に前記固有指標確保手段と前記固有指標一致動作継続許可手段を有している場合、
動作する電子機器に固有の指標を第２のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第２のソフトウエア存在第２のソフトウエア固有指標格納手段
を第２のソフトウエアに備え、さらに、
動作する電子機器に固有の指標を第１のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第1のソフトウエア存在第1のソフトウエア固有指標格納手段
を第１のソフトウエアに備えるか、又は、
動作する電子機器に固有の指標を第１のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第２のソフトウエア存在第１のソフトウエア固有指標格納手段
を第２のソフトウエアに備えることを特徴とする１電子機器唯一動作許可ソフトウエア。
【請求項３】
請求項２に記載の１電子機器唯一動作許可ソフトウエアにおいて、第１のソフトウエアを確保した第１のソフトウエア確保手段は第１のソフトウエアを確保する為の第１のソフトウエア確保用意手段とした１電子機器唯一動作許可ソフトウエア生成装置であって、
第１のソフトウエア確保手段に第１のソフトウエアを格納する第１のソフトウエア格納手段を備える
ことを特徴とする１電子機器唯一動作許可ソフトウエア生成装置。
【請求項４】
請求項２に記載の１電子機器唯一動作許可ソフトウエアにおいて、
動作する電子機器に固有の指標がインストールする電子機器に固有の指標であり、請求項２に記載の１電子機器唯一動作許可ソフトウエアは、１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）であることを特徴とする１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）。
【請求項５】
請求項２に記載の１電子機器唯一動作許可ソフトウエアにおいて、
第１のソフトウエアを起動する第１のソフトウエア起動手段を第２のソフトウエアに有し、
第２のソフトウエアが起動時、固有指標一致動作継続許可手段を第２のソフトウエアに有する場合、第１のソフトウエアの終了を待機して第１のソフトウエアを削除する終了待機削除手段を有し、第１のソフトウエアのみが、固有指標一致動作継続許可手段を有する場合、第１のソフトウエアが起動後、第２のソフトウエアを削除する起動後削除手段を第１のソフトウエアに有する
ことを特徴とする１電子機器唯一動作許可ソフトウエア管理装置。
【請求項６】
請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置の動作する電子機器に固有の指標がインストールする電子機器に固有の指標であり、
請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置を請求項４に記載の１電子機器唯一動作許可インストーラの第１のソフトウエア及び／又は第２のソフトウエアとし、
請求項４に記載の第２のソフトウエアとした場合、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置の第１のソフトウエアを確保した第１のソフトウエア確保手段と、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置の第１のソフトウエアを生成する第１のソフトウエア生成手段とを請求項４に記載の１電子機器唯一動作許可インストーラに備え、
請求項４に記載の第１のソフトウエアとした場合、請求項４に記載の第２のソフトウエアの第１のソフトウエア確保手段は、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置の第２のソフトウエアを確保した手段であり、請求項４に記載の第２のソフトウエアの第１のソフトウエア生成手段は、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置の第２のソフトウエアを生成する手段である
ことを特徴とする１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）。
【請求項７】
請求項６に記載の１電子機器唯一動作許可ソフトウエア管理装置を請求項４に記載の１電子機器唯一動作許可インストーラの第１のソフトウエア及び／又は第２のソフトウエアとし、
請求項４に記載の第２のソフトウエアとした場合、請求項６に記載の１電子機器唯一動作許可ソフトウエア管理装置の第１のソフトウエアを確保した第１のソフトウエア確保手段と、請求項６に記載の１電子機器唯一動作許可ソフトウエア管理装置の第１のソフトウエアを生成する第１のソフトウエア生成手段とを請求項４に記載の１電子機器唯一動作許可インストーラに備え、
請求項４に記載の第１のソフトウエアとした場合、請求項４に記載の第２のソフトウエアの第１のソフトウエア確保手段は、請求項６に記載の１電子機器唯一動作許可ソフトウエア管理装置の第２のソフトウエアを確保した手段であり、請求項４に記載の第２のソフトウエアの第１のソフトウエア生成手段は、請求項６に記載の１電子機器唯一動作許可ソフトウエア管理装置の第２のソフトウエアを生成する手段である
ことを特徴とし、上記の適用関係を少なくとも一回以上繰り返した構成であることを特徴とする１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）。
【請求項８】
請求項４、請求項６、又は請求項７に記載の１電子機器唯一動作許可インストーラにおいて、第１のソフトウエアを確保した第１のソフトウエア確保手段は第１のソフトウエアを確保する為の第１のソフトウエア確保用意手段とした１電子機器唯一動作許可インストーラ生成装置であって、
第１のソフトウエア確保手段に第１のソフトウエアを格納する手段を第１のソフトウエア格納手段を備える
ことを特徴とする１電子機器唯一動作許可インストーラ生成装置。
【請求項９】
第1のソフトウエアを第２のソフトウエアにバイナリの状態で組み込む１電子機器唯一動作許可ソフトウエア生成若しくは製造装置又は１電子機器唯一動作許可インストーラ生成装置であって、
動作する電子機器に固有の指標を確保する固有指標確保手段と、
初回起動時、固有指標確保手段に動作する電子機器に固有の指標を格納する固有指標格納手段と、
起動時、起動時に取得した動作する電子機器に固有の指標と固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合のみ動作継続を許可する固有指標一致動作継続許可手段と
を第1のソフトウエアにバイナリの状態で組み込むことを特徴とする１電子機器唯一動作許可ソフトウエア生成若しくは製造装置又は１電子機器唯一動作許可インストーラ生成装置。
【請求項１０】
動作する電子機器に固有の指標がＭＡＣアドレスである
ことを特徴とする請求項１、若しくは請求項２に記載の１電子機器唯一動作許可ソフトウエア、請求項３に記載の１電子機器唯一動作許可ソフトウエア生成装置、請求項４、請求項６、若しくは請求項７に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置、請求項８に記載の１電子機器唯一動作許可インストーラ生成装置、又は、請求項９に記載の１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置。
【請求項１１】
第１のソフトウエアを第２のソフトウエアに格納する領域及び／又は動作する電子機器に固有の指標を格納する領域に格納するデータは、暗号化されている
ことを特徴とする請求項１、請求項２、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア、請求項３、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成装置、請求項４、請求項６、請求項７、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、請求項５、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア管理装置、請求項８、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ生成装置、又は、請求項９、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置。
【請求項１２】
ソフトウエアに機能を有する手段をバイナリの状態で組み込む、
並びに／若しくは、
ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除する
ことを特徴とするソフトウエア製造装置。
【請求項１３】
ソフトウエアに機能を有する手段をバイナリの状態で組み込むことを特徴とするソフトウエア製造装置であって、
請求項１２に記載のソフトウエア製造装置において、
１．＜コードの挿入＞
１．０  組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
組み込むソフトウエアのコードのどの位置に機能を有する手段を挿入するかを選択判断するコード挿入位置選択判断手段と
を有し、
１．１．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合（コード開始アドレスコール箇所検索手段による判断に依る）であって、コードの開始以前に何らかの処理を行う場合（コード挿入位置選択判断手段による判断に依る）、
（コード記載セクション）ヘッダーのコード記載セクション開始アドレスを検索するコード記載セクション開始アドレス検索手段と、
コード記載セクション開始アドレスからコード記載セクション内を検索し、コード開始アドレスをコールしている箇所を検索するコード記載セクション内コード開始アドレスコール箇所検索手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの開始アドレスの前に、コードを挿入するコード挿入手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに挿入したコードアドレスを減算した開始アドレスに書き換えるコールコード開始アドレス変更手段と
を有し、
１．２．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コード記載セクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの初め、途中、又は最後にコードを挿入するコード挿入手段と
を有し、
２．＜データアドレスの変更＞
２．０  挿入したコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段と
を有し、
挿入したコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用している場合（システムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段による判断に依る）、データをデータセクションに追加するデータセクション追加手段と、
データセクション追加手段により追加したデータのアドレスに挿入するコード内のデータのアドレスを変更する挿入コードデータアドレス変更手段と
を有し、
３．＜機能を有する手段が呼び出し関数群格納ファイルを使用している場合＞
３．０  機能を有する手段が呼び出し関数群格納ファイルを使用しているかどうかを判断する、機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段と
を有し、
３．１＜組み込むソフトウエアの呼び出し関数群格納ファイル存在チェック＞
挿入したコード内に呼び出し関数群格納ファイル被格納呼び出し関数をコールしている場合（機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段による判断に依る）、組み込むソフトウエアの呼び出し関数群呼び出しセクションを検索し、呼び出し関数群格納ファイルが存在するかどうかを検索する呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル存在／非存在検索手段と
を有し、
３．１．１＜組み込むソフトウエアに呼び出し関数群格納ファイルが存在している場合＞
組み込むソフトウエアに呼び出し関数群格納ファイルが存在している場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル存在／非存在検索手段による判断に依る）、
組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在するかどうかを検索する呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル被格納呼び出し関数存在／非存在検索手段と
を有し、
３．１．１．１＜組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在している場合＞
組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在している場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル被格納呼び出し関数存在／非存在検索手段による判断に依る）、
その呼び出し関数群格納ファイル被格納呼び出し関数のアドレスにより挿入するコードの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを変更する挿入コード呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
３．１．１．２＜組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在していない場合＞
組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在していない場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル被格納呼び出し関数存在／非存在検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数を追加し、呼び出し関数群格納ファイル被格納呼び出し関数追加によるサイズ変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内に呼び出し関数群呼び出しセクションの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合、使用している呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
３．１．２＜組み込むソフトウエアに呼び出し関数群格納ファイルが存在していない場合＞
組み込むソフトウエアに呼び出し関数群格納ファイルが存在していない場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル存在／非存在検索手段による判断に依る）、
呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数を呼び出し関数群呼び出しセクションに追加し、呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数追加によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内に呼び出し関数群呼び出しセクションの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合、使用している呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
４．＜機能を有する手段が(コード記載、呼び出し関数群呼び出し、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０  機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１＜組み込むソフトウエアの他のセクションの要素存在チェック＞
挿入したコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、他のセクションを検索し、他のセクションの要素が存在するかどうかを検索する他のセクション要素存在／非存在検索手段と
を有し、
４．１．１＜組み込むソフトウエアに他のセクションの要素存在時＞
組み込むソフトウエアに他のセクションの要素が存在している場合（他のセクション要素存在／非存在検索手段による判断に依る）、
その他のセクションの要素のアドレスにより挿入するコードの他のセクションの要素のアドレスを変更する挿入コード他のセクションの要素アドレス変更手段と
を有し、
４．１．２＜組み込むソフトウエアに他のセクションの要素非存在時＞
組み込むソフトウエアに他のセクションの要素が存在していない場合（他のセクション要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションに追加し、他のセクションの要素追加によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０  コードの挿入により、コード内のアドレスを指定しているかどうかを判断するコード挿入コード内アドレス指定／非指定判断手段と
を有し、
（コードの挿入により、コード内のアドレスを指定していた箇所は、挿入サイズ分全部ずらす）
（コード挿入コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コード記載セクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを挿入したコードサイズ分ずらす挿入コード分アドレスずらし手段と
を有し、
６．
６．０  コード挿入によりコードサイズが初めより大きくなるかどうかを判断するコード挿入コードサイズ大／非大判断手段と
を有し、
（コード挿入によりコードサイズが初めより大きくなる場合）
コード挿入により、コードサイズが（コード記載セクション）ヘッダーに記載されているサイズよりも大きくなる場合（コード挿入コードサイズ大／非大判断手段による判断に依る）、
（コード記載セクション）ヘッダー内に記載のコード記載セクション及び／又はコード記載セクションのコードサイズをコード挿入後のサイズより大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と
を有し、
（コード記載セクション以外の）第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段
を有し、
第１の他のセクション存在時（第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段の判断による判断に依る）、
コードサイズ変更手段により増分したサイズ分、（第１の他のセクション）ヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションの開始アドレスを変更する第１の他のセクション開始アドレス変更手段と、
コード内に第１の他のセクションの要素のアドレスを使用している場合、コード挿入により、第１の他のセクションの要素のアドレスが変化した分、コード内の第１の他のセクションの要素のアドレスを変更するコード内第１の他のセクションの要素アドレス変更手段と
を有し、
６．１  コード挿入により第１の他のセクションサイズが初めより大きくなるかどうかを判断するコード挿入第１の他のセクションサイズ大／非大判断手段と
を有し、
（コード挿入により第１の他のセクションサイズが初めより大きくなる場合）
コード挿入により、第１の他のセクションのサイズが（第１の他のセクション）ヘッダー内に記載されているサイズよりも大きくなる場合（コード挿入により他のセクションサイズが初めより大きくなるかどうかを判断するコード挿入第１の他のセクションサイズ大／非大判断手段による判断に依る）、
（第１の他のセクション）ヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションのサイズを第１の他のセクション挿入後のサイズより大きい規定幅の大きさのサイズに変更する第１の他のセクションサイズ変更手段と
を有し、
（コード記載セクション以外の）第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段と
を有し、
第２の他のセクション存在時（第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段による判断による）、
第１の他のセクションの開始アドレス以降に開始アドレスを有する（第２の他のセクション）ヘッダー内に記載の第２の他のセクション及び／又は第２の他のセクションの開始アドレスを第１の他のセクションの開始アドレスとサイズの増分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード挿入により、第２の他のセクションの要素のアドレスが変化した分、コード内の第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
６．２  第１の他のセクションを第２の他のセクションの開始アドレスを有する他のセクションとして、第１の他のセクションが存在しなくなるまで、６．１の処理を繰り返し実行する、６．１の処理繰り返し実行手段と
を有し、
ソフトウエアに機能を有する手段をバイナリの状態で組み込む
ことを特徴とするソフトウエア製造装置、
並びに／若しくは、
電子機器又はコンピュータ上のプログラムの実行体の実行を監視し、実行体の停止中に、ソフトウエアに機能を有する手段をバイナリの状態で組み込むことを特徴とするソフトウエア製造装置。
【請求項１４】
ソフトウエアに機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とするソフトウエア製造装置であって、
請求項１２又は請求項１３に記載のソフトウエア製造装置において、
ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とするソフトウエア製造装置であって、
＜機能を有する手段のソフトウエア存在／非存在＞
単数又は複数の、（あるアドレスからあるアドレス迄の）固まった単位で存在する機能を有する手段が参照するシステムコール、呼び出し関数群格納ファイル被格納呼び出し関数、呼び出し関数群呼び出しセクション、データセクション、及び／又は、他のデータセクション等のアドレス参照箇所の関数及び／又はデータと、ソフトウエアの該当箇所との一致を含め、機能を有する手段がソフトウエア内に存在するかどうかの判断を行う機能を有する手段ソフトウエア内存在／非存在判断手段と
を及び／又は有し、
＜機能を有する手段のソフトウエア存在時＞（及び／又は機能を有する手段ソフトウエア内存在／非存在判断手段による一致の判断の場合）
１．＜コードの削除＞
１．０．  機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
機能を有する手段を組み込んだ／組み込んでいないソフトウエアのコードのどの位置に機能を有する手段を挿入しているかを選択判断するコード挿入位置選択判断手段と
を有し、
１．１．機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合（コード開始アドレスコール箇所検索手段による判断に依る）であって、コードの開始以前に機能を有する手段を挿入している場合（コード挿入位置選択判断手段による判断に依る）、
（コード記載セクション）ヘッダーのコード記載セクション開始アドレスを検索するコード記載セクション開始アドレス検索手段と、
コード記載セクション開始アドレスからコード記載セクション内を検索し、コード開始アドレスをコールしている箇所を検索するコード記載セクション内コード開始アドレスコール箇所検索手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コード開始アドレスからコード記載セクションの開始アドレス（又は、組み込み前のコード記載セクションの通常の開始アドレス）の前までに挿入したコードを削除するコード削除手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに削除した機能を有する手段のコードアドレスを加算した（又は、通常の）開始アドレスに書き換えるコールコード開始アドレス変更手段と
を有し、
１．２．機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コード記載セクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの初め、途中、又は最後に挿入した機能を有する手段のコードを削除するコード削除手段と
を有し、
２．＜データアドレスの変更＞
２．０  削除した機能を有する手段のコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段と
を有し、
削除した機能を有する手段のコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用している場合（システムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段による判断に依る）、データをデータセクションから削除するデータセクション削除手段と
を有し、
３．＜削除した機能を有する手段が呼び出し関数群格納ファイルを使用している場合＞
３．０．  削除した機能を有する手段が呼び出し関数群格納ファイルを使用しているかどうかを判断する、機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段と
を有し、
３．１．＜他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数使用／非使用チェック＞
削除した機能を有する手段が呼び出し関数群格納ファイルを使用している場合（機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段による判断に依る）、
機能を有する手段が使用している呼び出し関数群格納ファイル被格納呼び出し関数のアドレスを検索する呼び出し関数群格納ファイル被格納呼び出し関数アドレス検索手段と、
機能を有する手段が使用している呼び出し関数群格納ファイル被格納呼び出し関数のアドレスをコード内の他の箇所で使用しているかどうかを検索する他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段と
を有し、
３．１．１．＜他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数を使用していない場合＞
コード内の他の箇所で使用呼び出し関数群格納ファイル被格納呼び出し関数を使用していると判断されなかった場合（他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段による判断に依る）、
呼び出し関数群呼び出しセクション内に、使用呼び出し関数群格納ファイル被格納呼び出し関数が属する呼び出し関数群格納ファイルの他の呼び出し関数群格納ファイル被格納呼び出し関数のアドレスを検索する呼び出し関数群呼び出しセクション内他の呼び出し関数群格納ファイル被格納呼び出し関数アドレス検索手段と
を有し、
３．１．１．１．＜呼び出し関数群呼び出しセクション内に他の呼び出し関数群格納ファイル被格納呼び出し関数が検索された場合＞
呼び出し関数群呼び出しセクション内に他の呼び出し関数群格納ファイル被格納呼び出し関数が検索された場合、
他の呼び出し関数群格納ファイル被格納呼び出し関数をコード内の他の箇所で使用しているかどうかを検索する他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスコード内の他の箇所使用／非使用検索手段と
を有し、
３．１．１．１．１．＜他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していない場合＞
他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していると判断されなかった場合（他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスコード内の他の箇所使用／非使用検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数,呼び出し関数群格納ファイル被格納呼び出し関数の呼び出し関数群格納ファイルに属する全ての他の呼び出し関数群格納ファイル被格納呼び出し関数,呼び出し関数群格納ファイルを削除し、呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数削除によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
３．１．１．１．２．＜他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合＞
他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していると判断された場合（他の呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数を削除し、呼び出し関数群格納ファイル被格納呼び出し関数削除によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
４．＜削除した機能を有する手段が(コード記載、呼び出し関数群呼び出し、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０．  削除した機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１．＜削除した機能を有する手段の他のセクションの要素使用チェック＞
削除した機能を有する手段のコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、コード内の他の箇所に他のセクションの要素を使用しているかどうかを判断するコード内他のセクションの要素存在／非存在検索手段と
を有し、
４．１．１．＜機能を有する手段を組み込んだ／組み込んでいないソフトウエアに他のセクションの要素非存在時＞
機能を有する手段を組み込んだ／組み込んでいないソフトウエアに他のセクションの要素が存在していない場合（コード内他のセクションの要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションから削除し、他のセクションの要素削除によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０．  削除した機能を有する手段の削除により、コード内のアドレスを指定している箇所があるかどうかを判断する、機能を有する手段削除コード内アドレス指定／非指定判断手段と
を有し、
（コードの削除により、コード内のアドレスを指定していた箇所は、削除サイズ分全部ずらす）
（機能を有する手段削除コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コード記載セクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを削除したコードサイズ分ずらす削除コード分アドレスずらし手段と
を有し、
６．
６．０．  機能を有する手段削除によりコードサイズが初めより小さくなるかどうかを判断するコード削除コードサイズ小／非小判断手段と
を有し、
（機能を有する手段削除によりコードサイズが初めより小さくなる場合）
機能を有する手段削除により、コードサイズが（コード記載セクション）ヘッダーに記載されているサイズよりも小さくなる場合（コード削除コードサイズ小／非小判断手段による判断に依る）、
（コード記載セクション）ヘッダー内に記載のコード記載セクション及び／又はコード記載セクションのコードサイズをコード削除後のサイズより大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と
を有し、
（コード記載セクション以外の）第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段
を有し、
第１の他のセクション存在時（第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段の判断による判断に依る）、
コードサイズ変更手段により減分したサイズ分、（第１の他のセクション）ヘッダー内に記載の第１の他のセクションの開始アドレス及び／又は第１の他のセクションを変更する第１の他のセクション開始アドレス変更手段と、
コード内に第１の他のセクションの要素のアドレスを使用している場合、コード削除により、第１の他のセクションの要素のアドレスが変化した分、コード内の第１の他のセクションの要素のアドレスを変更するコード内第１の他のセクションの要素アドレス変更手段と
を有し、
６．１  コード挿入により第１の他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段と
を有し、
（コード挿入により第１の他のセクションサイズが初めより小さくなる場合）
コード削除により、第１の他のセクションのサイズが（第１の他のセクション）ヘッダー内に記載されているサイズよりも小さくなる場合（コード挿入により他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段による判断に依る）、
（第１の他のセクション）ヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションのサイズを第１の他のセクション削除後のサイズより大きい規定幅の大きさのサイズに変更する第１の他のセクションサイズ変更手段と
を有し、
（コード記載セクション以外の）第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段と
を有し、
第２の他のセクション存在時（第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段による判断による）、
第１の他のセクションの開始アドレス以降に開始アドレスを有する（第２の他のセクション）ヘッダー内に記載の第２の他のセクション及び／又は第２の他のセクションの開始アドレスを第１の他のセクションの開始アドレスとサイズの減分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード削除により、第２の他のセクションの要素のアドレスが変化した分、コード内の第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
６．２  第１の他のセクションを第２の他のセクションの開始アドレスを有する他のセクションとして、第１の他のセクションが存在しなくなるまで、６．１の処理を繰り返し実行する、６．１の処理繰り返し実行手段と
を有し、
ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除する
ことを特徴とするソフトウエア製造装置、
並びに／若しくは、
電子機器又はコンピュータ上のプログラムの実行体の実行を監視し、実行体の停止中に、ソフトウエアに機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とするソフトウエア製造装置。
【請求項１５】
請求項１、請求項２、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア、請求項３、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成装置、請求項４、請求項６、請求項７、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、請求項５、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア管理装置、請求項８、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ生成装置、請求項９、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置、又は、請求項１２乃至請求項１４に記載のソフトウエア製造装置
に記載の処理を実行させるコンピュータが読みとり可能なプログラムを供給若しくは配布することを特徴とする供給若しくは配布媒体。
【請求項１６】
処理を施したいソフトウエアを供給媒体によって供給することによって、
ソフトウエアに機能を有する手段をバイナリの状態で組み込んで、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除して供給媒体に格納する
ことを特徴とする機械語コード埋め込み装置（電子機器）。
【請求項１７】
処理を施したいソフトウエアを供給媒体によって供給することによって、ソフトウエアに機能を有する手段をバイナリの状態で組み込んで供給媒体に格納することを特徴とする機械語コード埋め込み装置（電子機器）であって、
請求項１６に記載の機械語コード埋め込み装置（電子機器）において、
容器に格納されており、
供給媒体を供給する供給媒体供給手段を有し、
前記供給媒体供給手段により供給された供給媒体からソフトウエア及び／又は組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等）を示すファイル又はデータを読み込み、
前記ソフトウエアに機能を有する手段を
初期設定による組み込み指標か、表示手段を有している場合、表示手段に表示される選択手段による組み込み指標か、各種選択釦を有している場合、選択釦による組み込み指標か、ファイル又はデータによる設定による組み込み指標に基づいて、
バイナリの状態で組み込んで供給媒体に格納し、
並びに／若しくは、
前記供給媒体供給手段により供給された供給媒体から組み込み用プログラム及び／又は組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル又はデータを読み込み、
組み込み用プログラムを
初期設定による組み込み用プログラム指標か、表示手段を有している場合、表示手段に表示される選択手段による組み込み用プログラム指標か、各種選択釦を有している場合、選択釦による組み込み用プログラム指標か、ファイル又はデータによる設定による組み込み用プログラム指標に基づいて、
組み込み用プログラムを追加、変更、及び／又は削除をし、
並びに／若しくは、
組み込み用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み用プログラムをバイナリの状態でソフトウエアの実行体に格納し、また、ソフトウエア及び組み込み用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、
並びに／若しくは、
初期設定を変更する為の（選択）操作機（コンピュータ）接続用の接続手段を有し、接続された（選択）操作機（コンピュータ）から初期設定を変更する
ことを特徴とする機械語コード埋め込み装置（電子機器）。
【請求項１８】
処理を施したいソフトウエアを供給媒体によって供給することによって、ソフトウエアに機能を有する手段をバイナリの状態で組み込んで、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除して供給媒体に格納することを特徴とする機械語コード埋め込み装置（電子機器）であって、
請求項１６又は請求項１７に記載の機械語コード埋め込み装置（電子機器）において、
容器に格納されており、
供給媒体を供給する供給媒体供給手段を有し、
前記供給媒体供給手段により供給された供給媒体から機能を有する手段が組み込まれた／組み込んでいないソフトウエア及び／又は組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）を示すファイル又はデータを読み込み、
前記機能を有する手段が組み込まれた／組み込んでいないソフトウエアから機能を有する手段を
初期設定による組み込み指標か、表示手段を有している場合、表示手段に表示される選択手段による組み込み指標か、各種選択釦を有している場合、選択釦による組み込み指標か、ファイル又はデータによる設定による組み込み指標に基づいて、
バイナリの状態で組み込み削除し、機能を有する手段が組み込み削除されたソフトウエアを供給媒体に格納し、
並びに／若しくは、
前記供給媒体供給手段により供給された供給媒体から組み込み削除用プログラム及び／又は組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）を示すファイル又はデータを読み込み、
組み込み削除用プログラムを
初期設定による組み込み用プログラム指標か、表示手段を有している場合、表示手段に表示される選択手段による組み込み用プログラム指標か、各種選択釦を有している場合、選択釦による組み込み用プログラム指標か、ファイル又はデータによる設定による組み込み用プログラム指標に基づいて、
組み込み削除用プログラムを追加、変更、及び／又は削除をし、
並びに／若しくは、
組み込み削除用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から組み込み削除し、また、ソフトウエア及び組み込み削除用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルした機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、
並びに／若しくは、
初期設定を変更する為の（選択）操作機（コンピュータ）接続用の接続手段を有し、接続された（選択）操作機（コンピュータ）から初期設定を変更する
ことを特徴とする機械語コード埋め込み装置（電子機器）。
【請求項１９】
電子機器又はコンピュータに装着することによって、電子機器又はコンピュータ上に存在する実行体に、機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、実行体にバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除する
ことを特徴とする機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）。
【請求項２０】
電子機器又はコンピュータに装着することによって、電子機器又はコンピュータ上に存在する実行体に、機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、実行体にバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とする機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）であって、
請求項１９に記載の機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）において、
容器に格納されており、
電子機器又はコンピュータ上に存在する実行体に、集積回路（又は供給若しくは配布媒体）組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等）に基づいて、電子機器又はコンピュータ上に存在する実行体に、実行体の実行を監視し、実行体の停止中に、機能を有する手段をバイナリの状態で組み込むことを特徴とし、
初期設定による集積回路（又は供給若しくは配布媒体）組み込み指標か、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標選択手段による集積回路（又は供給若しくは配布媒体）組み込み指標か、電子機器又はコンピュータが供給媒体を供給する供給媒体供給手段を有する場合、集積回路（又は供給若しくは配布媒体）組み込み指標を示すファイル又はデータを供給することによる集積回路（又は供給若しくは配布媒体）組み込み指標設定に基づいて、電子機器又はコンピュータ上に存在する実行体に、機能を有する手段をバイナリの状態で組み込み、
並びに／若しくは、
（１）
供給媒体を供給する供給媒体供給手段を有する場合、集積回路（又は供給若しくは配布媒体）組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとし、組み込み指標を記憶するか、及び／又は、初期設定をするかどうか等）、並びに／若しくは、組み込み用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとし、組み込み用プログラム指標を記憶するか、並びに／若しくは初期設定を行うかどうか等）を供給媒体により供給すると、供給された集積回路（又は供給若しくは配布媒体）組み込み指標、並びに／若しくは、組み込み用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択手段により選択された集積回路（又は供給若しくは配布媒体）組み込み指標、並びに／若しくは、組み込み用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標が変更され、及び／又は、集積回路（又は供給若しくは配布媒体）組み込み用プログラムが追加、変更、及び／又は削除され、
並びに／若しくは、
供給媒体を供給する供給媒体供給手段を有する場合、
（１−１）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と同じファイルを使用する場合）
ソフトウエアを供給媒体により供給すると、設定されている集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択手段により選択された集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択に基づいて、ソフトウエアに機能を有する手段をバイナリの状態で組み込み、
（１−１−１）
及び／又は、
組み込み用プログラムが、高級言語で記載されたものであって、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、また、ソフトウエアが、高級言語で記載されたものであって、集積回路（又は供給若しくは配布媒体）組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み用プログラムをバイナリの状態でソフトウエアの実行体に格納し、また、ソフトウエア及び組み込み用プログラムも高級言語で記載されている場合であって、集積回路（又は供給若しくは配布媒体）組み込み指標及び集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、
又は、
（１−２）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶しない場合）
ソフトウエアと組み込み指標と組み込み用プログラム及び／又は組み込み用指標を供給媒体により供給すると、組み込み指標と組み込み用プログラム及び／又は組み込み用指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用指標選択に基づいて、ソフトウエアに機能を有する手段をバイナリの状態で組み込み、
（１−２−１）
及び／又は、
組み込み用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み用プログラムをバイナリの状態でソフトウエアの実行体に格納し、また、ソフトウエア及び組み込み用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、
又は、
（１−３）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶する場合）
供給媒体を供給する供給媒体供給手段を有する場合、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとし、組み込み指標を記憶するか、及び／又は、初期設定をするかどうか等）、並びに／若しくは、組み込み用プログラム及び／又は組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとし、組み込み用プログラム指標を記憶するか、並びに／若しくは初期設定を行うかどうか等）を供給媒体により供給すると、初期設定が組み込み指標、並びに／若しくは、組み込み用プログラム及び／又は組み込み用プログラム指標により変更され、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択手段により選択された組み込み指標、並びに／若しくは、組み込み用プログラム及び／又は組み込み用プログラム指標に基づいて変更され、
供給媒体を供給する供給媒体供給手段を有する場合、
ソフトウエアを供給媒体により供給すると、設定されている組み込み指標に基づいて、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標選択手段による組み込み指標選択に基づいて、ソフトウエアに機能を有する手段をバイナリの状態で組み込み、及び／又は初期設定が変更され、
（１−３−１）
及び／又は、
組み込み用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み用プログラムをバイナリの状態でソフトウエアの実行体に格納し、また、ソフトウエア及び組み込み用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納する
ことを特徴とする機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）。
【請求項２１】
電子機器又はコンピュータに装着することによって、電子機器又はコンピュータ上に存在する実行体に、機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、実行体にバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とする機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）であって、
請求項１９又は請求項２０に記載の機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）において、
容器に格納されており、
電子機器又はコンピュータ上に存在する機能を有する手段が組み込まれた／組み込んでいない実行体に、集積回路（又は供給若しくは配布媒体）組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）に基づいて、電子機器又はコンピュータ上に存在する実行体に、機能を有する手段が組み込まれた／組み込んでいない実行体の実行を監視し、実行体の停止中に、機能を有する手段をバイナリの状態で組み込み削除することを特徴とし、
初期設定による集積回路（又は供給若しくは配布媒体）組み込み指標か、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標選択手段による集積回路（又は供給若しくは配布媒体）組み込み指標か、電子機器又はコンピュータが供給媒体を供給する供給媒体供給手段を有する場合、集積回路（又は供給若しくは配布媒体）組み込み指標を示すファイル又はデータを供給することによる集積回路（又は供給若しくは配布媒体）組み込み指標設定に基づいて、電子機器又はコンピュータ上に存在する実行体から、機能を有する手段をバイナリの状態で組み込み削除し、
並びに／若しくは、
（２）
供給媒体を供給する供給媒体供給手段を有する場合、集積回路（又は供給若しくは配布媒体）組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとし、組み込み指標を記憶するか、及び／又は、初期設定をするかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）、並びに／若しくは、組み込み用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み削除用プログラムは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとし、組み込み用プログラム指標を記憶するか、並びに／若しくは初期設定を行うかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）を供給媒体により供給すると、供給された集積回路（又は供給若しくは配布媒体）組み込み指標、並びに／若しくは、組み込み用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択手段により選択された集積回路（又は供給若しくは配布媒体）組み込み指標、並びに／若しくは、組み込み削除用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標が変更され、及び／又は、集積回路（又は供給若しくは配布媒体）組み込み削除用プログラムが追加、変更、及び／又は削除され、
並びに／若しくは、
供給媒体を供給する供給媒体供給手段を有する場合、
（２−１）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と同じファイルを使用する場合）
機能を有する手段が組み込まれた／組み込んでいないソフトウエアを供給媒体により供給すると、設定されている集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択手段により選択された集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択に基づいて、機能を有する手段が組み込まれた／組み込んでいないソフトウエアから機能を有する手段をバイナリの状態で組み込み削除し、
（２−１−１）
及び／又は、
組み込み削除用プログラムが、高級言語で記載されたものであって、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、また、ソフトウエアが、高級言語で記載されたものであって、集積回路（又は供給若しくは配布媒体）組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から組み込み削除し、また、ソフトウエア及び組み込み削除用プログラムも高級言語で記載されている場合であって、集積回路（又は供給若しくは配布媒体）組み込み指標及び集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルした機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、
又は、
（２−２）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶しない場合）
ソフトウエアと組み込み指標と組み込み削除用プログラム及び／又は組み込み用指標を供給媒体により供給すると、組み込み指標と組み込み削除用プログラム及び／又は組み込み用指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用指標選択に基づいて、機能を有する手段が組み込まれた／組み込んでいないソフトウエアから機能を有する手段をバイナリの状態で組み込み削除し、
（２−２−１）
及び／又は、
組み込み削除用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から組み込み削除し、また、ソフトウエア及び組み込み削除用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルした機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、
又は、
（２−３）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶する場合）
供給媒体を供給する供給媒体供給手段を有する場合、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとし、組み込み指標を記憶するか、及び／又は、初期設定をするかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）、並びに／若しくは、組み込み用プログラム及び／又は組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとし、組み込み用プログラム指標を記憶するか、並びに／若しくは初期設定を行うかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）を供給媒体により供給すると、初期設定が組み込み指標、並びに／若しくは、組み込み削除用プログラム及び／又は組み込み用プログラム指標により変更され、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択手段により選択された組み込み指標、並びに／若しくは、組み込み削除用プログラム及び／又は組み込み用プログラム指標に基づいて変更され、
供給媒体を供給する供給媒体供給手段を有する場合、
機能を有する手段が組み込まれた／組み込んでいないソフトウエアを供給媒体により供給すると、設定されている組み込み指標に基づいて、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標選択手段による組み込み指標選択に基づいて、機能を有する手段が組み込まれた／組み込んでいないソフトウエアから機能を有する手段をバイナリの状態で組み込み削除、及び／又は初期設定が変更され、
（２−３−１）
及び／又は、
組み込み削除用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から組み込み削除し、また、ソフトウエア及び組み込み削除用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルした機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除する
ことを特徴とする機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）及び１電子機器唯一動作許可インストール方法（ソフトウエア配布方法）並びに供給若しくは配布媒体、１電子機器唯一動作許可ソフトウエア管理装置及び方法並びに供給若しくは配布媒体、１電子機器唯一動作許可インストーラ管理装置及び方法並びに供給若しくは配布媒体、１電子機器唯一動作許可インストーラ生成装置及び１電子機器唯一動作許可インストーラ生成方法並びに供給若しくは配布媒体、１電子機器唯一動作許可ソフトウエア及び１電子機器唯一動作許可ソフトウエアの１電子機器唯一動作許可方法並びに供給若しくは配布媒体、１電子機器唯一動作許可ソフトウエア生成装置及び方法並びに供給若しくは配布媒体、１電子機器唯一動作許可ソフトウエア製造装置及び方法並びに供給若しくは配布媒体、ソフトウエア製造装置及び方法並びに供給若しくは配布媒体、並びに、機械語コード埋め込み装置（電子機器）若しくはシステム集積回路及び方法並びに供給若しくは配布媒体に関する。
【背景技術】
【０００２】
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来、ソフトウエア配布において、インストーラは、複数台のコンピュータで使用が可能であり、一台のコンピュータのみでしか使用が不可能とすることができないという問題があった。
【０００４】
また、ソフトウエア配布において、配布されたソフトウエアは、複数台のコンピュータで使用が可能であり、一台のコンピュータのみでしか使用が不可能とすることができないという問題があった。
【０００５】
また、暗号化されていない実行体等のデータは、逆アセンブル等し、プログラム解析等されるというという問題があった。
【０００６】
本発明は、上記問題を解決する為に、一台の電子機器でのみしか使用不可能であり、プログラム解析等が困難であり、セキュリティ機能が高い、１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）及び１電子機器唯一動作許可インストール方法（ソフトウエア配布方法）、１電子機器唯一動作許可ソフトウエア管理装置及び方法、１電子機器唯一動作許可インストーラ管理装置及び方法、１電子機器唯一動作許可インストーラ生成装置及び１電子機器唯一動作許可インストーラ生成方法、１電子機器唯一動作許可ソフトウエア及び１電子機器唯一動作許可ソフトウエアの１電子機器唯一動作許可方法、１電子機器唯一動作許可ソフトウエア生成装置及び方法、１電子機器唯一動作許可ソフトウエア製造装置及び方法、ソフトウエア製造装置及び方法並びに供給若しくは配布媒体、並びに、機械語コード埋め込み装置（電子機器）若しくはシステム集積回路及び方法並びに供給若しくは配布媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の１電子機器唯一動作許可ソフトウエアは、１電子機器にのみ唯一動作を許可するソフトウエアであって、動作する電子機器に固有の指標を確保する固有指標確保手段と、初回起動時、動作する電子機器に固有の指標を実行体の固有指標確保手段にバイナリの状態で格納する固有指標格納手段と、起動時、起動時に取得した動作する電子機器に固有の指標と固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する固有指標一致動作継続許可手段とを有することを特徴とする１電子機器唯一動作許可ソフトウエアとした。尚、動作する電子機器に固有の指標である固有指標とは、動作する一台の電子機器に唯一（固有）の指標であればどのようなものであってもよい。
【０００８】
これにより、起動時、起動時に取得した動作する電子機器に固有の指標と、初回起動時固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する為、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【０００９】
また、上記課題を解決するために、請求項２に記載の１電子機器唯一動作許可ソフトウエアは、第1のソフトウエアが組み込まれた第２のソフトウエアであり、第１及び／又は第２のソフトウエアが１電子機器にのみ唯一動作を許可するソフトウエアであって、第１のソフトウエアを確保した第１のソフトウエア確保手段と、第１のソフトウエアを生成する第１のソフトウエア生成手段とを第２のソフトウエアに有し、第１及び／又は第２のソフトウエアの少なくとも一方に、動作する電子機器に固有の指標を確保する固有指標確保手段と、起動時、起動時に取得した動作する電子機器に固有の指標と固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合のみ動作継続を許可する固有指標一致動作継続許可手段とを有し、第１のソフトウエアに前記固有指標確保手段と前記固有指標一致動作継続許可手段を有している場合、初回起動時、動作する電子機器に固有の指標を第1のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第1のソフトウエア存在第1のソフトウエア固有指標格納手段を第１のソフトウエアに備えるか、又は、初回起動時、動作する電子機器に固有の指標を第1のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第２のソフトウエア存在第1のソフトウエア固有指標格納手段を第２のソフトウエアに備え、第２のソフトウエアに前記固有指標確保手段と前記固有指標一致動作継続許可手段を有している場合、初回起動時、動作する電子機器に固有の指標を第２のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第２のソフトウエア存在第２のソフトウエア固有指標格納手段を第２のソフトウエアに備え、第１及び第２のソフトウエアの両方に前記固有指標確保手段と前記固有指標一致動作継続許可手段を有している場合、動作する電子機器に固有の指標を第２のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第２のソフトウエア存在第２のソフトウエア固有指標格納手段を第２のソフトウエアに備え、さらに、動作する電子機器に固有の指標を第１のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第1のソフトウエア存在第1のソフトウエア固有指標格納手段を第１のソフトウエアに備えるか、又は、動作する電子機器に固有の指標を第１のソフトウエアの実行体の固有指標確保手段にバイナリの状態で格納する第２のソフトウエア存在第１のソフトウエア固有指標格納手段を第２のソフトウエアに備えることを特徴とする１電子機器唯一動作許可ソフトウエアとした。
【００１０】
これにより、第１及び／又は第２のソフトウエアが、起動時、起動時に取得した動作する電子機器に固有の指標と、初回起動時固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する為、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００１１】
また、第１のソフトウエアが第２のソフトウエアに組み込まれている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【００１２】
また、上記課題を解決するために、請求項３に記載の１電子機器唯一動作許可ソフトウエア生成装置は、請求項２に記載の１電子機器唯一動作許可ソフトウエアにおいて、第１のソフトウエアを確保した第１のソフトウエア確保手段は第１のソフトウエアを確保する為の第１のソフトウエア確保用意手段とした１電子機器唯一動作許可ソフトウエア生成装置であって、第１のソフトウエア確保手段に第１のソフトウエアを格納する第１のソフトウエア格納手段を備えることを特徴とする１電子機器唯一動作許可ソフトウエア生成装置とした。
【００１３】
これにより、１電子機器唯一動作許可ソフトウエア生成装置により生成された１電子機器唯一動作許可ソフトウエアは、起動時、起動時に取得した動作する電子機器に固有の指標と、初回起動時固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する為、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００１４】
また、第１のソフトウエアが第２のソフトウエアに組み込まれている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【００１５】
また、上記課題を解決するために、請求項４に記載の１電子機器唯一動作許可ソフトウエアは、請求項２に記載の１電子機器唯一動作許可ソフトウエアにおいて、動作する電子機器に固有の指標がインストールする電子機器に固有の指標であり、請求項２に記載の１電子機器唯一動作許可ソフトウエアは、１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）であることを特徴とする１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）とした。
【００１６】
これにより、第１のソフトウエア及び／又は１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）が、起動時、起動時に取得した動作する電子機器に固有の指標と、初回起動時固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する為、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００１７】
また、第１のソフトウエアが第２のソフトウエアに組み込まれている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【００１８】
また、上記課題を解決するために、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置は、請求項２に記載の１電子機器唯一動作許可ソフトウエアにおいて、第１のソフトウエアを起動する第１のソフトウエア起動手段を第２のソフトウエアに有し、第２のソフトウエアが起動時、固有指標一致動作継続許可手段を第２のソフトウエアに有する場合、第１のソフトウエアの終了を待機して第１のソフトウエアを削除する終了待機削除手段を有し、第１のソフトウエアのみが、固有指標一致動作継続許可手段を有する場合、第１のソフトウエアが起動後、第２のソフトウエアを削除する起動後削除手段を第１のソフトウエアに有することを特徴とする１電子機器唯一動作許可ソフトウエア管理装置とした。
【００１９】
これにより、第２のソフトウエアが起動時、固有指標一致動作継続許可手段を有する場合、第１のソフトウエアが動作していない場合、第１のソフトウエアに組み込まれている為、逆アセンブル等のプログラム解析等を行うことが困難となり、セキュリティ機能が高まる。また、第２のソフトウエアは、初回起動した電子機器以外では動作ができなくなる。
【００２０】
また、第１のソフトウエアのみが、固有指標一致動作継続許可手段を有する場合、第１のソフトウエアが初回起動後、第２のソフトウエアは削除される為、初回起動した電子機器の初回起動時以外では第１のソフトウエアを生成することができず、また、第２のソフトウエアは、初回生成時の電子機器以外では動作ができなくなる。
【００２１】
また、上記課題を解決するために、請求項６に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）は、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置の動作する電子機器に固有の指標がインストールする電子機器に固有の指標であり、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置を請求項４に記載の１電子機器唯一動作許可インストーラの第１のソフトウエア及び／又は第２のソフトウエアとし、請求項４に記載の第２のソフトウエアとした場合、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置の第１のソフトウエアを確保した第１のソフトウエア確保手段と、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置の第１のソフトウエアを生成する第１のソフトウエア生成手段とを請求項４に記載の１電子機器唯一動作許可インストーラに備え、請求項４に記載の第１のソフトウエアとした場合、請求項４に記載の第２のソフトウエアの第１のソフトウエア確保手段は、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置の第２のソフトウエアを確保した手段であり、請求項４に記載の第２のソフトウエアの第１のソフトウエア生成手段は、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置の第２のソフトウエアを生成する手段であることを特徴とする１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）とした。
【００２２】
これにより、請求項４に記載の第１又は第２のソフトウエアを請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置において、請求項５に記載の第２のソフトウエアが起動時、固有指標一致動作継続許可手段を有する場合、請求項５に記載の第１のソフトウエアが動作していない場合、請求項５に記載の第１のソフトウエアに組み込まれている為、逆アセンブル等のプログラム解析等を行うことが困難となり、セキュリティ機能が向上する。また、請求項５に記載の第１のソフトウエアは、初回起動した電子機器以外では動作ができなくなる。
【００２３】
また、請求項４に記載の第１又は第２のソフトウエアを請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置において、請求項５に記載の第１のソフトウエアのみが、固有指標一致動作継続許可手段を有する場合、請求項５に記載の第１のソフトウエアが初回起動後、削除される為、初回起動した電子機器の初回起動時以外では請求項５に記載の第２のソフトウエアを生成することができず、また、請求項５に記載の第２のソフトウエアは、初回生成時の電子機器以外では動作ができなくなる。
【００２４】
また、上記課題を解決するために、請求項７に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）は、請求項６に記載の１電子機器唯一動作許可ソフトウエア管理装置を請求項４に記載の１電子機器唯一動作許可インストーラの第１のソフトウエア及び／又は第２のソフトウエアとし、請求項４に記載の第２のソフトウエアとした場合、請求項６に記載の１電子機器唯一動作許可ソフトウエア管理装置の第１のソフトウエアを確保した第１のソフトウエア確保手段と、請求項６に記載の１電子機器唯一動作許可ソフトウエア管理装置の第１のソフトウエアを生成する第１のソフトウエア生成手段とを請求項４に記載の１電子機器唯一動作許可インストーラに備え、請求項４に記載の第１のソフトウエアとした場合、請求項４に記載の第２のソフトウエアの第１のソフトウエア確保手段は、請求項６に記載の１電子機器唯一動作許可ソフトウエア管理装置の第２のソフトウエアを確保した手段であり、請求項４に記載の第２のソフトウエアの第１のソフトウエア生成手段は、請求項６に記載の１電子機器唯一動作許可ソフトウエア管理装置の第２のソフトウエアを生成する手段であることを特徴とし、上記の適用関係を少なくとも一回以上繰り返した構成であることを特徴とする１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）とした。
【００２５】
また、上記課題を解決するために、請求項８に記載の１電子機器唯一動作許可インストーラ生成装置は、請求項４に記載の１電子機器唯一動作許可インストーラにおいて、第１のソフトウエアを確保した第１のソフトウエア確保手段は第１のソフトウエアを確保する為の第１のソフトウエア確保用意手段とした１電子機器唯一動作許可インストーラ生成装置であって、第１のソフトウエア確保手段に第１のソフトウエアを格納する手段を第１のソフトウエア格納手段を備えることを特徴とする１電子機器唯一動作許可インストーラ生成装置とした。
【００２６】
これにより、１電子機器唯一動作許可インストーラ生成装置により生成された１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）は、第１のソフトウエア及び／又は１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）が、起動時、起動時に取得した動作する電子機器に固有の指標と、初回起動時固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する為、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００２７】
また、第１のソフトウエアが第２のソフトウエアに組み込まれている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【００２８】
また、上記課題を解決するために、請求項８に記載の１電子機器唯一動作許可インストーラ生成装置は、請求項６、又は請求項７に記載の１電子機器唯一動作許可インストーラにおいて、第１のソフトウエアを確保した第１のソフトウエア確保手段は第１のソフトウエアを確保する為の第１のソフトウエア確保用意手段とした１電子機器唯一動作許可インストーラ生成装置であって、第１のソフトウエア確保手段に第１のソフトウエアを格納する手段を第１のソフトウエア格納手段を備えることを特徴とする１電子機器唯一動作許可インストーラ生成装置とした。
【００２９】
これにより、１電子機器唯一動作許可インストーラ生成装置により生成された１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）は、請求項４に記載の第１又は第２のソフトウエアを請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置において、請求項５に記載の第２のソフトウエアが起動時、固有指標一致動作継続許可手段を有する場合、請求項５に記載の第１のソフトウエアが動作していない場合、請求項５に記載の第１のソフトウエアに組み込まれている為、逆アセンブル等のプログラム解析等を行うことが困難となり、セキュリティ機能が向上する。また、請求項５に記載の第１のソフトウエアは、初回起動した電子機器以外では動作ができなくなる。
【００３０】
また、請求項４に記載の第１又は第２のソフトウエアを請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置において、請求項５に記載の第１のソフトウエアのみが、固有指標一致動作継続許可手段を有する場合、請求項５に記載の第１のソフトウエアが初回起動後、削除される為、初回起動した電子機器の初回起動時以外では請求項５に記載の第２のソフトウエアを生成することができず、また、請求項５に記載の第２のソフトウエアは、初回生成時の電子機器以外では動作ができなくなる。
【００３１】
また、上記課題を解決するために、請求項９に記載の１電子機器唯一動作許可ソフトウエア生成若しくは製造装置又は１電子機器唯一動作許可インストーラ生成装置は、第1のソフトウエアを第２のソフトウエアにバイナリの状態で組み込む１電子機器唯一動作許可ソフトウエア生成若しくは製造装置又は１電子機器唯一動作許可インストーラ生成装置であって、動作する電子機器に固有の指標を確保する固有指標確保手段と、初回起動時、固有指標確保手段に動作する電子機器に固有の指標を格納する固有指標格納手段と、起動時、起動時に取得した動作する電子機器に固有の指標と固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合のみ動作継続を許可する固有指標一致動作継続許可手段とを第1のソフトウエアにバイナリの状態で組み込むことを特徴とする１電子機器唯一動作許可ソフトウエア生成若しくは製造装置又は１電子機器唯一動作許可インストーラ生成装置とした。
【００３２】
また、上記課題を解決するために、請求項１０に記載の１電子機器唯一動作許可ソフトウエア、１電子機器唯一動作許可ソフトウエア生成装置、１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、１電子機器唯一動作許可ソフトウエア管理装置、１電子機器唯一動作許可インストーラ生成装置、１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置は、動作する電子機器に固有の指標がＭＡＣアドレスであることを特徴とする請求項１、若しくは請求項２に記載の１電子機器唯一動作許可ソフトウエア、請求項３に記載の１電子機器唯一動作許可ソフトウエア生成装置、請求項４、請求項６、若しくは請求項７に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置、請求項８に記載の１電子機器唯一動作許可インストーラ生成装置、又は、請求項９に記載の１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置とした。
【００３３】
ここで、ＭＡＣアドレスとは、Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓを示す。
【００３４】
これにより、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００３５】
また、上記課題を解決するために、請求項１１に記載の１電子機器唯一動作許可ソフトウエア、１電子機器唯一動作許可ソフトウエア生成装置、１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、１電子機器唯一動作許可ソフトウエア管理装置、１電子機器唯一動作許可インストーラ生成装置、１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置は、第１のソフトウエアを第２のソフトウエアに格納する領域及び／又は動作する電子機器に固有の指標を格納する領域に格納するデータは、暗号化されていることを特徴とする請求項１、請求項２、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア、請求項３、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成装置、請求項４、請求項６、請求項７、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、請求項５、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア管理装置、請求項８、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ生成装置、又は、請求項９、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置とした。
【００３６】
これにより、逆アセンブル等によるプログラム解析等を困難とし、セキュリティ機能を高めることができる。
【００３７】
また、上記課題を解決するために、請求項１２に記載のソフトウエア製造装置は、ソフトウエアに機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とするソフトウエア製造装置とした。
【００３８】
これにより、ソフトウエアに機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することができる。
【００３９】
また、上記課題を解決するために、請求項１３に記載のソフトウエア製造装置は、
ソフトウエアに機能を有する手段をバイナリの状態で組み込むことを特徴とするソフトウエア製造装置であって、
請求項１２に記載のソフトウエア製造装置において、
１．＜コードの挿入＞
１．０  組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
組み込むソフトウエアのコードのどの位置に機能を有する手段を挿入するかを選択判断するコード挿入位置選択判断手段と
を有し、
１．１．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合（コード開始アドレスコール箇所検索手段による判断に依る）であって、コードの開始以前に何らかの処理を行う場合（コード挿入位置選択判断手段による判断に依る）、
（コード記載セクション）ヘッダーのコード記載セクション開始アドレスを検索するコード記載セクション開始アドレス検索手段と、
コード記載セクション開始アドレスからコード記載セクション内を検索し、コード開始アドレスをコールしている箇所を検索するコード記載セクション内コード開始アドレスコール箇所検索手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの開始アドレスの前に、コードを挿入するコード挿入手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに挿入したコードアドレスを減算した開始アドレスに書き換えるコールコード開始アドレス変更手段と
を有し、
１．２．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コード記載セクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの初め、途中、又は最後にコードを挿入するコード挿入手段と
を有し、
２．＜データアドレスの変更＞
２．０  挿入したコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段と
を有し、
挿入したコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用している場合（システムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段による判断に依る）、データをデータセクションに追加するデータセクション追加手段と、
データセクション追加手段により追加したデータのアドレスに挿入するコード内のデータのアドレスを変更する挿入コードデータアドレス変更手段と
を有し、
３．＜機能を有する手段が呼び出し関数群格納ファイルを使用している場合＞
３．０  機能を有する手段が呼び出し関数群格納ファイルを使用しているかどうかを判断する、機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段と
を有し、
３．１＜組み込むソフトウエアの呼び出し関数群格納ファイル存在チェック＞
挿入したコード内に呼び出し関数群格納ファイル被格納呼び出し関数をコールしている場合（機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段による判断に依る）、組み込むソフトウエアの呼び出し関数群呼び出しセクションを検索し、呼び出し関数群格納ファイルが存在するかどうかを検索する呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル存在／非存在検索手段と
を有し、
３．１．１＜組み込むソフトウエアに呼び出し関数群格納ファイルが存在している場合＞
組み込むソフトウエアに呼び出し関数群格納ファイルが存在している場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル存在／非存在検索手段による判断に依る）、
組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在するかどうかを検索する呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル被格納呼び出し関数存在／非存在検索手段と
を有し、
３．１．１．１＜組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在している場合＞
組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在している場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル被格納呼び出し関数存在／非存在検索手段による判断に依る）、
その呼び出し関数群格納ファイル被格納呼び出し関数のアドレスにより挿入するコードの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを変更する挿入コード呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
３．１．１．２＜組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在していない場合＞
組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在していない場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル被格納呼び出し関数存在／非存在検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数を追加し、呼び出し関数群格納ファイル被格納呼び出し関数追加によるサイズ変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内に呼び出し関数群呼び出しセクションの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合、使用している呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
３．１．２＜組み込むソフトウエアに呼び出し関数群格納ファイルが存在していない場合＞
組み込むソフトウエアに呼び出し関数群格納ファイルが存在していない場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル存在／非存在検索手段による判断に依る）、
呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数を呼び出し関数群呼び出しセクションに追加し、呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数追加によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内に呼び出し関数群呼び出しセクションの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合、使用している呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
４．＜機能を有する手段が(コード記載、呼び出し関数群呼び出し、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０  機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１＜組み込むソフトウエアの他のセクションの要素存在チェック＞
挿入したコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、他のセクションを検索し、他のセクションの要素が存在するかどうかを検索する他のセクション要素存在／非存在検索手段と
を有し、
４．１．１＜組み込むソフトウエアに他のセクションの要素存在時＞
組み込むソフトウエアに他のセクションの要素が存在している場合（他のセクション要素存在／非存在検索手段による判断に依る）、
その他のセクションの要素のアドレスにより挿入するコードの他のセクションの要素のアドレスを変更する挿入コード他のセクションの要素アドレス変更手段と
を有し、
４．１．２＜組み込むソフトウエアに他のセクションの要素非存在時＞
組み込むソフトウエアに他のセクションの要素が存在していない場合（他のセクション要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションに追加し、他のセクションの要素追加によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０  コードの挿入により、コード内のアドレスを指定しているかどうかを判断するコード挿入コード内アドレス指定／非指定判断手段と
を有し、
（コードの挿入により、コード内のアドレスを指定していた箇所は、挿入サイズ分全部ずらす）
（コード挿入コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コード記載セクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを挿入したコードサイズ分ずらす挿入コード分アドレスずらし手段と
を有し、
６．
６．０  コード挿入によりコードサイズが初めより大きくなるかどうかを判断するコード挿入コードサイズ大／非大判断手段と
を有し、
（コード挿入によりコードサイズが初めより大きくなる場合）
コード挿入により、コードサイズが（コード記載セクション）ヘッダーに記載されているサイズよりも大きくなる場合（コード挿入コードサイズ大／非大判断手段による判断に依る）、
（コード記載セクション）ヘッダー内に記載のコード記載セクション及び／又はコード記載セクションのコードサイズをコード挿入後のサイズより大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と
を有し、
（コード記載セクション以外の）第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段
を有し、
第１の他のセクション存在時（第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段の判断による判断に依る）、
コードサイズ変更手段により増分したサイズ分、（第１の他のセクション）ヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションの開始アドレスを変更する第１の他のセクション開始アドレス変更手段と、
コード内に第１の他のセクションの要素のアドレスを使用している場合、コード挿入により、第１の他のセクションの要素のアドレスが変化した分、コード内の第１の他のセクションの要素のアドレスを変更するコード内第１の他のセクションの要素アドレス変更手段と
を有し、
６．１  コード挿入により第１の他のセクションサイズが初めより大きくなるかどうかを判断するコード挿入第１の他のセクションサイズ大／非大判断手段と
を有し、
（コード挿入により第１の他のセクションサイズが初めより大きくなる場合）
コード挿入により、第１の他のセクションのサイズが（第１の他のセクション）ヘッダー内に記載されているサイズよりも大きくなる場合（コード挿入により他のセクションサイズが初めより大きくなるかどうかを判断するコード挿入第１の他のセクションサイズ大／非大判断手段による判断に依る）、
（第１の他のセクション）ヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションのサイズを第１の他のセクション挿入後のサイズより大きい規定幅の大きさのサイズに変更する第１の他のセクションサイズ変更手段と
を有し、
（コード記載セクション以外の）第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段と
を有し、
第２の他のセクション存在時（第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段による判断による）、
第１の他のセクションの開始アドレス以降に開始アドレスを有する（第２の他のセクション）ヘッダー内に記載の第２の他のセクション及び／又は第２の他のセクションの開始アドレスを第１の他のセクションの開始アドレスとサイズの増分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード挿入により、第２の他のセクションの要素のアドレスが変化した分、コード内の第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
６．２  第１の他のセクションを第２の他のセクションの開始アドレスを有する他のセクションとして、第１の他のセクションが存在しなくなるまで、６．１の処理を繰り返し実行する、６．１の処理繰り返し実行手段と
を有し、
ソフトウエアに機能を有する手段をバイナリの状態で組み込む
ことを特徴とするソフトウエア製造装置、
並びに／若しくは、
電子機器又はコンピュータ上のプログラムの実行体の実行を監視し、実行体の停止中に、ソフトウエアに機能を有する手段をバイナリの状態で組み込むことを特徴とするソフトウエア製造装置
とした。
【００４０】
これにより、ソフトウエアに機能を有する手段をバイナリの状態で組み込むことができる。
【００４１】
また、上記課題を解決するために、請求項１４に記載のソフトウエア製造装置は、
ソフトウエアに機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とするソフトウエア製造装置であって、
請求項１２又は請求項１３に記載のソフトウエア製造装置において、
ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とするソフトウエア製造装置であって、
＜機能を有する手段のソフトウエア存在／非存在＞
単数又は複数の、（あるアドレスからあるアドレス迄の）固まった単位で存在する機能を有する手段が参照するシステムコール、呼び出し関数群格納ファイル被格納呼び出し関数、呼び出し関数群呼び出しセクション、データセクション、及び／又は、他のデータセクション等のアドレス参照箇所の関数及び／又はデータと、ソフトウエアの該当箇所との一致を含め、機能を有する手段がソフトウエア内に存在するかどうかの判断を行う機能を有する手段ソフトウエア内存在／非存在判断手段と
を及び／又は有し、
＜機能を有する手段のソフトウエア存在時＞（及び／又は機能を有する手段ソフトウエア内存在／非存在判断手段による一致の判断の場合）
１．＜コードの削除＞
１．０．  機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
機能を有する手段を組み込んだ／組み込んでいないソフトウエアのコードのどの位置に機能を有する手段を挿入しているかを選択判断するコード挿入位置選択判断手段と
を有し、
１．１．機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合（コード開始アドレスコール箇所検索手段による判断に依る）であって、コードの開始以前に機能を有する手段を挿入している場合（コード挿入位置選択判断手段による判断に依る）、
（コード記載セクション）ヘッダーのコード記載セクション開始アドレスを検索するコード記載セクション開始アドレス検索手段と、
コード記載セクション開始アドレスからコード記載セクション内を検索し、コード開始アドレスをコールしている箇所を検索するコード記載セクション内コード開始アドレスコール箇所検索手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コード開始アドレスからコード記載セクションの開始アドレス（又は、組み込み前のコード記載セクションの通常の開始アドレス）の前までに挿入したコードを削除するコード削除手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに削除した機能を有する手段のコードアドレスを加算した（又は、通常の）開始アドレスに書き換えるコールコード開始アドレス変更手段と
を有し、
１．２．機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コード記載セクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの初め、途中、又は最後に挿入した機能を有する手段のコードを削除するコード削除手段と
を有し、
２．＜データアドレスの変更＞
２．０  削除した機能を有する手段のコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段と
を有し、
削除した機能を有する手段のコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用している場合（システムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段による判断に依る）、データをデータセクションから削除するデータセクション削除手段と
を有し、
３．＜削除した機能を有する手段が呼び出し関数群格納ファイルを使用している場合＞
３．０．  削除した機能を有する手段が呼び出し関数群格納ファイルを使用しているかどうかを判断する、機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段と
を有し、
３．１．＜他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数使用／非使用チェック＞
削除した機能を有する手段が呼び出し関数群格納ファイルを使用している場合（機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段による判断に依る）、
機能を有する手段が使用している呼び出し関数群格納ファイル被格納呼び出し関数のアドレスを検索する呼び出し関数群格納ファイル被格納呼び出し関数アドレス検索手段と、
機能を有する手段が使用している呼び出し関数群格納ファイル被格納呼び出し関数のアドレスをコード内の他の箇所で使用しているかどうかを検索する他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段と
を有し、
３．１．１．＜他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数を使用していない場合＞
コード内の他の箇所で使用呼び出し関数群格納ファイル被格納呼び出し関数を使用していると判断されなかった場合（他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段による判断に依る）、
呼び出し関数群呼び出しセクション内に、使用呼び出し関数群格納ファイル被格納呼び出し関数が属する呼び出し関数群格納ファイルの他の呼び出し関数群格納ファイル被格納呼び出し関数のアドレスを検索する呼び出し関数群呼び出しセクション内他の呼び出し関数群格納ファイル被格納呼び出し関数アドレス検索手段と
を有し、
３．１．１．１．＜呼び出し関数群呼び出しセクション内に他の呼び出し関数群格納ファイル被格納呼び出し関数が検索された場合＞
呼び出し関数群呼び出しセクション内に他の呼び出し関数群格納ファイル被格納呼び出し関数が検索された場合、
他の呼び出し関数群格納ファイル被格納呼び出し関数をコード内の他の箇所で使用しているかどうかを検索する他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスコード内の他の箇所使用／非使用検索手段と
を有し、
３．１．１．１．１．＜他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していない場合＞
他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していると判断されなかった場合（他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスコード内の他の箇所使用／非使用検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数,呼び出し関数群格納ファイル被格納呼び出し関数の呼び出し関数群格納ファイルに属する全ての他の呼び出し関数群格納ファイル被格納呼び出し関数,呼び出し関数群格納ファイルを削除し、呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数削除によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
３．１．１．１．２．＜他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合＞
他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していると判断された場合（他の呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数を削除し、呼び出し関数群格納ファイル被格納呼び出し関数削除によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
４．＜削除した機能を有する手段が(コード記載、呼び出し関数群呼び出し、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０．  削除した機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１．＜削除した機能を有する手段の他のセクションの要素使用チェック＞
削除した機能を有する手段のコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、コード内の他の箇所に他のセクションの要素を使用しているかどうかを判断するコード内他のセクションの要素存在／非存在検索手段と
を有し、
４．１．１．＜機能を有する手段を組み込んだ／組み込んでいないソフトウエアに他のセクションの要素非存在時＞
機能を有する手段を組み込んだ／組み込んでいないソフトウエアに他のセクションの要素が存在していない場合（コード内他のセクションの要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションから削除し、他のセクションの要素削除によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０．  削除した機能を有する手段の削除により、コード内のアドレスを指定している箇所があるかどうかを判断する、機能を有する手段削除コード内アドレス指定／非指定判断手段と
を有し、
（コードの削除により、コード内のアドレスを指定していた箇所は、削除サイズ分全部ずらす）
（機能を有する手段削除コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コード記載セクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを削除したコードサイズ分ずらす削除コード分アドレスずらし手段と
を有し、
６．
６．０．  機能を有する手段削除によりコードサイズが初めより小さくなるかどうかを判断するコード削除コードサイズ小／非小判断手段と
を有し、
（機能を有する手段削除によりコードサイズが初めより小さくなる場合）
機能を有する手段削除により、コードサイズが（コード記載セクション）ヘッダーに記載されているサイズよりも小さくなる場合（コード削除コードサイズ小／非小判断手段による判断に依る）、
（コード記載セクション）ヘッダー内に記載のコード記載セクション及び／又はコード記載セクションのコードサイズをコード削除後のサイズより大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と
を有し、
（コード記載セクション以外の）第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段
を有し、
第１の他のセクション存在時（第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段の判断による判断に依る）、
コードサイズ変更手段により減分したサイズ分、（第１の他のセクション）ヘッダー内に記載の第１の他のセクションの開始アドレス及び／又は第１の他のセクションを変更する第１の他のセクション開始アドレス変更手段と、
コード内に第１の他のセクションの要素のアドレスを使用している場合、コード削除により、第１の他のセクションの要素のアドレスが変化した分、コード内の第１の他のセクションの要素のアドレスを変更するコード内第１の他のセクションの要素アドレス変更手段と
を有し、
６．１  コード挿入により第１の他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段と
を有し、
（コード挿入により第１の他のセクションサイズが初めより小さくなる場合）
コード削除により、第１の他のセクションのサイズが（第１の他のセクション）ヘッダー内に記載されているサイズよりも小さくなる場合（コード挿入により他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段による判断に依る）、
（第１の他のセクション）ヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションのサイズを第１の他のセクション削除後のサイズより大きい規定幅の大きさのサイズに変更する第１の他のセクションサイズ変更手段と
を有し、
（コード記載セクション以外の）第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段と
を有し、
第２の他のセクション存在時（第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段による判断による）、
第１の他のセクションの開始アドレス以降に開始アドレスを有する（第２の他のセクション）ヘッダー内に記載の第２の他のセクション及び／又は第２の他のセクションの開始アドレスを第１の他のセクションの開始アドレスとサイズの減分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード削除により、第２の他のセクションの要素のアドレスが変化した分、コード内の第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
６．２  第１の他のセクションを第２の他のセクションの開始アドレスを有する他のセクションとして、第１の他のセクションが存在しなくなるまで、６．１の処理を繰り返し実行する、６．１の処理繰り返し実行手段と
を有し、
ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除する
ことを特徴とするソフトウエア製造装置、
並びに／若しくは、
電子機器又はコンピュータ上のプログラムの実行体の実行を監視し、実行体の停止中に、ソフトウエアに機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とするソフトウエア製造装置
とした。
【００４２】
これにより、ソフトウエアに機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することができる。
【００４３】
また、上記課題を解決するために、請求項１５に記載の供給若しくは配布媒体は、請求項１、請求項２、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア、請求項３、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成装置、請求項４、請求項６、請求項７、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、請求項５、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア管理装置、請求項８、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ生成装置、請求項９、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置、又は、請求項１２乃至請求項１４に記載のソフトウエア製造装置に記載の処理を実行させるコンピュータが読みとり可能なプログラムを供給若しくは配布することを特徴とする供給若しくは配布媒体とした。
【００４４】
これにより、供給若しくは配布媒体を供給若しくは配布することにより、請求項１、請求項２、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア、請求項３、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成装置、請求項４、請求項６、請求項７、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、請求項５、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア管理装置、請求項８、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ生成装置、請求項９、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置、又は、請求項１２乃至請求項１４に記載のソフトウエア製造装置に記載の処理を実行させることができる。
【００４５】
また、上記課題を解決するために、請求項１６に記載の機械語コード埋め込み装置（電子機器）は、処理を施したいソフトウエアを供給媒体によって供給することによって、ソフトウエアに機能を有する手段をバイナリの状態で組み込んで、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除して供給媒体に格納することを特徴とする機械語コード埋め込み装置（電子機器）とした。
【００４６】
これにより、処理を施したいソフトウエアを供給媒体によって供給することによって、ソフトウエアに機能を有する手段をバイナリの状態で組み込んで、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除して供給媒体に格納することができる。
【００４７】
また、上記課題を解決するために、請求項１７に記載の機械語コード埋め込み装置（電子機器）は、
処理を施したいソフトウエアを供給媒体によって供給することによって、ソフトウエアに機能を有する手段をバイナリの状態で組み込んで供給媒体に格納することを特徴とする機械語コード埋め込み装置（電子機器）であって、
請求項１６に記載の機械語コード埋め込み装置（電子機器）において、
容器に格納されており、
供給媒体を供給する供給媒体供給手段を有し、
前記供給媒体供給手段により供給された供給媒体からソフトウエア及び／又は組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等）を示すファイル又はデータを読み込み、
前記ソフトウエアに機能を有する手段を
初期設定による組み込み指標か、表示手段を有している場合、表示手段に表示される選択手段による組み込み指標か、各種選択釦を有している場合、選択釦による組み込み指標か、ファイル又はデータによる設定による組み込み指標に基づいて、
バイナリの状態で組み込んで供給媒体に格納し、
並びに／若しくは、
前記供給媒体供給手段により供給された供給媒体から組み込み用プログラム及び／又は組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル又はデータを読み込み、
組み込み用プログラムを
初期設定による組み込み用プログラム指標か、表示手段を有している場合、表示手段に表示される選択手段による組み込み用プログラム指標か、各種選択釦を有している場合、選択釦による組み込み用プログラム指標か、ファイル又はデータによる設定による組み込み用プログラム指標に基づいて、
組み込み用プログラムを追加、変更、及び／又は削除をし、
並びに／若しくは、
組み込み用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み用プログラムをバイナリの状態でソフトウエアの実行体に格納し、また、ソフトウエア及び組み込み用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、
並びに／若しくは、
初期設定を変更する為の（選択）操作機（コンピュータ）接続用の接続手段を有し、接続された（選択）操作機（コンピュータ）から初期設定を変更する
ことを特徴とする機械語コード埋め込み装置（電子機器）
とした。
【００４８】
これにより、処理を施したいソフトウエアを供給媒体によって供給することによって、ソフトウエアに機能を有する手段をバイナリの状態で組み込んで供給媒体に格納することができる。
【００４９】
また、上記課題を解決するために、請求項１８に記載の機械語コード埋め込み装置（電子機器）は、
処理を施したいソフトウエアを供給媒体によって供給することによって、ソフトウエアに機能を有する手段をバイナリの状態で組み込んで、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除して供給媒体に格納することを特徴とする機械語コード埋め込み装置（電子機器）であって、
請求項１６又は請求項１７に記載の機械語コード埋め込み装置（電子機器）において、
容器に格納されており、
供給媒体を供給する供給媒体供給手段を有し、
前記供給媒体供給手段により供給された供給媒体から機能を有する手段が組み込まれた／組み込んでいないソフトウエア及び／又は組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）を示すファイル又はデータを読み込み、
前記機能を有する手段が組み込まれた／組み込んでいないソフトウエアから機能を有する手段を
初期設定による組み込み指標か、表示手段を有している場合、表示手段に表示される選択手段による組み込み指標か、各種選択釦を有している場合、選択釦による組み込み指標か、ファイル又はデータによる設定による組み込み指標に基づいて、
バイナリの状態で組み込み削除し、機能を有する手段が組み込み削除されたソフトウエアを供給媒体に格納し、
並びに／若しくは、
前記供給媒体供給手段により供給された供給媒体から組み込み削除用プログラム及び／又は組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）を示すファイル又はデータを読み込み、
組み込み削除用プログラムを
初期設定による組み込み用プログラム指標か、表示手段を有している場合、表示手段に表示される選択手段による組み込み用プログラム指標か、各種選択釦を有している場合、選択釦による組み込み用プログラム指標か、ファイル又はデータによる設定による組み込み用プログラム指標に基づいて、
組み込み削除用プログラムを追加、変更、及び／又は削除をし、
並びに／若しくは、
組み込み削除用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から組み込み削除し、また、ソフトウエア及び組み込み削除用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルした機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、
並びに／若しくは、
初期設定を変更する為の（選択）操作機（コンピュータ）接続用の接続手段を有し、接続された（選択）操作機（コンピュータ）から初期設定を変更する
ことを特徴とする機械語コード埋め込み装置（電子機器）
とした。
【００５０】
これにより、処理を施したいソフトウエアを供給媒体によって供給することによって、ソフトウエアに機能を有する手段をバイナリの状態で組み込んで、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除して供給媒体に格納することができる。
【００５１】
また、上記課題を解決するために、請求項１９に記載の機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）は、電子機器又はコンピュータに装着することによって、電子機器又はコンピュータ上に存在する実行体に、機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、実行体にバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とする機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）とした。
【００５２】
これにより、電子機器上に存在する実行体に、機能を有する手段をバイナリの状態で組み込むことができ、機械語コード組込システム集積回路を電子機器又はコンピュータに装着しているだけで、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上にある全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上すると共に、組み込んだ機能を有する手段が組み込まれたソフトウエアから組み込んだ機能を有する手段を削除し元のソフトウエアに戻すこともでき、さらに、機能を有する手段を組み込んでいないソフトウエアからでも機能を有する手段を組み込み削除することができ、他人に使用させたくない機能は使用させないようにすることができ、セキュリティ機能が向上する。
【００５３】
また、上記課題を解決するために、請求項２０に記載の機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）は、
電子機器又はコンピュータに装着することによって、電子機器又はコンピュータ上に存在する実行体に、機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、実行体にバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とする機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）であって、
請求項１９に記載の機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）において、
容器に格納されており、
電子機器又はコンピュータ上に存在する実行体に、集積回路（又は供給若しくは配布媒体）組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等）に基づいて、電子機器又はコンピュータ上に存在する実行体に、実行体の実行を監視し、実行体の停止中に、機能を有する手段をバイナリの状態で組み込むことを特徴とし、
初期設定による集積回路（又は供給若しくは配布媒体）組み込み指標か、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標選択手段による集積回路（又は供給若しくは配布媒体）組み込み指標か、電子機器又はコンピュータが供給媒体を供給する供給媒体供給手段を有する場合、集積回路（又は供給若しくは配布媒体）組み込み指標を示すファイル又はデータを供給することによる集積回路（又は供給若しくは配布媒体）組み込み指標設定に基づいて、電子機器又はコンピュータ上に存在する実行体に、機能を有する手段をバイナリの状態で組み込み、
並びに／若しくは、
（１）
供給媒体を供給する供給媒体供給手段を有する場合、集積回路（又は供給若しくは配布媒体）組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとし、組み込み指標を記憶するか、及び／又は、初期設定をするかどうか等）、並びに／若しくは、組み込み用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとし、組み込み用プログラム指標を記憶するか、並びに／若しくは初期設定を行うかどうか等）を供給媒体により供給すると、供給された集積回路（又は供給若しくは配布媒体）組み込み指標、並びに／若しくは、組み込み用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択手段により選択された集積回路（又は供給若しくは配布媒体）組み込み指標、並びに／若しくは、組み込み用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標が変更され、及び／又は、集積回路（又は供給若しくは配布媒体）組み込み用プログラムが追加、変更、及び／又は削除され、
並びに／若しくは、
供給媒体を供給する供給媒体供給手段を有する場合、
（１−１）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と同じファイルを使用する場合）
ソフトウエアを供給媒体により供給すると、設定されている集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択手段により選択された集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択に基づいて、ソフトウエアに機能を有する手段をバイナリの状態で組み込み、
（１−１−１）
及び／又は、
組み込み用プログラムが、高級言語で記載されたものであって、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、また、ソフトウエアが、高級言語で記載されたものであって、集積回路（又は供給若しくは配布媒体）組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み用プログラムをバイナリの状態でソフトウエアの実行体に格納し、また、ソフトウエア及び組み込み用プログラムも高級言語で記載されている場合であって、集積回路（又は供給若しくは配布媒体）組み込み指標及び集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、
又は、
（１−２）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶しない場合）
ソフトウエアと組み込み指標と組み込み用プログラム及び／又は組み込み用指標を供給媒体により供給すると、組み込み指標と組み込み用プログラム及び／又は組み込み用指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用指標選択に基づいて、ソフトウエアに機能を有する手段をバイナリの状態で組み込み、
（１−２−１）
及び／又は、
組み込み用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み用プログラムをバイナリの状態でソフトウエアの実行体に格納し、また、ソフトウエア及び組み込み用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、
又は、
（１−３）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶する場合）
供給媒体を供給する供給媒体供給手段を有する場合、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとし、組み込み指標を記憶するか、及び／又は、初期設定をするかどうか等）、並びに／若しくは、組み込み用プログラム及び／又は組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとし、組み込み用プログラム指標を記憶するか、並びに／若しくは初期設定を行うかどうか等）を供給媒体により供給すると、初期設定が組み込み指標、並びに／若しくは、組み込み用プログラム及び／又は組み込み用プログラム指標により変更され、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択手段により選択された組み込み指標、並びに／若しくは、組み込み用プログラム及び／又は組み込み用プログラム指標に基づいて変更され、
供給媒体を供給する供給媒体供給手段を有する場合、
ソフトウエアを供給媒体により供給すると、設定されている組み込み指標に基づいて、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標選択手段による組み込み指標選択に基づいて、ソフトウエアに機能を有する手段をバイナリの状態で組み込み、及び／又は初期設定が変更され、
（１−３−１）
及び／又は、
組み込み用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み用プログラムをバイナリの状態でソフトウエアの実行体に格納し、また、ソフトウエア及び組み込み用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納する
ことを特徴とする機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）
とした。
【００５４】
これにより、電子機器上に存在する実行体に、機能を有する手段をバイナリの状態で組み込むことができ、機械語コード組込システム集積回路を電子機器又はコンピュータに装着しているだけで、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上にある全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上する。
【００５５】
また、上記課題を解決するために、請求項２１に記載の機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）は、
電子機器又はコンピュータに装着することによって、電子機器又はコンピュータ上に存在する実行体に、機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、実行体にバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とする機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）であって、
請求項１９又は請求項２０に記載の機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）において、
容器に格納されており、
電子機器又はコンピュータ上に存在する機能を有する手段が組み込まれた／組み込んでいない実行体に、集積回路（又は供給若しくは配布媒体）組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）に基づいて、電子機器又はコンピュータ上に存在する実行体に、機能を有する手段が組み込まれた／組み込んでいない実行体の実行を監視し、実行体の停止中に、機能を有する手段をバイナリの状態で組み込み削除することを特徴とし、
初期設定による集積回路（又は供給若しくは配布媒体）組み込み指標か、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標選択手段による集積回路（又は供給若しくは配布媒体）組み込み指標か、電子機器又はコンピュータが供給媒体を供給する供給媒体供給手段を有する場合、集積回路（又は供給若しくは配布媒体）組み込み指標を示すファイル又はデータを供給することによる集積回路（又は供給若しくは配布媒体）組み込み指標設定に基づいて、電子機器又はコンピュータ上に存在する実行体から、機能を有する手段をバイナリの状態で組み込み削除し、
並びに／若しくは、
（２）
供給媒体を供給する供給媒体供給手段を有する場合、集積回路（又は供給若しくは配布媒体）組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとし、組み込み指標を記憶するか、及び／又は、初期設定をするかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）、並びに／若しくは、組み込み用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み削除用プログラムは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとし、組み込み用プログラム指標を記憶するか、並びに／若しくは初期設定を行うかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）を供給媒体により供給すると、供給された集積回路（又は供給若しくは配布媒体）組み込み指標、並びに／若しくは、組み込み用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択手段により選択された集積回路（又は供給若しくは配布媒体）組み込み指標、並びに／若しくは、組み込み削除用プログラム及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標が変更され、及び／又は、集積回路（又は供給若しくは配布媒体）組み込み削除用プログラムが追加、変更、及び／又は削除され、
並びに／若しくは、
供給媒体を供給する供給媒体供給手段を有する場合、
（２−１）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と同じファイルを使用する場合）
機能を有する手段が組み込まれた／組み込んでいないソフトウエアを供給媒体により供給すると、設定されている集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択手段により選択された集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標選択に基づいて、機能を有する手段が組み込まれた／組み込んでいないソフトウエアから機能を有する手段をバイナリの状態で組み込み削除し、
（２−１−１）
及び／又は、
組み込み削除用プログラムが、高級言語で記載されたものであって、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、また、ソフトウエアが、高級言語で記載されたものであって、集積回路（又は供給若しくは配布媒体）組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から組み込み削除し、また、ソフトウエア及び組み込み削除用プログラムも高級言語で記載されている場合であって、集積回路（又は供給若しくは配布媒体）組み込み指標及び集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルした機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、
又は、
（２−２）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶しない場合）
ソフトウエアと組み込み指標と組み込み削除用プログラム及び／又は組み込み用指標を供給媒体により供給すると、組み込み指標と組み込み削除用プログラム及び／又は組み込み用指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用指標選択に基づいて、機能を有する手段が組み込まれた／組み込んでいないソフトウエアから機能を有する手段をバイナリの状態で組み込み削除し、
（２−２−１）
及び／又は、
組み込み削除用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から組み込み削除し、また、ソフトウエア及び組み込み削除用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルした機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、
又は、
（２−３）
（組み込み指標及び／又は組み込み用プログラム指標を集積回路（又は供給若しくは配布媒体）組み込み指標及び／又は集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶する場合）
供給媒体を供給する供給媒体供給手段を有する場合、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み指標と組み込み指標とを別のファイルとし、組み込み指標を記憶するか、及び／又は、初期設定をするかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）、並びに／若しくは、組み込み用プログラム及び／又は組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとするか、集積回路（又は供給若しくは配布媒体）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとし、組み込み用プログラム指標を記憶するか、並びに／若しくは初期設定を行うかどうか等、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等）を供給媒体により供給すると、初期設定が組み込み指標、並びに／若しくは、組み込み削除用プログラム及び／又は組み込み用プログラム指標により変更され、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択手段により選択された組み込み指標、並びに／若しくは、組み込み削除用プログラム及び／又は組み込み用プログラム指標に基づいて変更され、
供給媒体を供給する供給媒体供給手段を有する場合、
機能を有する手段が組み込まれた／組み込んでいないソフトウエアを供給媒体により供給すると、設定されている組み込み指標に基づいて、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標選択手段による組み込み指標選択に基づいて、機能を有する手段が組み込まれた／組み込んでいないソフトウエアから機能を有する手段をバイナリの状態で組み込み削除、及び／又は初期設定が変更され、
（２−３−１）
及び／又は、
組み込み削除用プログラムが、高級言語で記載されたものであって、組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除し、また、ソフトウエアが、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、ソフトウエアを高級言語のコンパイラでコンパイルし、組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から組み込み削除し、また、ソフトウエア及び組み込み削除用プログラムも高級言語で記載されている場合であって、組み込み指標及び組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルした機能を有する手段が組み込まれた／組み込んでいないソフトウエアの実行体から、コンパイルした組み込み削除用プログラムに基づいて、組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除する
ことを特徴とする機械語コード埋め込みシステム集積回路（又は供給若しくは配布媒体）
とした。
【００５６】
これにより、電子機器上に存在する実行体に、機能を有する手段をバイナリの状態で組み込むことができ、機械語コード組込システム集積回路を電子機器又はコンピュータに装着しているだけで、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上にある全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上すると共に、組み込んだ機能を有する手段が組み込まれたソフトウエアから組み込んだ機能を有する手段を削除し元のソフトウエアに戻すこともでき、さらに、機能を有する手段を組み込んでいないソフトウエアからでも機能を有する手段を組み込み削除することができ、他人に使用させたくない機能は使用させないようにすることができ、セキュリティ機能が向上する。
【発明の効果】
【００５７】
請求項１に記載の１電子機器唯一動作許可ソフトウエアによれば、起動時、起動時に取得した動作する電子機器に固有の指標と、初回起動時固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する為、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００５８】
また、請求項２に記載の１電子機器唯一動作許可ソフトウエアによれば、第１及び／又は第２のソフトウエアが、起動時、起動時に取得した動作する電子機器に固有の指標と、初回起動時固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する為、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００５９】
また、第１のソフトウエアが第２のソフトウエアに組み込まれている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【００６０】
また、請求項３に記載の１電子機器唯一動作許可ソフトウエア生成装置によれば、１電子機器唯一動作許可ソフトウエア生成装置により生成された１電子機器唯一動作許可ソフトウエアは、起動時、起動時に取得した動作する電子機器に固有の指標と、初回起動時固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する為、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００６１】
また、第１のソフトウエアが第２のソフトウエアに組み込まれている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【００６２】
また、請求項４に記載の１電子機器唯一動作許可ソフトウエアによれば、第１のソフトウエア及び／又は１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）が、起動時、起動時に取得した動作する電子機器に固有の指標と、初回起動時固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する為、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００６３】
また、第１のソフトウエアが第２のソフトウエアに組み込まれている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【００６４】
また、請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置によれば、第２のソフトウエアが起動時、固有指標一致動作継続許可手段を有する場合、第１のソフトウエアが動作していない場合、第１のソフトウエアに組み込まれている為、逆アセンブル等のプログラム解析等を行うことが困難となり、セキュリティ機能が高まる。また、第２のソフトウエアは、初回起動した電子機器以外では動作ができなくなる。
【００６５】
また、第１のソフトウエアのみが、固有指標一致動作継続許可手段を有する場合、第１のソフトウエアが初回起動後、第２のソフトウエアは削除される為、初回起動した電子機器の初回起動時以外では第１のソフトウエアを生成することができず、また、第２のソフトウエアは、初回生成時の電子機器以外では動作ができなくなる。
【００６６】
また、請求項６又は請求項７に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）によれば、請求項４に記載の第１又は第２のソフトウエアを請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置において、請求項５に記載の第２のソフトウエアが起動時、固有指標一致動作継続許可手段を有する場合、請求項５に記載の第１のソフトウエアが動作していない場合、請求項５に記載の第１のソフトウエアに組み込まれている為、逆アセンブル等のプログラム解析等を行うことが困難となり、セキュリティ機能が向上する。また、請求項５に記載の第１のソフトウエアは、初回起動した電子機器以外では動作ができなくなる。
【００６７】
また、請求項４に記載の第１又は第２のソフトウエアを請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置において、請求項５に記載の第１のソフトウエアのみが、固有指標一致動作継続許可手段を有する場合、請求項５に記載の第１のソフトウエアが初回起動後、削除される為、初回起動した電子機器の初回起動時以外では請求項５に記載の第２のソフトウエアを生成することができず、また、請求項５に記載の第２のソフトウエアは、初回生成時の電子機器以外では動作ができなくなる。
【００６８】
また、請求項８に記載の１電子機器唯一動作許可インストーラ生成装置によれば、１電子機器唯一動作許可インストーラ生成装置により生成された１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）は、第１のソフトウエア及び／又は１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）が、起動時、起動時に取得した動作する電子機器に固有の指標と、初回起動時固有指標確保手段に確保された動作する電子機器に固有の指標とを比較し、一致した場合にのみ動作継続を許可する為、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００６９】
また、第１のソフトウエアが第２のソフトウエアに組み込まれている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【００７０】
また、請求項８に記載の１電子機器唯一動作許可インストーラ生成装置によれば、１電子機器唯一動作許可インストーラ生成装置により生成された１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）は、請求項４に記載の第１又は第２のソフトウエアを請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置において、請求項５に記載の第２のソフトウエアが起動時、固有指標一致動作継続許可手段を有する場合、請求項５に記載の第１のソフトウエアが動作していない場合、請求項５に記載の第１のソフトウエアに組み込まれている為、逆アセンブル等のプログラム解析等を行うことが困難となり、セキュリティ機能が向上する。また、請求項５に記載の第１のソフトウエアは、初回起動した電子機器以外では動作ができなくなる。
【００７１】
また、請求項４に記載の第１又は第２のソフトウエアを請求項５に記載の１電子機器唯一動作許可ソフトウエア管理装置において、請求項５に記載の第１のソフトウエアのみが、固有指標一致動作継続許可手段を有する場合、請求項５に記載の第１のソフトウエアが初回起動後、削除される為、初回起動した電子機器の初回起動時以外では請求項５に記載の第２のソフトウエアを生成することができず、また、請求項５に記載の第２のソフトウエアは、初回生成時の電子機器以外では動作ができなくなる。
【００７２】
また、請求項１０に記載の１電子機器唯一動作許可ソフトウエア、１電子機器唯一動作許可ソフトウエア生成装置、１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、１電子機器唯一動作許可ソフトウエア管理装置、１電子機器唯一動作許可インストーラ生成装置、１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置によれば、初回起動時の電子機器以外ではソフトウエアの使用を不可能とすることができる。
【００７３】
また、請求項１１に記載の１電子機器唯一動作許可ソフトウエア、１電子機器唯一動作許可ソフトウエア生成装置、１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、１電子機器唯一動作許可ソフトウエア管理装置、１電子機器唯一動作許可インストーラ生成装置、１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置によれば、逆アセンブル等によるプログラム解析等を困難とし、セキュリティ機能を高めることができる。
【００７４】
また、請求項１２又は請求項１３に記載のソフトウエア製造装置によれば、ソフトウエアに機能を有する手段をバイナリの状態で組み込む、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することができる。
【００７５】
また、請求項１４に記載の供給若しくは配布媒体によれば、供給若しくは配布媒体を供給若しくは配布することにより、請求項１、請求項２、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア、請求項３、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成装置、請求項４、請求項６、請求項７、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）、請求項５、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア管理装置、請求項８、若しくは請求項１０に記載の１電子機器唯一動作許可インストーラ生成装置、請求項９、若しくは請求項１０に記載の１電子機器唯一動作許可ソフトウエア生成若しくは製造装置、若しくは１電子機器唯一動作許可インストーラ生成装置、又は、請求項１２若しくは請求項１３に記載のソフトウエア製造装置に記載の処理を実行させることができる。
【００７６】
また、請求項１５に記載の機械語コード埋め込み装置（電子機器）によれば、処理を施したいソフトウエアを供給媒体によって供給することによって、ソフトウエアに機能を有する手段をバイナリの状態で組み込んで、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除して供給媒体に格納することができる。
【００７７】
また、請求項１６に記載の機械語コード埋め込み装置（電子機器）によれば、処理を施したいソフトウエアを供給媒体によって供給することによって、ソフトウエアに機能を有する手段をバイナリの状態で組み込んで、並びに／若しくは、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除して供給媒体に格納することができる。
【００７８】
また、請求項１７に記載の機械語コード埋め込みシステム集積回路によれば、電子機器上に存在する実行体に、機能を有する手段をバイナリの状態で組み込むことができ、機械語コード組込システム集積回路を電子機器又はコンピュータに装着しているだけで、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上にある全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上すると共に、組み込んだ機能を有する手段が組み込まれたソフトウエアから組み込んだ機能を有する手段を削除し元のソフトウエアに戻すこともでき、さらに、機能を有する手段を組み込んでいないソフトウエアからでも機能を有する手段を組み込み削除することができ、他人に使用させたくない機能は使用させないようにすることができ、セキュリティ機能が向上する。
【００７９】
また、請求項１８に記載のことを特徴とする機械語コード埋め込みシステム集積回路によれば、電子機器上に存在する実行体に、機能を有する手段をバイナリの状態で組み込むことができ、機械語コード組込システム集積回路を電子機器又はコンピュータに装着しているだけで、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上にある全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上すると共に、組み込んだ機能を有する手段が組み込まれたソフトウエアから組み込んだ機能を有する手段を削除し元のソフトウエアに戻すこともでき、さらに、機能を有する手段を組み込んでいないソフトウエアからでも機能を有する手段を組み込み削除することができ、他人に使用させたくない機能は使用させないようにすることができ、セキュリティ機能が向上する。
【００８０】
したがって、本発明により、一台の電子機器でのみしか使用不可能であり、プログラム解析等が困難であり、セキュリティ機能が高い、１電子機器唯一動作許可インストーラ（ソフトウエア配布装置）及び１電子機器唯一動作許可インストール方法（ソフトウエア配布方法）並びに供給若しくは配布媒体、１電子機器唯一動作許可ソフトウエア管理装置及び方法並びに供給若しくは供給若しくは配布媒体、１電子機器唯一動作許可インストーラ管理装置及び方法並びに供給若しくは配布媒体、１電子機器唯一動作許可インストーラ生成装置及び１電子機器唯一動作許可インストーラ生成方法並びに供給若しくは配布媒体、１電子機器唯一動作許可ソフトウエア及び１電子機器唯一動作許可ソフトウエアの１電子機器唯一動作許可方法並びに供給若しくは配布媒体、１電子機器唯一動作許可ソフトウエア生成装置及び方法並びに供給若しくは配布媒体、１電子機器唯一動作許可ソフトウエア製造装置及び方法並びに供給若しくは配布媒体、ソフトウエア製造装置及び方法並びに供給若しくは配布媒体、並びに、機械語コード埋め込み装置（電子機器）若しくはシステム集積回路及び方法並びに供給若しくは配布媒体を提供することができた。
【発明を実施するための最良の形態】
【００８１】
本発明の１電子機器唯一動作許可ソフトウエアの実施の形態について図１を用いて説明する。
【００８２】
本発明の実施の形態の１電子機器唯一動作許可ソフトウエアの実施の形態の構成について説明する。
【００８３】
本実施の形態の１電子機器唯一動作許可ソフトウエア０は、ＭＡＣアドレスを取得するＭＡＣアドレス取得部１９と、初回起動時のＭＡＣアドレスを格納するＭＡＣアドレス格納領域１１と、初回起動時に取得したＭＡＣアドレスを１電子機器唯一動作許可ソフトウエア０自身の実行体のＭＡＣアドレス格納領域１１にバイナリの状態で書き込むＭＡＣアドレス自身書込部１６とから構成されている。
【００８４】
尚、本明細書中、特許請求の範囲中、図面中、要約書中において、ＭＡＣアドレスとは、Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓのことを示すこととする。
【００８５】
次に、本発明の実施の形態の１電子機器唯一動作許可ソフトウエア０の動作及び１電子機器唯一動作許可ソフトウエア０の１電子機器唯一動作許可方法について説明する。
【００８６】
１電子機器唯一動作許可ソフトウエア０は、初回起動時、ＭＡＣアドレス取得部１９により取得したＭＡＣアドレスが、ＭＡＣアドレス自身書込部１６により、１電子機器唯一動作許可ソフトウエア０自身の実行体のＭＡＣアドレス格納領域１１にバイナリの状態で書き込まれる。そして、ＭＡＣアドレス比較判定部１３により、起動時にＭＡＣアドレス取得部１９により取得されたＭＡＣアドレスと、ＭＡＣアドレス格納領域１１に格納されているＭＡＣアドレスとが比較され、一致した場合にのみ動作を継続し、一致しない場合、１電子機器唯一動作許可ソフトウエア０を終了する。
【００８７】
以上のように、本発明の実施の形態の１電子機器唯一動作許可ソフトウエア０によれば、初回起動時、ＭＡＣアドレスをＭＡＣアドレス格納領域１１に格納し、起動時、ＭＡＣアドレス比較判定部１３により、ＭＡＣアドレス格納領域１１に格納してあるＭＡＣアドレスと取得したＭＡＣアドレスとを比較し、一致した場合にのみ起動する為、初回起動した電子機器以外では起動できなくすることができる。
【００８８】
本発明の実施の形態の１電子機器唯一動作許可被生成ソフトウエア生成ソフトウエア２（以下においては、被生成ソフトウエア生成ソフトウエア２と略称する）及び１電子機器唯一動作許可被生成ソフトウエア生成ソフトウエア生成装置５（以下においては、被生成ソフトウエア生成ソフトウエア生成装置５と略称する）の実施の形態について図２を用いて説明する。
【００８９】
本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２及び被生成ソフトウエア生成ソフトウエア生成装置５の実施の形態の構成について説明する。
【００９０】
被生成ソフトウエア生成ソフトウエア２において、被生成ソフトウエア１と被生成ソフトウエア生成ソフトウエア２との構成のパターンには、図２に示すように、（構成１）から（構成５）までの構成のパターンがある。
【００９１】
（構成１）から（構成５）の全てのパターンについて共通に、生成被生成の関係にある２つのソフトウエアから構成され、被生成ソフトウエア１を格納するメモリ領域である被生成ソフトウエア格納領域２０と、被生成ソフトウエア格納領域２０に格納されている被生成ソフトウエア１から被生成ソフトウエア１を生成する被生成ソフトウエア生成部２４とから構成されている。
【００９２】
また、被生成ソフトウエア生成ソフトウエア生成装置５は、被生成ソフトウエア１と、被生成ソフトウエア生成ソフトウエア２と、被生成ソフトウエア生成ソフトウエア５のソフトウエア格納領域２０に被生成ソフトウエア１を格納する為のソフトウエア組込器１００とから構成されている。
【００９３】
被生成ソフトウエア生成ソフトウエア生成装置５の動作は、全パターン共通で、ソフトウエア組込器１００により被生成ソフトウエア生成ソフトウエア５のソフトウエア格納領域２０に被生成ソフトウエア１を格納する。
【００９４】
尚、図２に示す（構成２）、（構成３）、（構成５）のパターンでは、被生成ソフトウエア生成ソフトウエア生成装置５の構成は、ＭＡＣアドレス取得部１９とＭＡＣアドレス比較判定部１３とＭＡＣアドレス格納領域１１をも含む構成としてよく、この場合、被生成ソフトウエア生成ソフトウエア生成装置５の動作は、ＭＡＣアドレス取得部１９とＭＡＣアドレス比較判定部１３とＭＡＣアドレス格納領域１１を、被生成ソフトウエア生成ソフトウエア２のソフトウエア格納領域２０に被生成ソフトウエア１を格納する際に、被生成ソフトウエア１の実行体にバイナリの状態で自動的に組み込むようにする（この組込方法は、図９に示す本発明の実施の形態の機械語コード組み込み装置及び方法と同様である。）。
【００９５】
また、図２に示す（構成４）のパターンでは、被生成ソフトウエア生成ソフトウエア生成装置５の構成は、ＭＡＣアドレス取得部１９とＭＡＣアドレス比較判定部１３とＭＡＣアドレス格納領域１１とＭＡＣアドレス自身書込部１６をも含む構成としてよく、この場合、被生成ソフトウエア生成ソフトウエア生成装置５の動作は、ＭＡＣアドレス取得部１９とＭＡＣアドレス比較判定部１３とＭＡＣアドレス格納領域１１とＭＡＣアドレス自身書込部１６を、被生成ソフトウエア生成ソフトウエア２のソフトウエア格納領域２０に被生成ソフトウエア１を格納する際、被生成ソフトウエア１の実行体にバイナリの状態で自動的に組み込むようにする（この組込方法は、図９に示す本発明の実施の形態の機械語コード組み込み装置及び方法と同様である。）。
【００９６】
以下に、被生成ソフトウエア生成ソフトウエア２の図２に示す構成パターンごとの構成及び動作について詳細に説明する。
【００９７】
（構成１）における本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の構成を説明する。
【００９８】
（構成１）の被生成ソフトウエア１は、何も組み込まれておらず、被生成ソフトウエア生成ソフトウエア２は、被生成ソフトウエア１を格納するメモリ領域である被生成ソフトウエア格納領域２０と、ＭＡＣアドレスを取得するＭＡＣアドレス取得部２９と、ＭＡＣアドレスを格納するＭＡＣアドレス格納領域２１と、被生成ソフトウエア生成ソフトウエア２自身の実行体のＭＡＣアドレス格納領域２１にバイナリの状態でＭＡＣアドレスを書き込むＭＡＣアドレス自身書込部２６と、被生成ソフトウエア格納領域２０に格納されている被生成ソフトウエア１から被生成ソフトウエア１を生成する被生成ソフトウエア生成部２４とを有している。
【００９９】
次に、（構成１）における本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の動作を説明する。
【０１００】
（構成１）の被生成ソフトウエア生成ソフトウエア２は、初回起動時にＭＡＣアドレス取得部２９により取得したＭＡＣアドレスを被生成ソフトウエア生成ソフトウエア２自身の実行体のＭＡＣアドレス自身書込部２６によりバイナリの状態でＭＡＣアドレス格納領域２１に格納する。そして、起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域２１に格納されているＭＡＣアドレスとを比較し、一致した場合にのみ起動を継続する。
【０１０１】
したがって、初回起動した電子機器以外では、被生成ソフトウエア生成ソフトウエア２の起動及び被生成ソフトウエア１の生成を行うことが不可能となる。
【０１０２】
（構成２）における本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の構成を説明する。
【０１０３】
（構成２）の被生成ソフトウエア１は、ＭＡＣアドレスを取得するＭＡＣアドレス取得部１９と、初回起動時に取得したＭＡＣアドレスを格納するＭＡＣアドレス格納領域１１と、取得したＭＡＣアドレスとＭＡＣアドレス格納領域１１に格納されているＭＡＣアドレスとを比較し、一致した場合にのみ動作継続するＭＡＣアドレス比較判定部１３とから構成されている。
【０１０４】
また、（構成２）の被生成ソフトウエア生成ソフトウエア２は、ＭＡＣアドレスを取得するＭＡＣアドレス取得部２９と、被生成ソフトウエア１が格納さているソフトウエア格納領域２０と、ソフトウエア格納領域２０に格納されている被生成ソフトウエア１のＭＡＣアドレス格納領域１１にＭＡＣアドレスを組み込むＭＡＣアドレス組込部２２と、ＭＡＣアドレスが組み込まれた被生成ソフトウエア１を生成するソフトウエア生成部２４とから構成されている。
【０１０５】
次に、（構成２）における本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の動作を説明する。
【０１０６】
（構成２）の被生成ソフトウエア生成ソフトウエア２は、初回起動時、ＭＡＣアドレス取得部２９により取得したＭＡＣアドレスをＭＡＣアドレス組込部２２によりソフトウエア格納領域２０に格納されている被生成ソフトウエア１のＭＡＣアドレス格納領域１１に格納する。ソフトウエア生成部２４は、ＭＡＣアドレスが組み込まれた被生成ソフトウエア１を生成する。
【０１０７】
したがって、生成された被生成ソフトウエア１には、ＭＡＣアドレスが組み込まれており、ＭＡＣアドレス比較判定部１３により、起動時、ＭＡＣアドレス取得部１９により取得されたＭＡＣアドレスとＭＡＣアドレス格納領域１１に格納されているＭＡＣアドレスとを比較し、一致した場合にのみ動作継続を行う為、被生成ソフトウエア１が生成された電子機器以外では、使用することができなくなる。
【０１０８】
（構成３）における本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の構成を説明する。
【０１０９】
（構成３）の被生成ソフトウエア１は、ＭＡＣアドレスを取得するＭＡＣアドレス取得部１９と、ＭＡＣアドレスを格納するＭＡＣアドレス格納領域１１と、取得したＭＡＣアドレスとＭＡＣアドレス格納領域１１に格納されているＭＡＣアドレスとを比較し、一致した場合にのみ動作継続させるＭＡＣアドレス比較判定部１３とから構成されている。
【０１１０】
（構成３）の被生成ソフトウエア生成ソフトウエア２は、被生成ソフトウエア１を格納するソフトウエア格納領域２０と、ＭＡＣアドレスを取得するＭＡＣアドレス取得部２９と、初回起動時に取得したＭＡＣアドレスを格納するＭＡＣアドレス格納領域２１と、初回起動時、被生成ソフトウエア生成ソフトウエア２自身の実行体のＭＡＣアドレス格納領域２１にバイナリの状態でＭＡＣアドレスを書き込むＭＡＣアドレス自身書込部２６と、起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域２１に格納されているＭＡＣアドレスとを比較し、一致した場合にのみ動作継続させるＭＡＣアドレス比較判定部２３と、ソフトウエア格納領域２０に格納されている被生成ソフトウエア１のＭＡＣアドレス格納領域１１にバイナリの状態でＭＡＣアドレスを組み込むＭＡＣアドレス組込部２２と、ＭＡＣアドレスが組み込まれた被生成ソフトウエア１を生成する被生成ソフトウエア生成部２４とから構成されている。
【０１１１】
次に、（構成３）における本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の動作を説明する。
【０１１２】
被生成ソフトウエア生成ソフトウエア２を起動すると、ＭＡＣアドレス取得部２９によりＭＡＣアドレスが取得され、初回起動時、ＭＡＣアドレス自身書込部２６により被生成ソフトウエア生成ソフトウエア２自身の実行体のＭＡＣアドレス格納領域２１にバイナリの状態でＭＡＣアドレスが書き込まれる。そして、起動時、ＭＡＣアドレス比較判定部２３により、ＭＡＣアドレス取得部２９により取得したＭＡＣアドレスとＭＡＣアドレス格納領域２１に格納されているＭＡＣアドレスとが比較され、一致した場合にのみ動作継続を行う。取得されたＭＡＣアドレスは、ソフトウエア格納領域２０に格納されている被生成ソフトウエア１のＭＡＣアドレス格納領域１１に格納され、被生成ソフトウエア１は、ソフトウエア生成部２４により生成される。
【０１１３】
したがって、被生成ソフトウエア生成ソフトウエア２は、初回起動した電子機器以外では動作することが不可能となる。
【０１１４】
生成された被生成ソフトウエア１は、起動時、ＭＡＣアドレス比較判定部１３によりＭＡＣアドレス取得部１９により取得されたＭＡＣアドレスとＭＡＣアドレス格納領域１１に格納されているＭＡＣアドレスとが比較され、一致した場合にのみ動作継続を行う。
【０１１５】
したがって、生成された被生成ソフトウエア１は、生成された電子機器以外では動作することが不可能となる。
【０１１６】
（構成４）における本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の構成を説明する。
【０１１７】
（構成４）の被生成ソフトウエア１は、ＭＡＣアドレスを取得するＭＡＣアドレス取得部１９と、ＭＡＣアドレスを格納するＭＡＣアドレス格納領域１１と、起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域１１に格納されているＭＡＣアドレスとを比較し、一致した場合にのみ動作継続させるＭＡＣアドレス比較判定部１３と、初回起動時に取得したＭＡＣアドレスを被生成ソフトウエア１自身の実行体のＭＡＣアドレス格納領域１１にバイナリの状態で書き込むＭＡＣアドレス自身書込部１６とから構成されている。
【０１１８】
（構成４）の被生成ソフトウエア生成ソフトウエア２は、ＭＡＣアドレスを取得するＭＡＣアドレス取得部２９と、被生成ソフトウエア１を格納するソフトウエア格納領域２０と、初回起動時に取得したＭＡＣアドレスを格納するＭＡＣアドレス格納領域２１と、初回起動時、被生成ソフトウエア生成ソフトウエア２自身の実行体のＭＡＣアドレス格納領域２１にバイナリの状態でＭＡＣアドレスを書き込むＭＡＣアドレス自身書込部２６と、起動時取得したＭＡＣアドレスとＭＡＣアドレス格納領域２１に格納されているＭＡＣアドレスとを比較し、一致した場合のみ動作継続させるＭＡＣアドレス比較判定部２３とから構成されている。
【０１１９】
次に、（構成４）における本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の動作を説明する。
【０１２０】
（構成４）の被生成ソフトウエア生成ソフトウエア２を起動すると、ＭＡＣアドレス取得部２９によりＭＡＣアドレスが取得され、初回起動時、ＭＡＣアドレス自身書込部２６により被生成ソフトウエア生成ソフトウエア２自身の実行体のＭＡＣアドレス格納領域２１にバイナリの状態でＭＡＣアドレスが格納される。そして、起動時、ＭＡＣアドレス比較判定部２３により、ＭＡＣアドレス取得部２９により取得したＭＡＣアドレスとＭＡＣアドレス格納領域２１に格納されているＭＡＣアドレスとが比較され、一致した場合にのみ動作継続を行う。ソフトウエア格納領域２０に格納されている被生成ソフトウエア１は、被ソフトウエア生成部２４により生成される。
【０１２１】
したがって、被生成ソフトウエア生成ソフトウエア２は、初回起動した電子機器以外では動作することが不可能となる。
【０１２２】
生成された被生成ソフトウエア１は、初回起動時、ＭＡＣアドレス取得部１９によりＭＡＣアドレスを取得し、取得したＭＡＣアドレスはＭＡＣアドレス自身書込部１６により被生成ソフトウエア１自身の実行体のＭＡＣアドレス格納領域１１にバイナリの状態で書き込まれる。起動時、ＭＡＣアドレス比較判定部１３によりＭＡＣアドレス取得部１９により取得されたＭＡＣアドレスとＭＡＣアドレス格納領域１１に格納されているＭＡＣアドレスとが比較され、一致した場合にのみ動作継続を行う。
【０１２３】
したがって、生成された被生成ソフトウエア１は、生成された電子機器以外では動作することが不可能となる。
【０１２４】
（構成５）における本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の構成を説明する。
【０１２５】
（構成５）の被生成ソフトウエア１は、ＭＡＣアドレスを取得するＭＡＣアドレス取得部１９と、ＭＡＣアドレスを格納するＭＡＣアドレス格納領域１１と、取得したＭＡＣアドレスとＭＡＣアドレス格納領域１１に格納されているＭＡＣアドレスとを比較し、一致した場合にのみ動作継続させるＭＡＣアドレス比較判定部１３と、初回起動時に取得したＭＡＣアドレスを被生成ソフトウエア１自身の実行体のＭＡＣアドレス格納領域１１にバイナリの状態で書き込むＭＡＣアドレス自身書込部１６とから構成されている。
【０１２６】
（構成５）の被生成ソフトウエア生成ソフトウエア２は、被生成ソフトウエア１を格納するソフトウエア格納領域２０と、ソフトウエア格納領域２０に格納されている被生成ソフトウエア１とから構成されている。
【０１２７】
次に、（構成５）における本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の動作を説明する。
【０１２８】
（構成５）の被生成ソフトウエア生成ソフトウエア２を起動すると、ソフトウエア格納領域２０に格納されている被生成ソフトウエア１がソフトウエア生成部２４により生成される。
【０１２９】
生成された（構成５）の被生成ソフトウエア１は、初回起動時、ＭＡＣアドレス取得部１９によりＭＡＣアドレスを取得し、取得したＭＡＣアドレスはＭＡＣアドレス自身書込部１６により被生成ソフトウエア１自身の実行体のＭＡＣアドレス格納領域１１にバイナリの状態で書き込まれる。起動時、ＭＡＣアドレス比較判定部１３によりＭＡＣアドレス取得部１９により取得されたＭＡＣアドレスとＭＡＣアドレス格納領域１１に格納されているＭＡＣアドレスとが比較され、一致した場合にのみ動作継続を行う。
【０１３０】
したがって、生成された被生成ソフトウエア１は、生成された電子機器以外では動作することが不可能となる。
【０１３１】
本発明の実施の形態の１電子機器唯一動作許可ソフトウエア管理装置７の実施の形態について図３を用いて説明する。
【０１３２】
本発明の実施の形態の１電子機器唯一動作許可ソフトウエア管理装置７の実施の形態の構成について説明する。
【０１３３】
本発明の実施の形態の１電子機器唯一動作許可ソフトウエア管理装置７は、上述した本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の各（構成１）、（構成３）、（構成４）までの構成の被生成ソフトウエア生成ソフトウエア２に、生成した被生成ソフトウエア１を起動するソフトウエア起動部２７と、起動した被生成ソフトウエア１の終了を待って削除する終了時削除部２８とがさらに設けられた被生成ソフトウエア生成ソフトウエア２を１電子機器唯一動作許可ソフトウエア管理装置７とし、被生成ソフトウエア１を被管理ソフトウエア６とした構成となっており、ソフトウエア起動部２７は、被生成ソフトウエア１を起動し、終了時削除部２８は、起動した被生成ソフトウエア１の終了を待って削除する機能を有している。尚、１電子機器唯一動作許可ソフトウエア管理装置７は、１電子機器唯一動作許可ソフトウエア管理装置７が、ソフトウエア格納領域２０とソフトウエア生成部２４とソフトウエア起動部２７と終了時削除部２８のみを有する構成としてもよく、また、１電子機器唯一動作許可ソフトウエア管理装置７が、ソフトウエア格納領域２０とソフトウエア生成部２４とソフトウエア起動部２７を有し、被管理ソフトウエア６が起動時削除部１８を有する構成としてもよい。
【０１３４】
また、本発明の実施の形態の１電子機器唯一動作許可ソフトウエア管理装置７は、上述した本発明の実施の形態の被生成ソフトウエア生成ソフトウエア２の各（構成２）、（構成３）、（構成４）、（構成５）までの構成の被生成ソフトウエア生成ソフトウエア２に、生成した被生成ソフトウエア１を起動するソフトウエア起動部２７がさらに設けられた被生成ソフトウエア生成ソフトウエア２を１電子機器唯一動作許可ソフトウエア管理装置７とし、被生成ソフトウエア１に、起動時、被生成ソフトウエア生成ソフトウエア２を削除する起動時削除部１８をさらに設けた被生成ソフトウエア１を被管理ソフトウエア６とした構成となっており、ソフトウエア起動部２７は、被生成ソフトウエア１を起動し、起動時削除部１８は、起動時、１電子機器唯一動作許可ソフトウエア管理装置７を削除する機能を有している。
【０１３５】
次に、本発明の１電子機器唯一動作許可ソフトウエア管理装置７の動作について説明する。
【０１３６】
（構成１）、（構成３）、（構成４）の場合、１電子機器唯一動作許可ソフトウエア管理装置７は、ソフトウエア起動部２７により被管理ソフトウエア６を起動し、終了時削除部２７により被管理ソフトウエア６の終了を待って、被管理ソフトウエア６を削除する。
【０１３７】
したがって、本実施の形態の１電子機器唯一動作許可ソフトウエア管理装置７は、起動した被管理ソフトウエア６の終了を待って、被管理ソフトウエア６を削除し、保存時では被管理ソフトウエア６はソフトウエア管理装置４に格納されている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が向上する。また、１電子機器唯一動作許可ソフトウエア管理装置７の初回起動時の電子機器以外では使用ができなくなる。
【０１３８】
（構成２）、（構成３）、（構成４）、（構成５）の場合、被管理ソフトウエア６は、被管理ソフトウエア６の起動時、１電子機器唯一動作許可ソフトウエア管理装置７を削除する。
【０１３９】
したがって、被管理ソフトウエア６は、初回起動時の電子機器以外では使用できないと共に、１電子機器唯一動作許可ソフトウエア管理装置７は初回起動時に削除される為、初回起動した電子機器以外では、被管理ソフトウエア６を生成及び動作させることは不可能となる。
【０１４０】
尚、以上の本発明の実施の形態において、動作する電子機器に固有の指標をＭＡＣアドレスとしたが、動作する電子機器に固有の指標であれば何でもよい。
【０１４１】
また、以上の本発明の実施の形態において、格納するソフトウエア及び／又はＭＡＣアドレスを暗号化すれば、逆アセンブル等によるプログラム解析等が困難となり、さらにセキュリティ機能が向上する。この場合、ソフトウエア及び／又はＭＡＣアドレスを読み出す場合は、復号化して読み出すようにする。
【０１４２】
また、以上の本発明の実施の形態において、図２に示す（構成１）から（構成５）までのパターンの被生成ソフトウエア生成ソフトウエア２において、被生成ソフトウエア１又は被生成ソフトウエア生成ソフトウエア２を１電子機器唯一動作許可ソフトウエア管理装置７としたインストーラとする構成としてもよい。さらに、その構成要素の1つ1つのソフトウエアを１電子機器唯一動作許可ソフトウエア管理装置７とする構成を無限に近い回数までの複数回まで繰り返す構成とした１電子機器唯一動作許可ソフトウエア又はインストーラとしてもよい。
【０１４３】
以下に、本発明の実施の形態を応用した実施例を示す。
【実施例１】
【０１４４】
本発明の１電子機器唯一動作許可インストーラ（以下では、インストーラと略称する）及び１電子機器唯一動作許可インストール方法（以下では、インストール方法と略称する）、及び１電子機器唯一動作許可インストーラ生成装置及び方法（以下では、インストーラ生成装置及び方法と略称する）の１実施の形態としての第１の実施の形態は図２に示す（構成３）を応用した実施例である。尚、以下では、電子機器の一例としてコンピュータを使用し、電子機器に固有の指標としてＭＡＣアドレスを使用している。
【０１４５】
本発明のインストーラ及びインストール方法、及びインストーラ生成装置及び方法の１実施の形態としての第１の実施の形態を図４を用いて説明する。
【０１４６】
本発明のインストーラ、インストーラ生成装置の１実施の形態としての第１の実施の形態の構成について説明する。
【０１４７】
本発明の第１の実施の形態のインストーラは、提供されたソフトウエア１ａと、ソフトウエア１ａを格納するインストーラ２ａとから大略構成されている。
【０１４８】
以下に、本発明の第１の実施の形態のインストーラの各構成について詳細に説明する。
【０１４９】
ソフトウエア１ａは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部１９ａと、ＭＡＣアドレスを格納するメモリ領域であるＭＡＣアドレス格納領域１１ａと、起動時に取得するＭＡＣアドレスとＭＡＣアドレス格納領域１１ａに格納されているＭＡＣアドレスとを比較するＭＡＣアドレス比較判定部１３ａが組み込まれた構成となっている。
【０１５０】
インストーラ２ａは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部２９ａと、ソフトウエア１ａを格納するメモリ領域であるソフトウエア格納領域２０ａと、初回起動時に取得するＭＡＣアドレスを格納するメモリ領域であるＭＡＣアドレス格納領域２１ａと、初回起動時に取得するＭＡＣアドレスをインストーラ２ａの自身の実行体のＭＡＣアドレス格納領域２１ａにバイナリの状態で格納するＭＡＣアドレス自身書込部２６ａと、初回起動時に取得するＭＡＣアドレスをソフトウエア格納領域２０ａに格納されているソフトウエア１ａに組み込むＭＡＣアドレス組込部２２ａと、起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域２１ａに格納されているＭＡＣアドレスとを比較し、一致した場合に起動を継続するＭＡＣアドレス比較判定部２３ａと、ＭＡＣアドレスが組み込まれたソフトウエア１ａを生成するソフトウエア生成部２４ａとから構成されている。
【０１５１】
また、本発明の第１の実施の形態のインストーラ生成装置５ａは、インストーラ２ａと、ソフトウエア１ａをソフトウエア管理装置３ａに格納する為のソフトウエア組込器１００ａとから構成されている。尚、ソフトウエア１ａ中のＭＡＣアドレス比較判定部１３ａとＭＡＣアドレス格納領域１１ａとＭＡＣアドレス取得部１９ａまでを含んでインストーラ生成装置５ａとしてもよい。この場合、インストーラ生成装置５ａは、ソフトウエア１ａをソフトウエア格納領域２０ａに格納する際、ＭＡＣアドレス比較判定部１３ａとＭＡＣアドレス格納領域１１ａとＭＡＣアドレス取得部１９ａをソフトウエア１ａの実行体にバイナリの状態で組み込む構成となる。
【０１５２】
次に、本発明の第１の実施の形態のインストーラ生成装置の動作及びインストーラ生成方法について説明する。
【０１５３】
本発明の第１の実施の形態のインストーラ生成装置５ａは、提供されたソフトウエア１ａをソフトウエア組込器１００ａがインストーラ２ａのソフトウエア格納領域２０ａに格納し、インストーラ２ａを生成する。
【０１５４】
次に、本発明の第１の実施の形態のインストーラの動作及びインストール方法について説明する。
【０１５５】
本発明の第１の実施の形態のインストーラ２ａは、初回起動時に取得したＭＡＣアドレスをＭＡＣアドレス自身書込部２６ａにより、インストーラ２ａ自身の実行体のＭＡＣアドレス格納領域２１ａにバイナリの状態で書き込む。すなわち、インストーラ２ａ自身の実行体をバイナリの状態で開いてＭＡＣアドレス格納領域２１ａに書き込む。また、初回起動時に取得したＭＡＣアドレスは、ＭＡＣアドレス組込部２２ａにより、ソフトウエア格納領域２０ａに格納されているソフトウエア１ａに組み込まれる。そして、ＭＡＣアドレス比較判定部２３ａにより、起動時に取得されたＭＡＣアドレスとＭＡＣアドレス格納領域２１に格納されているＭＡＣアドレスとを比較し、一致すれば起動動作を継続し、一致しなければ、終了する。また、ＭＡＣアドレスが組み込まれたソフトウエア１ａは、ソフトウエア生成部２４ａにより生成される。
【０１５６】
この為、インストール時のコンピュータ以外では、インストーラの起動が行えなくすることができる。
【０１５７】
また、ソフトウエア１ａも起動時、ＭＡＣアドレス比較判定部２３ａにより、取得したＭＡＣアドレスと、ＭＡＣアドレス格納領域２１ａに格納してあるＭＡＣアドレスとを比較し、一致した場合にのみ起動し、一致しなければ終了する。
【０１５８】
この為、インストール時のコンピュータ以外では、ソフトウエアの起動が行えなくすることができる。
【０１５９】
以上のように、本発明の第１の実施の形態のインストーラ及びインストール方法、並びにインストーラ生成装置及び方法によれば、生成されたインストーラ及びソフトウエアにＭＡＣアドレスが組み込まれており、起動時に取得するＭＡＣアドレスと組み込まれているＭＡＣアドレスとが比較できる為、インストール時のコンピュータ以外のコンピュータでは、インストールが行えない為、１台のコンピュータ以外ではインストールが行えなくすることができる。
【０１６０】
尚、上記した本発明の第１の実施の形態のインストーラ及びインストール方法、並びにインストーラ生成装置及び方法において、以下の（１）から（６）に箇条書きにて記すようにしてもよい。
【０１６１】
（１）インストーラ生成装置５ａは、提供されたソフトウエア１ａに対して、ソフトウエア１ａに自動的にＭＡＣアドレス格納領域１１ａとＭＡＣアドレス比較判定部１３ａとＭＡＣアドレス取得部１９aを組み込むような構成としてもよい（この組込方法は、図９に示す本発明の実施の形態の機械語コード組み込み装置及び方法と同様である。）。この場合、インストーラ生成装置５ａは、ＭＡＣアドレス格納領域１１ａとＭＡＣアドレス比較判定部１３ａとＭＡＣアドレス取得部１９aをも含む構成となる。
【０１６２】
（２）また、インストーラ２ａのＭＡＣアドレス組込部２２ａを削除し、ソフトウエア１ａにＭＡＣアドレス自身書込部とＭＡＣアドレス組込部を設け、ソフトウエア１ａ生成の初回起動時にＭＡＣアドレスをＭＡＣアドレス格納領域にソフトウエア１a自身の実行体にバイナリの状態で書き込むようにしてもよい。
【０１６３】
（３）以上においては、図２に示す（構成３）の実施例としたが、他に（構成１）、（構成２）、（構成４）、（構成５）の構成としてもよい。
【０１６４】
（４）また、ソフトウエア格納領域２０ａに格納するソフトウエア１ａは暗号化したデータを組み込むようにし、ソフトウエア１ａを生成時に復号化して生成するようにしてもよい。また、ＭＡＣアドレス格納領域２１ａとＭＡＣアドレス格納領域１１ａに格納されるＭＡＣアドレスは暗号化したデータを格納するようにし、ＭＡＣアドレス格納領域２１ａ、１１ａに格納されているＭＡＣアドレスを読み出す際には、復号化して読み出すようにしてもよい。
【０１６５】
このようにすれば、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【０１６６】
（５）また、第１の実施の形態においては、コンピュータに固有の指標としてＭＡＣアドレスを使用したが、コンピュータに固有の指標であればどのようなものでもよい。
【０１６７】
（６）また、第１の実施の形態においては、動作又はインストール対象をコンピュータとしたが、電子機器であればどのようなものでもよい。
【０１６８】
【実施例２】
【０１６９】
本発明の１電子機器唯一動作許可インストーラ（以下においては、インストーラと略称する）及び１電子機器唯一動作許可インストール方法（以下においては、インストール方法と略称する）、１電子機器唯一動作許可インストーラ生成装置及び方法（以下においては、インストーラ生成装置及び方法と略称する）、並びに１電子機器唯一動作許可インストーラ管理装置及び方法（以下においては、インストーラ管理装置及び方法と略称する）の１実施の形態としての第２の実施の形態は図２に示す（構成３）の被生成ソフトウエア生成ソフトウエア２に、図２に示す（構成２）のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ実施例であり、また、インストーラ生成装置もその実施例に対応する実施例である。尚、以下では、電子機器の一例としてコンピュータを使用し、電子機器に固有の指標としてＭＡＣアドレスを使用している。
【０１７０】
本発明のインストーラ及びインストール方法、インストーラ生成装置及び方法、並びにインストーラ管理装置及び方法の１実施の形態としての第２の実施の形態を図５を用いて説明する。
【０１７１】
本発明の第２の実施の形態は、上述した第１の実施の形態にインストーラの生成起動を行うインストーラ管理装置を備えるようにした。
【０１７２】
本発明のインストーラ、インストーラ生成装置、及びインストーラ管理装置の１実施の形態としての第２の実施の形態の構成について説明する。
【０１７３】
本発明の第２の実施の形態のインストーラは、ソフトウエア１ｂと、ソフトウエア１ｂを格納するメモリ領域であるソフトウエア格納領域２０ｂとＭＡＣアドレスを格納するメモリ領域であるＭＡＣアドレス格納領域２１ｂを確保したインストーラ２ｂと、インストーラ２ｂを確保したインストーラ管理装置３ｂとから構成されている。
【０１７４】
以下に、本発明の第２の実施の形態の各構成について詳細に説明する。
【０１７５】
ソフトウエア１ｂは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部１９ｂと、ＭＡＣアドレスを格納するメモリ領域であるＭＡＣアドレス格納領域１１ｂと、初回起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域１１ｂに格納されているＭＡＣアドレスとを比較し、一致した場合にのみ起動を継続するＭＡＣアドレス比較判定部１３ｂとが組み込まれた構成となっている。
【０１７６】
インストーラ２ｂは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部２９ｂと、ソフトウエア１ｂを格納するメモリ領域であるソフトウエア格納領域２０ｂと、初回起動時に取得するＭＡＣアドレスを格納するメモリ領域であるＭＡＣアドレス格納領域２１ｂと、起動時に取得するＭＡＣアドレスとＭＡＣアドレス格納領域２１ｂに格納されているＭＡＣアドレスとを比較し、一致した場合にのみ起動を継続するＭＡＣアドレス比較判定部２３ｂと、ソフトウエア格納領域２０ｂに格納されているソフトウエア１ｂを生成するソフトウエア生成部２４ｂと、起動時、インストーラ管理装置３ｂを削除する起動時削除部２７ｂとから構成されている。
【０１７７】
インストーラ管理装置３ｂは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部３９ｂと、インストーラ２ｂを格納するメモリ領域であるインストーラ格納領域３０ｂと、起動時に取得したＭＡＣアドレスをインストーラ格納領域３０ｂに格納されているインストーラ２ｂに組み込むＭＡＣアドレス組込部３２ｂと、ＭＡＣアドレスが組み込まれたインストーラ２ｂを生成するインストーラ生成部３４ｂと、インストーラ生成部３４ｂにより生成されたインストーラ２ｂを起動するインストーラ起動部３７ｂとから構成されている。尚、このインストーラ管理装置３ｂまでを纏めてインストーラと考えてよい。
【０１７８】
また、本発明の第２の実施の形態のインストーラ生成装置５ｂは、インストーラ２ｂと、インストーラ管理装置３ｂと、ソフトウエア１ｂをインストーラ２ｂに格納する為のソフトウエア組込器１００ｂと、インストーラ２ｂをインストーラ管理装置３ｂに格納する為のインストーラ組込器１１０ｂとから構成されている。尚、ソフトウエア１ｂ中のＭＡＣアドレス比較判定部１３ｂとＭＡＣアドレス格納領域１１ｂとＭＡＣアドレス取得部１９ｂまでを含んでインストーラ生成装置としてもよい。この場合、ソフトウエア１ｂをインストーラ２ｂのソフトウエア格納領域２０ｂに格納する際、ＭＡＣアドレス比較判定部１３ｂとＭＡＣアドレス格納領域１１ｂとＭＡＣアドレス取得部１９ｂをソフトウエア１ｂにバイナリの状態で組み込む構成となる。
【０１７９】
次に、本発明の第２の実施の形態のインストーラ生成装置の動作及びインストーラ生成方法について説明する。
【０１８０】
本発明の第２の実施の形態のインストーラ生成装置５ｂは、提供されたソフトウエア１ｂをソフトウエア組込器１００ｂがインストーラ２ｂのソフトウエア格納領域２０ｂに格納し、インストーラ２ｂを生成する。生成されたインストーラ２ｂは、インストーラ管理装置３ｂのインストーラ格納領域３０ｂにインストーラ組込器１１０ｂにより格納される。
【０１８１】
次に、本発明の第２の実施の形態のインストーラの動作及びインストール方法、並びにインストーラ管理装置の動作及びインストーラ管理方法について説明する。
【０１８２】
本発明の第２の実施の形態のインストーラは、インストーラ管理装置３ｂが起動後、ＭＡＣアドレス取得部３９ｂによりＭＡＣアドレスを取得し、ＭＡＣアドレス組込部３２ｂにより、ＭＡＣアドレスが、ソフトウエア１ｂのＭＡＣアドレス格納領域１１ｂとインストーラ２ｂのＭＡＣアドレス格納領域２１ｂに格納される。そして、インストーラ生成部３４ｂによりインストーラ２ｂが生成され、インストーラ起動部３７ｂによりインストーラ２ｂが起動される。インストーラ２ｂは、起動後、起動時削除部２７ｂにより、インストーラ管理装置３ｂを削除する。また、インストーラ２ｂは、起動時、ＭＡＣアドレス比較判定部１３ｂにより、取得したＭＡＣアドレスとＭＡＣアドレス格納領域２１ｂに格納してあるＭＡＣアドレスとを比較し、一致した場合のみ起動を継続し、一致しなければ終了する。
【０１８３】
この為、インストール時のコンピュータ以外では、インストーラ２ｂの起動が行えなくすることができる。
【０１８４】
また、ソフトウエア１ｂも起動時、ＭＡＣアドレス取得部２９ｂによりＭＡＣアドレスを取得し、ＭＡＣアドレス比較判定部２３ｂにより、取得したＭＡＣアドレスと、ＭＡＣアドレス格納領域２１ｂに格納してあるＭＡＣアドレスと比較し、一致した場合にのみ起動を継続し、一致しなければ終了する。
【０１８５】
この為、インストール時のコンピュータ以外では、ソフトウエア１ｂの起動が行えなくすることができる。
【０１８６】
以上のように、本発明の第２の実施の形態のインストーラ及びインストール方法、インストーラ管理装置及び方法、並びにインストーラ生成装置及び方法によれば、生成されたインストーラ及びソフトウエアにＭＡＣアドレスが組み込まれており、起動時に取得したＭＡＣアドレスと格納されているＭＡＣアドレスとが一致する場合にのみ起動を継続する為、インストール時のコンピュータ以外のコンピュータでは、インストールが行えず、１台のコンピュータ以外ではインストールが行えなくすることができる。また、生成したソフトウエアにおいても生成時にＭＡＣアドレスが組み込まれており、起動時に取得したＭＡＣアドレスと格納されているＭＡＣアドレスとが一致する場合にのみ起動を継続する為、生成時のコンピュータ以外では使用ができなくすることができる。
【０１８７】
尚、上記した本発明の第２の実施の形態のインストーラ及びインストール方法、インストーラ管理装置及び方法、並びにインストーラ生成装置及び方法において、以下の（１）から（６）に箇条書きにて記すようにしてもよい。
【０１８８】
（１）インストーラは、インストーラ管理装置３ｂまでを含めてインストーラとしてもよいし、しなくてもよい。
【０１８９】
（２）また、ソフトウエア格納領域２０ｂ及びインストーラ格納領域３０ｂに格納するデータを暗号化して格納するようにし、インストーラ２ｂ及び、ソフトウエア１ｂを生成する際に復号化して生成するようにしてもよい。また、ＭＡＣアドレス格納領域１１ｂ及びＭＡＣアドレス格納領域２１ｂに格納するＭＡＣアドレスを暗号化したデータを組み込むようにし、読み出す場合、復号化するようにしてもよい。
【０１９０】
このようにすれば、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【０１９１】
（３）また、インストーラ管理装置３ｂに、ＭＡＣアドレス格納領域とＭＡＣアドレス比較判定部とＭＡＣアドレス自身書込部を設け、初回起動時にＭＡＣアドレスをインストーラ管理装置３ｂ自身の実行体のＭＡＣアドレス格納領域にバイナリの状態で組み込み、起動時、取得したＭＡＣアドレスとＭＡＣアドレス格納領域に格納されたＭＡＣアドレスとが一致するかどうかを判定し、一致した場合にのみ起動するようにしてもよい。この場合、インストーラ２ｂの起動時にインストーラ管理装置３を削除せずに、インストーラ２ｂの終了後、インストーラ管理装置３ｂがインストーラ２ｂを削除する終了時削除部を設けるようにする。
【０１９２】
ここで（２）及び(３)の構成とすると、保存されているインストーラ管理装置３ｂに格納されているインストーラ２ｂ及びインストーラ２ｂに格納されているソフトウエア１ｂが暗号化された状態となり、逆アセンブル等によるプログラム解析等がさらに困難となり、セキュリティ機能がさらに高まる。
【０１９３】
（４）また、インストーラ生成装置５ｂは、提供されたソフトウエアに対して、ソフトウエア１ｂに自動的にＭＡＣアドレス格納領域１１ｂとＭＡＣアドレス比較判定部１３ｂとＭＡＣアドレス取得部１９ｂをバイナリの状態で組み込むような構成としてもよい（この組込方法は、図９に示す本発明の実施の形態の機械語コード組み込み装置及び方法と同様である。）。この場合、インストーラ生成装置５ｂは、ＭＡＣアドレス格納領域１１ｂとＭＡＣアドレス比較判定部１３ｂとＭＡＣアドレス取得部１９ｂをも含む構成となる。
【０１９４】
（５）また、以上においては、第２の実施の形態は図２に示す（構成３）の被生成ソフトウエア生成ソフトウエア２に、図２に示す（構成２）のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ実施例であるが、図２に示す（構成１）から（構成５）の其々の被生成ソフトウエア生成ソフトウエア２において、被生成ソフトウエア及び／又は被生成ソフトウエア生成ソフトウエア２に（構成１）から（構成５）の其々のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ構成としてもよく、また、インストーラ生成装置５ｂもその構成に対応する構成としてもよい。
【０１９５】
また、（５）の場合に、格納するソフトウエア及び／又はＭＡＣアドレスを暗号化して格納するようにし、読み出す場合、復号化するようにしてもよい。
【０１９６】
このようにすれば、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【０１９７】
（６）また、以上の第２の実施の形態においては、コンピュータに固有の指標としてＭＡＣアドレスを使用したが、コンピュータに固有の指標であればどのようなものでもよい。
【０１９８】
（７）また、以上の第２の実施の形態においては、動作又はインストール対象をコンピュータとしたが、電子機器であればどのようなものでもよい。
【０１９９】
【実施例３】
【０２００】
本発明の１電子機器唯一動作許可インストーラ（以下においては、インストーラと略称する）及び１電子機器唯一動作許可インストール方法（以下においては、インストール方法と略称する）、１電子機器唯一動作許可インストーラ管理装置及び方法（以下においては、インストーラ管理装置及び方法と略称する）、１電子機器唯一動作許可ソフトウエア管理装置及び方法（以下においては、ソフトウエア管理装置及び方法と略称する）、並びに１電子機器唯一動作許可インストーラ生成装置及び方法（以下においては、インストーラ生成装置及び方法と略称する）の１実施の形態としての第３の実施の形態は図２に示す（構成３）の被生成ソフトウエア生成ソフトウエア２の被生成ソフトウエア１に、図２に示す（構成３）のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ実施例であり、また、インストーラ生成装置もその実施例に対応した実施例である。
【０２０１】
本発明のインストーラ及びインストール方法、インストーラ管理装置及び方法、ソフトウエア管理装置及び方法、並びにインストーラ生成装置及び方法の１実施の形態としての第３の実施の形態を図６を用いて説明する。
【０２０２】
本発明の第３の実施の形態のインストーラ及びインストール方法、インストーラ管理装置及び方法、ソフトウエア管理装置及び方法、並びにインストーラ生成装置及び方法は、第１の実施の形態に、さらに、ソフトウエア管理装置４ｃが追加され、ソフトウエア１ｃがソフトウエア管理装置４ｃに組み込まれ、ソフトウエア管理装置４ｃがインストーラ２ｃにインストーラソフトウエア管理装置組込器１２０ｃにより組み込まれた構成となっており、ソフトウエア管理装置４ｃが生成し、起動したソフトウエア１ｃは、その終了を待って削除される構成となっている。尚、以下では、電子機器の一例としてコンピュータを使用し、電子機器に固有の指標としてＭＡＣアドレスを使用している。
【０２０３】
本発明のインストーラ及びインストーラ管理装置の１実施の形態としての第３の実施の形態の構成について以下に説明する。
【０２０４】
本発明のインストーラ２ｃは、ソフトウエア１を格納するソフトウエア管理装置４ｃと、ソフトウエア管理装置４ｃを格納するインストーラ２ｃとから大略構成されている。
【０２０５】
以下に、各構成の詳細について説明する。
【０２０６】
ソフトウエア１ｃは、第１の実施の形態と同様に、ＭＡＣアドレスを取得するＭＡＣアドレス取得部１９ｃと、ＭＡＣアドレスを格納する為のメモリ領域であるＭＡＣアドレス格納領域１１ｃと、起動時に取得するＭＡＣアドレスとＭＡＣアドレス格納領域１１ｃに格納されているＭＡＣアドレスとを比較し、起動を継続するかどうかの判定を行い、一致した場合にのみ起動を継続するＭＡＣアドレス比較判定部１３ｃとが組み込まれた構成となっている。
【０２０７】
また、ソフトウエア管理装置４ｃは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部４９ｃと、ソフトウエア１ｃを格納する為のメモリ領域であるソフトウエア格納領域４０ｃと、ＭＡＣアドレスを格納する為のメモリ領域であるＭＡＣアドレス格納領域４１ｃと、起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域４１ｃに格納しているＭＡＣアドレスとを比較し、一致した場合にのみ起動を継続するＭＡＣアドレス比較判定部４３ｃと、ソフトウエア格納領域４０ｃに格納されているソフトウエア１ｃを生成するソフトウエア生成部４４ｃと、生成されたソフトウエア１ｃを起動するソフトウエア起動部４７ｃとソフトウエア１ｃ起動後、終了を待ってソフトウエア１ｃを削除する終了時削除部４８ｃとから構成されている。
【０２０８】
また、インストーラ２ｃは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部２９ｃと、ソフトウエア管理装置４ｃを格納する為のソフトウエア管理装置格納領域２０ｃと、ＭＡＣアドレスを格納するＭＡＣアドレス格納領域２１ｃと、初回起動時に取得したＭＡＣアドレスを自身の実行体のＭＡＣアドレス格納領域２１ｃにバイナリの状態で書き込むＭＡＣアドレス自身書込部２６ｃと、起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域２１ｃに格納されているＭＡＣアドレスとを比較し、一致した場合にのみ起動を継続し、一致しなければインストーラ２ｃを終了させるＭＡＣアドレス比較判定部２３ｃと、ソフトウエア管理装置格納領域２０ｃに格納されているソフトウエア管理装置４ｃを生成するソフトウエア管理装置生成部２４ｃとから構成されている。
【０２０９】
本発明の第３の実施の形態のインストーラ生成装置の構成について以下に説明する。
【０２１０】
本発明の第３の実施の形態のインストーラ生成装置５ｃは、ソフトウエア管理装置４ｃと、インストーラ２ｃと、ソフトウエア１ｃをソフトウエア管理装置４ｃに組み込む為のソフトウエア組込器１００ｃと、ソフトウエア管理装置４ｃをインストーラ２ｃに組み込む為のソフトウエア管理装置組込器１２０ｃとから構成されている。尚、ソフトウエア１ｃのＭＡＣアドレス比較判定部１３ｃとＭＡＣアドレス格納領域１１ｃとＭＡＣアドレス取得部１９ｃを含んでインストーラ生成装置５ｃとしてもよい。この場合、インストーラ生成装置５ｃは、ソフトウエア１ｃをソフトウエア管理装置４ｃのソフトウエア格納領域４０ｃに組み込む際に、ソフトウエア１ｃの実行体にＭＡＣアドレス比較判定部１３ｃとＭＡＣアドレス格納領域１１ｃとＭＡＣアドレス取得部１９ｃを自動的にバイナリの状態で組み込む構成となる（この組込方法は、図９に示す本発明の実施の形態の機械語コード組み込み装置及び方法と同様である。）。
【０２１１】
次に、本発明の第３の実施の形態のインストーラ生成装置の動作及びインストーラ生成方法について説明する。
【０２１２】
提供されたソフトウエア１ｃがソフトウエア組込器１００ｃによりソフトウエア管理装置４ｃに格納される。ソフトウエア管理装置４ｃは、ソフトウエア管理装置組込器１２０ｃによりインストーラ２ｃに組み込まれる。
【０２１３】
次に、本発明の第３の実施の形態のインストーラの動作及びインストール方法、並びにインストーラ管理装置及び方法について説明する。
【０２１４】
インストーラ２ｃが起動されると、初回起動時、ＭＡＣアドレス取得部２９ｃによりＭＡＣアドレスが取得され、ＭＡＣアドレス自身書込部２６ｃにより、インストーラ２ｃの自身の実行体のＭＡＣアドレス格納領域２１ｃにバイナリの状態で書き込まれる。そして、ＭＡＣアドレス比較判定部２３ｃにより、ＭＡＣアドレス格納領域２１ｃに格納されているＭＡＣアドレスと起動時取得したＭＡＣアドレスが一致するかどうかが判断され、ＭＡＣアドレスが一致した場合にのみ動作を継続し、一致しない場合、終了する。そして、ソフトウエア格納領域２０ｃに格納されているソフトウエア管理装置４ｃの内部のＭＡＣアドレス格納領域１１ｃ，４１ｃに、ＭＡＣアドレス組込部２２ｃにより、ＭＡＣアドレスが組み込まれる。ＭＡＣアドレスが組み込まれたソフトウエア管理装置４ｃは、ソフトウエア管理装置生成部２４ｃにより生成される。
【０２１５】
この為、最初にインストールした１台のコンピュータ以外では、インストール２ｃを動作させることができない為、インストールした１台のコンピュータ以外では、インストールを行うことをできなくすることができる。
【０２１６】
ソフトウエア管理装置４ｃが起動すると、ＭＡＣアドレス比較判定部４３ｃにより、ＭＡＣアドレス取得部４９ｃにより取得したＭＡＣアドレスとＭＡＣアドレス格納領域４１ｃに格納されているＭＡＣアドレスとが比較され、一致した場合、起動動作が継続され、不一致の場合、ソフトウエア管理装置４ｃを終了する。一致した場合、ソフトウエア格納領域４０ｃに格納されているソフトウエア１ｃがソフトウエア生成部４４ｃにより生成され、ソフトウエア起動部４７ｃによりソフトウエア１ｃが起動される。
【０２１７】
ソフトウエア１ｃは、起動すると、ＭＡＣアドレス比較判定部１３ｃにより、ＭＡＣアドレス取得部１９ｃにより取得したＭＡＣアドレスと、ＭＡＣアドレス格納領域１１ｃに格納されているＭＡＣアドレスとが比較され、一致した場合にのみ、ソフトウエア１ｃは動作を継続し、不一致の場合、ソフトウエア１ｃは終了する。
【０２１８】
この為、最初にインストールした１台のコンピュータ以外では、ソフトウエア１ｃを動作させることができない為、インストールした１台のコンピュータ以外では、ソフトウエア１ｃを起動させることができなくできる。
【０２１９】
ソフトウエア管理装置４ｃは、終了時削除部４８ｃにより、ソフトウエア１ｃの終了を待ち、終了後、ソフトウエア１ｃを削除する。
【０２２０】
この為、ソフトウエア１ｃは、動作時のみ生成され、保存状態では、ソフトウエア管理装置４ｃに組み込まれている為、逆アセンブル等のプログラム解析等が困難となり、セキュリティ機能が高まる。
【０２２１】
以上のように、本発明のインストーラ及びインストール方法、インストーラ管理装置及び方法、ソフトウエア管理装置及び方法、並びにインストーラ生成装置及び方法の１実施の形態としての第３の実施の形態によれば、インストール時にＭＡＣアドレスを組み込む為、インストールしたコンピュータ以外のコンピュータでは、インストール及びソフトウエアの起動が行えなくすることができる。また、ソフトウエア１ｃは保存状態ではソフトウエア管理装置４ｃに格納されており、ソフトウエア管理装置４ｃの起動によるソフトウエア１ｃの生成起動後、終了を待ってソフトウエア１ｃを削除する為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【０２２２】
尚、本発明のインストーラ、インストーラ生成装置の１実施の形態としての第３の実施の形態において、以下の（１）〜（７）に箇条書きにて示すようにしてもよい。
【０２２３】
（１）ソフトウエアは、ソフトウエア管理装置４ｃまでを含めてソフトウエアとしてもよいし、しなくてもよい。
【０２２４】
（２）また、第３の実施の形態においては、ＭＡＣアドレスの組み込みは、インストーラ２ｃのＭＡＣアドレス組込部２２ｃにより、一括してソフトウエア管理装置４ｃ、ソフトウエア１ｃのＭＡＣアドレス格納領域４１ｃ、１１ｃに組み込むようにしたが、ソフトウエア管理装置４ｃ、及び／又はソフトウエア１ｃの其々の内部にＭＡＣアドレス自身組込部を設け、ソフトウエア管理装置４ｃ、及び／又はソフトウエア１ｃの初回起動時にＭＡＣアドレスを自身の実行体のＭＡＣアドレス格納領域４１ｃ、及び／又は１１ｃにバイナリの状態で書き込むようにしてもよい。ＭＡＣアドレス自身書込部を設けるソフトウエアと設けないソフトウエアとを含んだ構成とした場合は、ＭＡＣアドレス自身書込部を設けないソフトウエアを生成するソフトウエア側に、ＭＡＣアドレス自身書込部を設けないソフトウエアのＭＡＣアドレス格納領域にＭＡＣアドレスを組み込むＭＡＣアドレス組込部を設ける構成となる。
【０２２５】
（３）また、第３の実施の形態において、提供されたソフトウエア１ｃに対して、ソフトウエア１ｃに自動的にＭＡＣアドレス格納領域１１ｃとＭＡＣアドレス比較判定部１３ｃとＭＡＣアドレス取得部１９ｃを組み込むような構成としてもよい。この場合、ソフトウエア１ｃをソフトウエア管理装置４ｃのソフトウエア格納領域４０ｃに格納する際に、自動的にＭＡＣアドレス格納領域１１ｃとＭＡＣアドレス比較判定部１３ｃとＭＡＣアドレス取得部１９ｃをソフトウエア１ｃの実行体にバイナリの状態で組み込むようにする（この組込方法は、図９に示す本発明の実施の形態の機械語コード組み込み装置及び方法と同様である。）。
【０２２６】
（４）また、以上においては、第３の実施の形態は図２に示す（構成３）の被生成ソフトウエア１に、図２に示す（構成３）のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ実施例であるが、図２に示す（構成１）から（構成５）の其々の被生成ソフトウエア生成ソフトウエア２において、被生成ソフトウエア及び／又は被生成ソフトウエア生成ソフトウエア２に（構成１）から（構成５）の其々のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ構成としてもよく、また、インストーラ生成装置５ｃもその構成に対応する構成としてもよい。
【０２２７】
（５）また、（４）の場合に、格納するソフトウエア及び／又はＭＡＣアドレスを暗号化して格納するようにし、読み出す場合、復号化するようにしてもよい。
【０２２８】
このようにすれば、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【０２２９】
（６）また、第３の実施の形態においては、コンピュータに固有の指標としてＭＡＣアドレスを使用したが、コンピュータに固有の指標であればどのようなものでもよい。
【０２３０】
（７）また、第３の実施の形態においては、動作又はインストール対象をコンピュータとしたが、電子機器であればどのようなものでもよい。
【０２３１】
【実施例４】
【０２３２】
本発明の１電子機器唯一動作許可インストーラ及び１電子機器唯一動作許可インストール方法（以下において、インストーラ及びインストール方法と略称する）、１電子機器唯一動作許可インストーラ管理装置及び方法（以下において、インストーラ管理装置及び方法と略称する）、１電子機器唯一動作許可ソフトウエア管理装置及び方法（以下において、ソフトウエア管理装置及び方法と略称する）、並びに１電子機器唯一動作許可インストーラ生成装置及び方法（以下において、インストーラ生成装置及び方法と略称する）の１実施の形態としての第４の実施の形態は図２に示す（構成３）の被生成ソフトウエア生成ソフトウエア２と被生成ソフトウエア生成ソフトウエア２の被生成ソフトウエア１の両方に、図２に示す（構成３）のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ実施例であり、インストーラ生成装置もその実施例に対応した実施例である。尚、以下では、電子機器の一例としてコンピュータを使用し、電子機器に固有の指標としてＭＡＣアドレスを使用している。
【０２３３】
本発明のインストーラ及びインストール方法、インストーラ管理装置及び方法、ソフトウエア管理装置及び方法、並びにインストーラ生成装置及び方法の１実施の形態としての第４の実施の形態を図７を用いて説明する。
【０２３４】
本発明の第４の実施の形態のインストーラ及びインストール方法、インストーラ管理装置及び方法、ソフトウエア管理装置及び方法、並びにインストーラ生成装置及び方法は、第１から第３の実施の形態が合わさった構成をしており、第１の実施の形態に、さらに、ソフトウエア管理装置４ｄが追加され、ソフトウエア１ｄがソフトウエア管理装置４ｄに組み込まれ、ソフトウエア管理装置４ｄがインストーラ２ｄにソフトウエア管理装置組込器１２０ｄにより組み込まれた構成となっており、ソフトウエア管理装置４ｄが生成し、起動したソフトウエア１ｄは、その終了を待って削除される構成となっている。また、さらに、インストーラ管理装置３ｄが追加され、インストーラ２ｄがインストーラ管理装置３ｄにインストーラ組込器１１０ｄにより組み込まれた構成となっており、ソフトウエア管理装置４ｄが生成し、起動したソフトウエア１ｄは、その終了を待って削除される構成となっている。
【０２３５】
本発明のインストーラ、ソフトウエア管理装置、及びインストーラ管理装置、インストーラ生成装置の１実施の形態としての第４の実施の形態の構成について以下に説明する。
【０２３６】
インストーラ２ｄは、ソフトウエア１ｄが組み込まれたソフトウエア管理装置４ｄと、ソフトウエア管理装置４ｄが組み込まれたインストーラ２ｄと、インストーラ２ｄが組み込まれたインストーラ管理装置３ｄとから大略構成されている。
【０２３７】
以下に、インストーラ２ｄの各構成について詳細に説明する
【０２３８】
ソフトウエア１ｄは、第１の実施の形態と同様に、ＭＡＣアドレスを取得するＭＡＣアドレス取得部１９ｄと、ＭＡＣアドレスを格納する為のＭＡＣアドレス格納領域１１ｄと、起動時に取得するＭＡＣアドレスとＭＡＣアドレス格納領域１１ｄに格納されているＭＡＣアドレスとを比較し、一致した場合にのみ起動を継続する判定を行うＭＡＣアドレス比較判定部１３ｄとが組み込まれている。
【０２３９】
また、ソフトウエア管理装置４ｄは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部４９ｄと、ソフトウエア１ｄを格納する為のソフトウエア格納領域４０ｄと、ＭＡＣアドレスを格納するＭＡＣアドレス格納領域４１ｄと、起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域４１ｄに格納しているＭＡＣアドレスとを比較するＭＡＣアドレス比較判定部４３ｄと、ソフトウエア格納領域４０ｄに格納されているソフトウエア１ｄを生成するソフトウエア生成部４４ｄと、生成されたソフトウエア１ｄを起動するソフトウエア起動部４７ｄと、ソフトウエア１ｄの終了を待ってソフトウエア１ｄを削除する終了時削除部４８ｄとから構成されている。
【０２４０】
また、インストーラ２ｄは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部２９ｄと、ソフトウエア管理装置４ｄを格納する為のソフトウエア管理装置格納領域２０ｄと、ＭＡＣアドレスを格納するＭＡＣアドレス格納領域２１ｄと、起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域２１ｄに格納されているＭＡＣアドレスとを比較し、一致した場合にのみ起動を継続し、一致しなければインストーラ２ｄを終了させるＭＡＣアドレス比較判断部２３ｄと、ソフトウエア管理装置格納領域２０ｄに格納されているソフトウエア管理装置４ｄを生成するソフトウエア管理装置生成部２４ｄとから構成されている。
【０２４１】
また、インストーラ管理装置３ｄは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部３９ｄと、インストーラ２ｄを格納する為のインストーラ格納領域３０ｄと、ＭＡＣアドレスを格納する為のＭＡＣアドレス格納領域３１ｄと、初回起動時取得したＭＡＣアドレスを自身の実行体のＭＡＣアドレス格納領域３１ｄにバイナリの状態で書き込むＭＡＣアドレス自身書込部３６ｄと、初回起動時取得したＭＡＣアドレスをインストーラ格納領域３０ｄに格納されているインストーラ２ｄ、ソフトウエア管理装置４ｄ、ソフトウエア１ｄに格納されているＭＡＣアドレス格納領域２１ｄ、ＭＡＣアドレス格納領域４１ｄ、ＭＡＣアドレス格納領域１１ｄにＭＡＣアドレスを組み込むＭＡＣアドレス組込部３２ｄと、インストーラ２ｄを生成するインストーラ生成部３４ｄと、生成されたインストーラ２ｄを起動するインストーラ起動部３７ｄと、インストーラ２ｄの終了を待ってインストーラ２ｄを削除する終了時削除部３８ｄとから構成されている。
【０２４２】
本発明の第４の実施の形態のインストーラ生成装置の構成について以下に説明する。
【０２４３】
本発明の第４の実施の形態のインストーラ生成装置５ｄは、インストーラ２ｄと、インストーラ管理装置３ｄと、ソフトウエア１ｄをソフトウエア管理装置４ｄに組み込む為のソフトウエア組込器１００ｄと、ソフトウエア管理装置４ｄをインストーラ２ｄに組み込む為のソフトウエア管理装置組込器１２０ｄと、インストーラ２ｄをインストーラ管理装置３ｄに組み込む為のインストーラ組込器１１０ｄとから構成されている。尚、ソフトウエア１ｄのＭＡＣアドレス比較判定部１３ｄとＭＡＣアドレス格納領域１１ｄとＭＡＣアドレス取得部１９ｄを含んでインストーラ生成装置５ｄとしてもよい。この場合、ソフトウエア１ｄをソフトウエア管理装置４ｄのソフトウエア格納領域４０ｄに格納する際に、ＭＡＣアドレス比較判定部１３ｄとＭＡＣアドレス格納領域１１ｄとＭＡＣアドレス取得部１９ｄを自動的にソフトウエア管理装置４ｄにバイナリの状態で組み込む構成となる（この組込方法は、図９に示す本発明の実施の形態の機械語コード組み込み装置及び方法と同様である。）。
【０２４４】
次に、本発明の第４の実施の形態のインストーラ生成装置の動作及びインストーラ生成方法について説明する。
【０２４５】
提供されたソフトウエア１ｄがソフトウエア組込器１００ｄによりソフトウエア管理装置４ｄのソフトウエア格納領域４０ｄに格納される。ソフトウエア管理装置４ｄは、ソフトウエア管理装置組込器１２０ｄによりインストーラ２ｄのソフトウエア管理装置格納領域２０ｄに組み込まれる。インストーラ２ｄは、インストーラ組込器１１０ｄによりインストーラ管理装置３ｄのインストーラ格納領域３０ｄに格納される。
【０２４６】
次に、本発明の第４の実施の形態のインストーラの動作及びインストール方法、並びにインストーラ管理装置及び方法について説明する。
【０２４７】
インストーラ管理装置３ｄが起動されると、初回起動時、ＭＡＣアドレスが取得され、ＭＡＣアドレス自身書込部３６ｄにより、自身の実行体のＭＡＣアドレス格納領域３１ｄにバイナリの状態で書き込まれる。そして、ＭＡＣアドレス比較判定部３３ｄにより、ＭＡＣアドレス格納領域３１ｄに格納されているＭＡＣアドレスと起動時に取得したＭＡＣアドレスが一致するかどうかが判断され、ＭＡＣアドレスが一致した場合、動作を継続し、一致しない場合、終了する。そして、インストーラ格納領域３０ｄに格納されているインストーラ２ｄの内部のＭＡＣアドレス格納領域１１ｄ，４１ｄ，２１ｄに、ＭＡＣアドレス組込部３２ｄにより、ＭＡＣアドレスが組み込まれる。ＭＡＣアドレスが組み込まれたインストーラ２ｄは、インストーラ生成部３４ｄにより生成される。生成されたインストーラ２ｄは、インストーラ起動部３７ｄにより起動される。
【０２４８】
起動したインストーラ２ｄは、ＭＡＣアドレス比較判定部２３ｄにより、ＭＡＣアドレス取得部２９ｄにより取得したＭＡＣアドレスと、ＭＡＣアドレス格納領域２１ｄに格納されているＭＡＣアドレスとを比較し、一致した場合にのみ起動を継続し、一致しなければ、インストールを終了する。
【０２４９】
この為、最初にインストールした１台のコンピュータ以外では、インストーラ２ｄを動作させることができない為、インストールした１台のコンピュータ以外では、インストールを行うことができなくできる。
【０２５０】
ソフトウエア管理装置格納領域２０ｄに格納されているソフトウエア管理装置４ｄは、ソフトウエア管理装置生成部２４ｄにより生成される。インストーラ管理装置３ｄの終了時削除部３８ｄは、インストーラ２ｄの終了を待ち、終了後、インストーラ２ｄを削除する。
【０２５１】
この為、インストーラ２ｄは、動作時のみ生成され、保存状態では、ソフトウエア管理装置組込器１２０ｄに組み込まれている為、逆アセンブル等のプログラム解析等が困難となり、セキュリティ機能が高まる。
【０２５２】
ソフトウエア管理装置４ｄが起動すると、ＭＡＣアドレス取得部４９ｄによりＭＡＣアドレスが取得され、ＭＡＣアドレス比較判定部４３ｄにより、取得されたＭＡＣアドレスとＭＡＣアドレス格納領域４１ｄに格納されているＭＡＣアドレスとが比較され、一致した場合にのみ、起動動作が継続され、不一致の場合、ソフトウエア管理装置４ｄを終了する。一致した場合、ソフトウエア格納領域４０ｄに格納されているソフトウエア１ｄは、ソフトウエア生成部４４ｄにより生成され、ソフトウエア起動部４７ｄによりソフトウエア１ｄが起動される。
【０２５３】
ソフトウエア１ｄは起動すると、ＭＡＣアドレス取得部１９ｄによりＭＡＣアドレスを取得し、ＭＡＣアドレス比較判定部１３ｄにより、取得したＭＡＣアドレスと、ＭＡＣアドレス格納領域１１ｄに格納されているＭＡＣアドレスとを比較し、一致した場合にのみ、ソフトウエア１ｄは動作を継続し、不一致の場合、ソフトウエア１ｄは終了する。
【０２５４】
この為、最初にインストールした１台のコンピュータ以外では、ソフトウエア１ｄを動作させることができない為、インストールした１台のコンピュータ以外では、ソフトウエア１ｄを起動させなくすることができる。
【０２５５】
ソフトウエア管理装置４ｄの終了時削除部４８ｄは、ソフトウエア１ｄの終了を待ち、終了後、ソフトウエア１ｄを削除する。
【０２５６】
この為、ソフトウエア１ｄは、動作時のみ生成され、保存状態では、ソフトウエア管理装置４ｄに組み込まれている為、逆アセンブル等のプログラム解析等が困難となり、セキュリティ機能が高まる。
【０２５７】
以上のように、本実施の形態のインストーラ及びインストール方法、インストーラ管理装置及び方法、ソフトウエア管理装置及び方法、並びにインストーラ生成装置及び方法の１実施の形態としての第５の実施の形態によれば、インストール時にＭＡＣアドレスを組み込む為、インストールしたコンピュータ以外のコンピュータでは、インストール及びソフトウエアの起動が行えなくすることができる。また、ソフトウエア及びインストーラが保存状態ではソフトウエア管理装置及びインストーラ管理装置に組み込まれている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【０２５８】
尚、本発明のインストーラ、インストーラ生成装置の１実施の形態としての第４の実施の形態において、以下の（１）〜（８）に箇条書きにて示すようにしてもよい。
【０２５９】
（１）インストーラは、インストーラ管理装置３ｄまでを含めてインストーラとしてもよいし、しなくてもよい。
【０２６０】
（２）また、ソフトウエアは、ソフトウエア管理装置４ｄまでを含めてソフトウエアとしてもよいし、しなくてもよい。
【０２６１】
（３）また、第４の実施の形態においては、ＭＡＣアドレスの組み込みは、インストーラ管理装置３ｄのＭＡＣアドレス組込部３２ｄにより、一括してインストーラ２ｄ、ソフトウエア管理装置４ｄ、ソフトウエア１のＭＡＣアドレス格納領域３１ｄ、２１ｄ、４１ｄ、１１ｄに組み込むようにしたが、インストーラ２ｄ、ソフトウエア管理装置４ｄ、及び／又はソフトウエア１の内部にＭＡＣアドレス自身書込部を其々設け、インストーラ２ｄ、ソフトウエア管理装置４ｄ、ソフトウエア１ｄの初回起動時にＭＡＣアドレスを自身の実行体のＭＡＣアドレス格納領域にバイナリの状態で書き込むようにしてもよい。ＭＡＣアドレス自身書込部を設けるソフトウエアと設けないソフトウエアとを含んだ構成とした場合は、ＭＡＣアドレス自身書込部を設けないソフトウエアを生成するソフトウエア側に、ＭＡＣアドレス自身書込部を設けないソフトウエアのＭＡＣアドレス格納領域にＭＡＣアドレスを組み込むＭＡＣアドレス組込部を設ける構成となる。
【０２６２】
（４）また、第４の実施の形態において、提供されたソフトウエアに対して、ソフトウエア１１ｄに自動的にＭＡＣアドレス格納領域１１ｄとＭＡＣアドレス比較判定部１３ｄとＭＡＣアドレス取得部１９ｄを組み込むような構成としてもよい。この場合、ソフトウエア１ｄをソフトウエア管理装置４ｄのソフトウエア格納領域４０ｄに格納する際に、ＭＡＣアドレス比較判定部１３ｄとＭＡＣアドレス格納領域１１ｄとＭＡＣアドレス取得部１９ｄを自動的にソフトウエア管理装置４ｄの実行体にバイナリの状態で組み込む構成となる（この組込方法は、図９に示す本発明の実施の形態の機械語コード組み込み装置及び方法と同様である。）。
【０２６３】
（５）また、第４の実施の形態においては、図２に示す（構成３）の被生成ソフトウエア生成ソフトウエア２と被生成ソフトウエア生成ソフトウエア２の被生成ソフトウエア１の両方に、図２に示す（構成３）のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ実施例とし、インストーラ生成装置もその実施例に対応した実施例としたが、図２に示す（構成１）から（構成５）の其々の被生成ソフトウエア生成ソフトウエア２において、被生成ソフトウエア及び／又は被生成ソフトウエア生成ソフトウエア２に（構成１）から（構成５）の其々のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ構成としてもよく、また、インストーラ生成装置５ｄもその構成に対応する構成としてもよい。
【０２６４】
（６）また、（５）の場合に、格納するソフトウエア及び／又はＭＡＣアドレスを暗号化して格納するようにし、読み出す場合、復号化するようにしてもよい。
【０２６５】
このようにすれば、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【０２６６】
（７）また、第４の実施の形態においては、コンピュータに固有の指標としてＭＡＣアドレスを使用したが、コンピュータに固有の指標であればどのようなものでもよい。
【０２６７】
（８）また、第４の実施の形態においては、動作又はインストール対象をコンピュータとしたが、電子機器であればどのようなものでもよい。
【０２６８】
【実施例５】
【０２６９】
本発明の１電子機器唯一動作許可インストーラ及び１電子機器唯一動作許可インストール方法（以下においては、インストーラ及びインストール方法と略称する）、１電子機器唯一動作許可インストーラ管理装置及び方法（以下においては、インストーラ管理装置及び方法と略称する）、１電子機器唯一動作許可ソフトウエア管理装置及び方法（以下においては、ソフトウエア管理装置及び方法と略称する）、並びに１電子機器唯一動作許可インストーラ生成装置及び方法（以下においては、インストーラ生成装置及び方法と略称する）の１実施の形態としての第５の実施の形態は図２に示す（構成３）の被生成ソフトウエア生成ソフトウエア２と被生成ソフトウエア生成ソフトウエア２の被生成ソフトウエア１の両方に、図２に示す（構成３）のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込み、組み込んだソフトウエア及びＭＡＣアドレスが暗号化されている実施例であり、インストーラ生成装置もそれに対応した構成となっている実施例である。尚、以下では、電子機器の一例としてコンピュータを使用し、電子機器に固有の指標としてＭＡＣアドレスを使用している。
【０２７０】
本発明のインストーラ及びインストール方法、インストーラ管理装置及び方法、ソフトウエア管理装置及び方法、並びにインストーラ生成装置及び方法の１実施の形態としての第５の実施の形態を図８を用いて説明する。
【０２７１】
本発明の第５の実施の形態のインストーラ及びインストール方法、インストーラ管理装置及び方法、ソフトウエア管理装置及び方法、並びにインストーラ生成装置及び方法は、第１の実施の形態に、さらに、ソフトウエア管理装置４ｅ及びインストーラ管理装置３ｅが追加され、ソフトウエア１ｅがソフトウエア管理装置４ｅに組み込まれ、ソフトウエア管理装置４ｅがインストーラ２ｅにソフトウエア管理装置組込器１２０ｅにより組み込まれた構成となっており、インストーラ２eがインストーラ管理装置３ｅに組み込まれた構成となっており、インストーラ管理装置３ｅが生成し、起動したインストーラ２ｅは、その終了を待って削除される構成となっており、また、ソフトウエア管理装置４ｅが生成し、起動したソフトウエア１ｅは、その終了を待って削除される構成となっている。また、ソフトウエア１ｅ、ソフトウエア管理装置４ｅ、インストーラ２ｅは暗号化された状態で格納されており、生成時又は読み出し時にそれぞれ復号化されて生成又は読み出される。
【０２７２】
本発明のインストーラ及びインストーラ管理装置の１実施の形態としての第５の実施の形態の構成について以下に説明する。
【０２７３】
ソフトウエア１ｅは、第１の実施の形態と同様に、ＭＡＣアドレスを取得するＭＡＣアドレス取得部１９ｅと、ＭＡＣアドレスを格納する為のＭＡＣアドレス格納領域１１ｅと、起動時に取得するＭＡＣアドレスとＭＡＣアドレス格納領域１１ｅに格納されているＭＡＣアドレスとを比較し、起動を継続するかどうかの判定を行い、一致した場合にのみ起動を継続するＭＡＣアドレス比較判定部１３ｅとが組み込まれた構成となっている。
【０２７４】
また、ソフトウエア管理装置４ｅは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部４９ｅと、暗号化されたソフトウエア１ｅを格納する為のソフトウエア格納領域４０ｅと、ＭＡＣアドレスを格納するＭＡＣアドレス格納領域４１ｅと、起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域４１ｅに格納しているＭＡＣアドレスとを比較するＭＡＣアドレス比較判定部４３ｅと、ソフトウエア格納領域４０ｅに格納されているソフトウエア１ｅを復号化するソフトウエア復号部４５ｅと、復号化されたソフトウエア１ｅを生成するソフトウエア生成部４４ｅと、生成されたソフトウエア１ｅを起動するソフトウエア起動部４７ｅとから構成されている。
【０２７５】
また、インストーラ２ｅは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部２９ｅと、ソフトウエア管理装置４ｅを格納する為のソフトウエア管理装置格納領域２０ｅと、ＭＡＣアドレスを格納するＭＡＣアドレス格納領域２１ｅと、起動時に取得したＭＡＣアドレスとＭＡＣアドレス格納領域２１ｅに格納されているＭＡＣアドレスとを比較し、一致した場合にのみ起動を継続させ、一致しなければインストーラ２ｅを終了させるＭＡＣアドレス比較判定部２３ｅと、ソフトウエア管理装置格納領域２０ｅに暗号化されて格納されているソフトウエア管理装置４ｅを復号化させるソフトウエア管理装置復号部２５ｅと、ソフトウエア管理装置４ｅを生成するソフトウエア管理装置生成部２４ｅとから構成されている。
【０２７６】
また、インストーラ管理装置３ｅは、ＭＡＣアドレスを取得するＭＡＣアドレス取得部３９ｅと、インストーラ２ｅを暗号化して格納する為のインストーラ格納領域３０ｅと、ＭＡＣアドレスを格納する為のＭＡＣアドレス格納領域３１ｅと、暗号化されているインストーラ２ｅを復号化するインストーラ復号部３５ｅと、初回起動時取得したＭＡＣアドレスを自身の実行体のＭＡＣアドレス格納領域３１ｅにバイナリの状態で組み込むＭＡＣアドレス自身書込部３６ｅと、初回起動時取得したＭＡＣアドレスをインストーラ格納領域３０ｅに格納されているインストーラ２ｅ、ソフトウエア管理装置４ｅ、ソフトウエア１ｅに格納されているＭＡＣアドレス格納領域２１ｅ、ＭＡＣアドレス格納領域４１ｅ、ＭＡＣアドレス格納領域１１ｅにＭＡＣアドレスを組み込むＭＡＣアドレス組込部３２ｅと、インストーラ２ｅを生成するインストーラ生成部３４ｅと、生成されたインストーラを起動するインストーラ起動部３７ｅとから構成されている。
【０２７７】
本発明の第５の実施の形態のインストーラ生成装置の構成について以下に説明する。
【０２７８】
本発明の第５の実施の形態のインストーラ生成装置は、インストーラ２ｅと、インストーラ管理装置３ｅと、ソフトウエア１ｅを暗号化してソフトウエア管理装置４ｅに組み込む為のソフトウエア組込器１００ｅと、ソフトウエア管理装置４ｅを暗号化してインストーラ２ｅに組み込む為のソフトウエア管理装置組込器１２０ｅと、インストーラ２ｅを暗号化してインストーラ管理装置３ｅに組み込む為のインストーラ組込器１１０ｅとから構成されている。尚、ソフトウエア１ｅのＭＡＣアドレス比較判定部１３ｅとＭＡＣアドレス格納領域１１ｅとＭＡＣアドレス取得部１９ｅとを含んでインストーラ生成装置５ｅとしてもよい。この場合、ソフトウエア１ｅをソフトウエア管理装置４ｅのソフトウエア格納領域４０ｅに格納する際に、自動的にＭＡＣアドレス比較判定部１３ｅとＭＡＣアドレス格納領域１１ｅとＭＡＣアドレス取得部１９ｅをソフトウエア１ｅの実行体にバイナリの状態で組み込む構成となる（この組込方法は、図９に示す本発明の実施の形態の機械語コード組み込み装置及び方法と同様である。）。
【０２７９】
次に、本発明の第５の実施の形態のインストーラ生成装置の動作及びインストーラ生成方法について説明する。
【０２８０】
提供されたソフトウエア１ｅがソフトウエア組込器１００ｅにより暗号化されてソフトウエア管理装置４ｅに格納される。ソフトウエア管理装置４ｅは、ソフトウエア管理装置組込器１２０ｅにより暗号化されてインストーラ２ｅに組み込まれる。インストーラ２ｅは、インストーラ組込器１１０ｅにより暗号化されてインストーラ管理装置３ｅのインストーラ格納領域３０ｅに格納される。
【０２８１】
次に、本発明の第５の実施の形態のインストーラの動作及びインストール方法、並びにインストーラ管理装置及び方法について説明する。
【０２８２】
インストーラ管理装置３ｅが起動されると、初回起動時、ＭＡＣアドレス取得部３９ｅによりＭＡＣアドレスが取得され、ＭＡＣアドレス自身書込部３６ｅにより、自身の実行体のＭＡＣアドレス格納領域３１ｅにバイナリの状態で書き込まれる。そして、ＭＡＣアドレス比較判定部３３ｅにより、ＭＡＣアドレス格納領域３１ｅに格納されているＭＡＣアドレスと起動時取得したＭＡＣアドレスが一致するかどうかが判断され、一致した場合にのみ、起動動作を継続し、一致しない場合、終了する。そして、インストーラ格納領域３０ｅに暗号化されて格納されているインストーラ２ｅが、インストーラ復号器３５ｅにより復号化される。復号化されたインストーラ２ｅの内部のＭＡＣアドレス格納領域１１ｅ，４１ｅ，２１ｅに、ＭＡＣアドレス組込部３２ｅにより、ＭＡＣアドレスが組み込まれる。ＭＡＣアドレスが組み込まれたインストーラ２ｅは、インストーラ生成部３４ｅにより生成される。生成されたインストーラ２ｅは、インストーラ起動部３７ｅにより起動される。
【０２８３】
起動したインストーラ２ｅは、ＭＡＣアドレス取得部２９ｅによりＭＡＣアドレスが取得され、ＭＡＣアドレス比較判定部２３ｅにより、取得したＭＡＣアドレスと、ＭＡＣアドレス格納領域２１ｅに格納されているＭＡＣアドレスとを比較し、一致した場合にのみ起動を継続し、一致しなければ、インストールを終了する。
【０２８４】
この為、最初にインストールした１台のコンピュータ以外では、インストーラ２ｅを動作させることができない為、インストールした１台のコンピュータ以外では、インストールを行うことができなくすることできる。
【０２８５】
ソフトウエア管理装置格納領域２０ｅに暗号化されて格納されているソフトウエア管理装置４ｅは、ソフトウエア管理装置復号部２５ｅにより、復号化され、ソフトウエア管理装置生成部２４ｅによりソフトウエア管理装置４ｅが生成される。インストーラ管理装置３ｅは、終了時削除部３８ｅにより、インストーラ２ｅの終了を待ち、終了後、インストーラ２ｅを削除する。
【０２８６】
この為、インストーラ２ｅは、動作時のみ生成され、保存状態では、ソフトウエア管理装置組込器１２０ｅに暗号化して組み込まれている為、逆アセンブル等のプログラム解析等が困難となり、セキュリティ機能が高まる。
【０２８７】
ソフトウエア管理装置４ｅが起動すると、ＭＡＣアドレス取得部４９ｅによりＭＡＣアドレスが取得され、ＭＡＣアドレス比較判定部４３ｅにより、取得したＭＡＣアドレスとＭＡＣアドレス格納領域４１ｅに格納されているＭＡＣアドレスとが比較され、一致した場合にのみ、起動動作が継続され、不一致の場合、ソフトウエア管理装置４ｅを終了する。一致した場合、ソフトウエア格納領域４０ｅに格納されているソフトウエア１ｅがソフトウエア復号部４５ｅにより復号化され、ソフトウエア生成部４４ｅによりソフトウエア１ｅが生成され、ソフトウエア起動部４７ｅによりソフトウエア１ｅが起動される。
【０２８８】
ソフトウエア１ｅは起動すると、ＭＡＣアドレス取得部１９ｅによりＭＡＣアドレスが取得され、ＭＡＣアドレス比較判定部１３ｅにより、取得したＭＡＣアドレスと、ＭＡＣアドレス格納領域１１ｅに格納されているＭＡＣアドレスとが比較され、一致した場合にのみ、ソフトウエア１ｅは起動動作を継続し、不一致の場合、ソフトウエア１ｅは終了する。
【０２８９】
この為、最初にインストールした１台のコンピュータ以外では、ソフトウエア１ｅを動作させることができない為、インストールした１台のコンピュータ以外では、ソフトウエア１ｅを起動させることができなくすることができる。
【０２９０】
ソフトウエア管理装置４ｅは、終了時削除部４８ｅにより、ソフトウエア１ｅの終了を待ち、終了後、ソフトウエア１ｅを削除する。
【０２９１】
この為、ソフトウエア１ｅは、動作時のみ生成され、保存状態では、ソフトウエア管理装置４ｅに暗号化して組み込まれている為、逆アセンブル等のプログラム解析等が困難となり、セキュリティ機能が高まる。
【０２９２】
以上のように、本実施の形態のインストーラ及びインストール方法、インストーラ管理装置及び方法、ソフトウエア管理装置及び方法、並びにインストーラ生成装置及び方法の１実施の形態としての第５の実施の形態によれば、インストール時にＭＡＣアドレスを組み込む為、インストールしたコンピュータ以外のコンピュータでは、インストール及びソフトウエアの起動を行えなくすることができる。また、ソフトウエア及びインストーラが保存状態では暗号化されている為、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【０２９３】
尚、本発明のインストーラ、インストーラ生成装置の１実施の形態としての第５の実施の形態において、以下の（１）〜（１０）に箇条書きにて示すようにしてもよい。
【０２９４】
（１）インストーラは、インストーラ管理装置３ｅまでを含めてインストーラとしてもよいし、しなくてもよい。
【０２９５】
（２）また、ソフトウエアは、ソフトウエア管理装置４ｅまでを含めてソフトウエアとしてもよいし、しなくてもよい。
【０２９６】
（３）また、第５の実施の形態においては、ＭＡＣアドレスの組み込みは、インストーラ管理装置３ｅのＭＡＣアドレス組込部３２ｅにより、一括してインストーラ２ｅ、ソフトウエア管理装置４ｅ、ソフトウエア１ｅのＭＡＣアドレス格納領域３１ｅ、２１ｅ、４１ｅ、１１ｅに組み込むようにしたが、インストーラ２ｅ、ソフトウエア管理装置４ｅ、及び／又はソフトウエア１ｅの内部にＭＡＣアドレス自身書込部を設け、インストーラ２ｅ、ソフトウエア管理装置４ｅ、及び／又はソフトウエア１ｅの初回起動時に自身の実行体のＭＡＣアドレスをバイナリの状態で書き込むようにしてもよい。ＭＡＣアドレス自身書込部を設けるソフトウエアと設けないソフトウエアとを含んだ構成とした場合は、ＭＡＣアドレス自身書込部を設けないソフトウエアを生成するソフトウエア側に、ＭＡＣアドレス自身書込部を設けないソフトウエアのＭＡＣアドレス格納領域にＭＡＣアドレスを組み込むＭＡＣアドレス組込部を設ける構成となる。
【０２９７】
（４）また、第５の実施の形態において、提供されたソフトウエアに対して、ソフトウエア１ｅに自動的にＭＡＣアドレス格納領域１１ｅとＭＡＣアドレス比較判定部１３ｅとＭＡＣアドレス取得部１９ｅを実行体にバイナリの状態で組み込むような構成としてもよい（この組込方法は、図９に示す本発明の実施の形態の機械語コード組み込み装置及び方法と同様である。）。
【０２９８】
（５）また、第５の実施の形態において、ＭＡＣアドレスを暗号化してＭＡＣアドレス格納領域３１ｅ、２１ｅ、４１ｅ、及び／又は１１ｅに組み込むような構成としてもよい。この場合、読み出す場合は、ＭＡＣアドレス復号化読出部をインストーラ管理装置３ｅ、インストーラ２ｅ、ソフトウエア管理装置４ｅ、及び／又はソフトウエア１ｅに其々設け、復号化して読み出すようにする。
【０２９９】
（６）また、第５の実施の形態において、ＭＡＣアドレスのみ暗号化するような構成としてもよく、インストーラ２ｅ、ソフトウエア管理装置４ｅ、ソフトウエア１ｅ、及び／又はＭＡＣアドレスを暗号化して格納するようにし、読み出す場合は復号化して読み出すような構成としてもよい。
【０３００】
（７）また、第５の実施の形態においては、図２に示す（構成３）の被生成ソフトウエア生成ソフトウエア２と被生成ソフトウエア生成ソフトウエア２の被生成ソフトウエア１の両方に、図２に示す（構成３）のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ実施例とし、インストーラ生成装置もその実施例に対応した実施例としたが、図２に示す（構成１）から（構成５）の其々の被生成ソフトウエア生成ソフトウエア２において、被生成ソフトウエア及び／又は被生成ソフトウエア生成ソフトウエア２に（構成１）から（構成５）の其々のパターンの１電子機器唯一動作許可ソフトウエア管理装置７を組み込んだ構成としてもよく、また、インストーラ生成装置５ｅもその構成に対応する構成としてもよい。
【０３０１】
（８）また、（７）の場合に、格納するソフトウエア及び／又はＭＡＣアドレスを暗号化して格納するようにし、読み出す場合、復号化するようにしてもよい。
【０３０２】
このようにすれば、逆アセンブル等によるプログラム解析等が困難となり、セキュリティ機能が高まる。
【０３０３】
（９）また、第５の実施の形態においては、コンピュータに固有の指標としてＭＡＣアドレスを使用したが、コンピュータに固有の指標であればどのようなものでもよい。
【０３０４】
（１０）また、第５の実施の形態においては、動作又はインストール対象をコンピュータとしたが、電子機器であればどのようなものでもよい。
【０３０５】
尚、上述した本実施例１から実施例５においては、図7に示す（構成１）から（構成５）までのパターンのインストーラと、図３に示す１電子機器唯一動作許可ソフトウエア管理装置７と、図７に示す（構成１）から（構成５）までのパターンの被生成ソフトウエア１又は被生成ソフトウエア生成ソフトウエア２を１電子機器唯一動作許可ソフトウエア管理装置７としたインストーラとする構成としてもよく、さらに、その1つ1つのソフトウエアを１電子機器唯一動作許可ソフトウエア管理装置７とする構成を無限に近い回数までの有限回である複数回まで繰り返す構成としたソフトウエアとした構成とするソフトウエアとしてもよい。また、この場合、インストーラ生成装置もその構成に対応した構成となる。
【０３０６】
尚、以上において説明した、１電子機器唯一動作許可ソフトウエア０、被生成ソフトウエア１、被生成ソフトウエア生成ソフトウエア２、ソフトウエア組込器１００、被生成ソフトウエア生成ソフトウエア生成装置５、被管理ソフトウエア６、１電子機器唯一動作許可ソフトウエア管理装置７、ソフトウエア１、インストーラ２、インストーラ生成装置５、インストーラ組込器１１０、ソフトウエア管理装置組込器１２０、ソフトウエア管理装置４、インストーラ管理装置３等の各種ソフトウエアは、電子機器又はコンピュータ若しくはパーソナルコンピュータ等に搭載されて動作するものである。また、動作する電子機器に固有の指標である固有指標は、動作する一台の電子機器に唯一（固有）の指標であればどのようなものであってもよい。また、ＭＡＣアドレスを使用する場合は、動作するコンピュータ，パーソナルコンピュータ，電子機器に、ＭＡＣアドレスを一台のコンピュータ，パーソナルコンピュータ，電子機器として識別できる状態に構成されている（例えば、ＭＡＣアドレスが割り当てられたネットワーク機器が搭載されている）一台のコンピュータ，パーソナルコンピュータ，電子機器に、搭載されて動作するものとなる。
【０３０７】
上述した、バイナリの状態での実行体への機械語コード組み込み方法を示す、機械語コードの組み込み装置及び方法である、本発明の実施の形態の機械語コード組み込み装置及び方法について、図９を用いて説明する。
【０３０８】
図９は、本発明の実施の形態の機械語コード組み込み装置及び方法を示す概念図である。
【０３０９】
以下に説明するのは、実行体のファイルフォーマットがＰＥ（Portable・Executable）ファイルフォーマットの場合のバイナリの状態での実行体への機械語コード組み込み装置及び方法である。
【０３１０】
図９（１）に示すバイナリ状態での実行体への機械語コード組み込み装置は、コードセクションのコード内にコードセクション内のプログラム開始位置にジャンプする箇所がある場合（例えば、デバッグ情報が挿入されている場合）であり、挿入したいバイナリコードには、システムコールまでしか使用していない場合（例えば、Windows（登録商標）の場合、dllの呼び出しのコードを使用せずに、使用してもシステムコールまでしか使用しない場合、コードセクションよりも前に、挿入したいバイナリコードを挿入し、実行体のバイナリファイルからコードセクション内のプログラム開始位置にジャンプするコードセクション内のプログラム開始位置が記載されている領域を検索し、検索したコードセクション内のプログラム開始位置を挿入したバイナリコードの先頭のアドレスに変更する。また、挿入したいバイナリコードがデータを使用している場合、データセクションにデータを追加し、バイナリコード内の追加したデータのアドレスを変更する。また、挿入したバイナリコードが他のデータセクションのデータを使用している場合、他のデータセクションにデータを追加し、バイナリコード内の追加した他のデータセクションのデータのアドレスを変更する。また、コードを挿入したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う。バイナリコードが大きく、コードサイズを超える場合、コードサイズよりも大きい規定サイズの大きさにコードセクションヘッダー内のコードサイズを変更し、コードセクション以外の他のセクションヘッダー内の他のセクションの開始アドレスを増加したコードサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は増加したコードサイズ分ずらす。他のセクションサイズが大きく、他のセクションサイズを超える場合、他のセクションサイズよりも大きい規定サイズの大きさに他のセクションヘッダー内の他のセクションサイズを変更し、コードセクション以降の他のセクションの開始アドレスを増加した他のセクションサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は増加したサイズ分ずらす。尚、コードセクション内のプログラム開始位置の検索は、ＰＥヘッダ、コードセクションヘッダ内の検索により行われる。
【０３１１】
図９（２）に示すバイナリ状態での実行体への機械語コード組み込み装置は、コード内にコードセクション内のプログラム開始位置にジャンプする箇所がある場合（例えば、デバッグ情報が挿入されている場合）であり、実行体ではなく、関数群が組み込まれているファイル（例えば、Windows（登録商標）の場合、dll）に組み込まれている関数を使用し呼び出すコードが使用されている場合、コードセクションよりも前に、挿入したいバイナリコードを挿入し、実行体のバイナリファイルからコードセクション内のプログラム開始位置にジャンプするコードセクション内のプログラム開始位置が記載されている領域を検索し、検索したコードセクション内のプログラム開始位置を挿入したバイナリコードの先頭のアドレスに変更する。そして、インポートセクションに使用しているdllと使用したいdll関数を挿入すると共に、インポートセクションに既にあるdllとdll関数のアドレスを挿入した分だけずらし、コード内にdll関数を参照しているアドレスを変更する。また、呼び出しdll関数がデータを使用している場合、データセクションにデータを追加し、バイナリコード内の追加したデータのアドレスを変更する。また、コードを挿入したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う。バイナリコードが大きく、コードサイズを超える場合、コードサイズよりも大きい規定サイズの大きさにコードセクションヘッダー内のコードサイズを変更し、コードセクション以外の他のセクションヘッダー内の他のセクションの開始アドレスを増加したコードサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は増加したコードサイズ分ずらす。他のセクションサイズが大きく、他のセクションサイズを超える場合、他のセクションサイズよりも大きい規定サイズの大きさに他のセクションヘッダー内の他のセクションサイズを変更し、コードセクション以降の他のセクションの開始アドレスを増加した他のセクションサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は増加したサイズ分ずらす。尚、コードセクション内のプログラム開始位置の検索は、ＰＥヘッダ、コードセクションヘッダ内の検索により行われる。
【０３１２】
図９（３）に示すバイナリ状態での実行体への機械語コード組み込み装置は、コード内にコードセクション内のプログラム開始位置にジャンプする箇所がない場合であり、図９（１）、（２）以外の場合、挿入したいバイナリコードには、システムコールまでしか使用していない場合（例えば、Windows（登録商標）の場合、dllの呼び出しのコードを使用せずに、使用してもシステムコールまでしか使用しない場合、コードセクションの初め、中間、又は最後に、挿入したいバイナリコードを挿入する。また、挿入したいバイナリコードがデータを使用している場合、データセクションにデータを追加し、バイナリコード内の追加したデータのアドレスを変更する。また、挿入したバイナリコードが他のデータセクションのデータを使用している場合、他のデータセクションにデータを追加し、バイナリコード内の追加した他のデータセクションのデータのアドレスを変更する。また、コードを挿入したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う。バイナリコードが大きく、コードサイズを超える場合、コードサイズよりも大きい規定サイズの大きさにコードセクションヘッダー内のコードサイズを変更し、コードセクション以外の他のセクションヘッダー内の他のセクションの開始アドレスを増加したコードサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は増加したコードサイズ分ずらす。他のセクションサイズが大きく、他のセクションサイズを超える場合、他のセクションサイズよりも大きい規定サイズの大きさに他のセクションヘッダー内の他のセクションサイズを変更し、コードセクション以降の他のセクションの開始アドレスを増加した他のセクションサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は増加したサイズ分ずらす。
【０３１３】
図９（４）に示すバイナリ状態での実行体への機械語コード組み込み装置は、コード内にコードセクション内のプログラム開始位置にジャンプする箇所がない場合であり、図９（１）、（２）以外の場合、実行体ではなく、関数群が組み込まれているファイル（例えば、Windows（登録商標）の場合、dll）に組み込まれている関数を使用し呼び出すコードが使用されている場合、コードセクションの初め、中間、又は最後に、挿入したいバイナリコードを挿入する。また、挿入したいバイナリコードがデータを使用している場合、データセクションにデータを追加し、バイナリコード内の追加したデータのアドレスを変更する。また、挿入したバイナリコードが他のデータセクションのデータを使用している場合、他のデータセクションにデータを追加し、バイナリコード内の追加した他のデータセクションのデータのアドレスを変更する。また、コードを挿入したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う。バイナリコードが大きく、コードサイズを超える場合、コードサイズよりも大きい規定サイズの大きさにコードセクションヘッダー内のコードサイズを変更し、コードセクション以外の他のセクションヘッダー内の他のセクションの開始アドレスを増加したコードサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は増加したコードサイズ分ずらす。他のセクションサイズが大きく、他のセクションサイズを超える場合、他のセクションサイズよりも大きい規定サイズの大きさに他のセクションヘッダー内の他のセクションサイズを変更し、コードセクション以降の他のセクションの開始アドレスを増加した他のセクションサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は増加したサイズ分ずらす。
【０３１４】
（後に詳細に再掲初）
以下に、ＰＥ（Portable・Executable）フォーマットの場合の、本発明の実施の形態の機械語コード組み込み装置の構成及び方法を詳細に説明する。
【０３１５】
本発明の実施の形態の機械語コード組み込み装置は、
１．＜コードの挿入＞
１．１．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合であって、コードの開始以前に何らかの処理を行う場合、
（コードセクション）ヘッダーのコードセクション開始アドレスを検索するコードセクション開始アドレス検索手段と、
コードセクション開始アドレスからコードセクション内を検索し、コード開始アドレスをコールしている箇所を検索するコードセクション内コード開始アドレスコール箇所検索手段と、
コードセクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コードセクションの開始アドレスの前に、コードを挿入するコード挿入手段と、
コードセクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに挿入したコードアドレスを減算した開始アドレスに書き換えるコールコード開始アドレス変更手段と、
１．２．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合、又は１．１以外の場合
（コードセクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コードセクションの初め、途中、又は最後にコードを挿入するコード挿入手段と、
２．＜データアドレスの変更＞
挿入したコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用している場合、データをデータセクションに追加するデータセクション追加手段と、
データセクション追加手段により追加したデータのアドレスに挿入するコード内のデータのアドレスを変更する挿入コードデータアドレス変更手段と、
３．＜機能を有する手段がdllを使用している場合＞
３．１＜組み込むソフトウエアのdll存在チェック＞
挿入したコード内にdll関数をコールしている場合、インポートセクションを検索し、dllが存在するかどうかを検索するインポートセクションdll存在／非存在検索手段と、
３．１．１＜組み込むソフトウエアにdllが存在している場合＞
dllが存在している場合、
dll関数が存在するかどうかを検索するインポートセクションdll関数存在／非存在検索手段と、
３．１．１．１＜組み込むソフトウエアにdll関数が存在している場合＞
dll関数が存在している場合、
そのdll関数のアドレスにより挿入するコードのdll関数アドレスを変更する挿入コードdll関数アドレス変更手段と、
３．１．１．２＜組み込むソフトウエアにdll関数が存在していない場合＞
dll関数が存在していない場合、
dll関数を追加し、dll関数追加によるサイズ変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内にインポートセクションのdll関数アドレスを使用している場合、使用しているdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と、
３．１．２＜組み込むソフトウエアにdllが存在していない場合＞
dllが存在していない場合、
dll，dll関数をインポートセクションに追加し、dll，dll関数追加によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内にインポートセクションのdll関数アドレスを使用している場合、使用しているdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と、
４．＜機能を有する手段が他のセクションの要素を使用している場合＞
４．１＜組み込むソフトウエアの他のセクションの要素存在チェック＞
挿入したコード内に他のセクションの要素を使用している場合、他のセクションを検索し、他のセクションの要素が存在するかどうかを検索する他のセクション要素存在／非存在検索手段と、
４．１．１＜組み込むソフトウエアに他のセクションの要素存在時＞
他のセクションの要素が存在している場合、
その他のセクションの要素のアドレスにより挿入するコードの他のセクションの要素のアドレスを変更する挿入コード他のセクションの要素アドレス変更手段と、
４．１．２＜組み込むソフトウエアに他のセクションの要素非存在時＞
他のセクションの要素が存在していない場合、
他のセクションの要素を他のセクションに追加し、他のセクションの要素追加によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と、
５．
（コードの挿入により、コード内のアドレスを指定していた箇所は、挿入サイズ分全部ずらす）
現コード内で、アドレスを参照する命令を検索し、コードセクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを挿入したコードサイズ分ずらす挿入コード分アドレスずらし手段と、
６．
（コード挿入によりコードサイズが初めより大きくなる場合）
コード挿入により、コードサイズがコードセクションヘッダーに記載されているサイズよりも大きくなる場合、
コードセクションヘッダーのコードサイズをコード挿入分より大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と、
コードサイズ変更手段により増分したサイズ分、他のセクションヘッダー内に記載の他のセクションの開始アドレスを変更する他のセクション開始アドレス変更手段と、
コード内に他のセクションの要素のアドレスを使用している場合、コード挿入により、他のセクションの要素のアドレスが変化した分、コード内に他のセクションの要素のアドレスを変更するコード内他のセクションの要素アドレス変更手段と、
コード挿入により、他のセクションヘッダーのサイズが他のセクションヘッダーに記載されているサイズよりも大きくなる場合、
他のセクションヘッダーのサイズを他のセクション挿入分より大きい規定幅の大きさのサイズに変更する他のセクションサイズ変更手段と、
他のセクションの開始アドレス以降に開始アドレスを有する第２の他のセクションの開始アドレスを他のセクションのサイズの増分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード挿入により、第２の他のセクションの要素のアドレスが変化した分、コード内に第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有する
ことを特徴とする。
【０３１６】
尚、上述した機械語コード組み込み装置は、ＥＬＦ（Executable・and・Linkable・Format）フォーマットの場合でも同様に組み込みが行え、ＰＥファイルフォーマットの場合、各セクションヘッダーのアドレス及び／又はサイズ等の検索に、ＰＥヘッダー及び／又はセクションヘッダーを用いていたものを、ＥＬＦファイルフォーマットの場合、ＥＬＦヘッダー、プログラムヘッダー、セクションヘッダ、及び／又は、セクションヘッダーテーブルを用いるようになり、これらを、（各セクションのアドレス及び／又はサイズが記載されている）ヘッダーと纏めて記すと、ＥＬＦフォーマットを含める場合は、以下のようになる。
本発明の実施の形態の機械語コード組み込み装置は、
ソフトウエアに機能を有する手段をバイナリの状態で組み込むことを特徴とするソフトウエア製造装置であって、
１．＜コードの挿入＞
１．１．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合であって、コードの開始以前に何らかの処理を行う場合、
（コード記載セクション）ヘッダーのコード記載セクション開始アドレスを検索するコード記載セクション開始アドレス検索手段と、
コード記載セクション開始アドレスからコード記載セクション内を検索し、コード開始アドレスをコールしている箇所を検索するコード記載セクション内コード開始アドレスコール箇所検索手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの開始アドレスの前に、コードを挿入するコード挿入手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに挿入したコードアドレスを減算した開始アドレスに書き換えるコールコード開始アドレス変更手段と、
１．２．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合、又は１．１以外の場合
（コード記載セクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの初め、途中、又は最後にコードを挿入するコード挿入手段と、
２．＜データアドレスの変更＞
挿入したコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用している場合、データをデータセクションに追加するデータセクション追加手段と、
データセクション追加手段により追加したデータのアドレスに挿入するコード内のデータのアドレスを変更する挿入コードデータアドレス変更手段と、
３．＜機能を有する手段が呼び出し関数群格納ファイルを使用している場合＞
３．１＜組み込むソフトウエアの呼び出し関数群格納ファイル存在チェック＞
挿入したコード内に呼び出し関数群格納ファイル被格納呼び出し関数をコールしている場合、呼び出し関数群呼び出しセクションを検索し、呼び出し関数群格納ファイルが存在するかどうかを検索する呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル存在／非存在検索手段と、
３．１．１＜組み込むソフトウエアに呼び出し関数群格納ファイルが存在している場合＞
呼び出し関数群格納ファイルが存在している場合、
呼び出し関数群格納ファイル被格納呼び出し関数が存在するかどうかを検索する呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル被格納呼び出し関数存在／非存在検索手段と、
３．１．１．１＜組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在している場合＞
呼び出し関数群格納ファイル被格納呼び出し関数が存在している場合、
その呼び出し関数群格納ファイル被格納呼び出し関数のアドレスにより挿入するコードの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを変更する挿入コード呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
３．１．１．２＜組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在していない場合＞
呼び出し関数群格納ファイル被格納呼び出し関数が存在していない場合、
呼び出し関数群格納ファイル被格納呼び出し関数を追加し、呼び出し関数群格納ファイル被格納呼び出し関数追加によるサイズ変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内に呼び出し関数群呼び出しセクションの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合、使用している呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
３．１．２＜組み込むソフトウエアに呼び出し関数群格納ファイルが存在していない場合＞
呼び出し関数群格納ファイルが存在していない場合、
呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数を呼び出し関数群呼び出しセクションに追加し、呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数追加によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内に呼び出し関数群呼び出しセクションの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合、使用している呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
４．＜機能を有する手段が他のセクションの要素を使用している場合＞
４．１＜組み込むソフトウエアの他のセクションの要素存在チェック＞
挿入したコード内に他のセクションの要素を使用している場合、他のセクションを検索し、他のセクションの要素が存在するかどうかを検索する他のセクション要素存在／非存在検索手段と、
４．１．１＜組み込むソフトウエアに他のセクションの要素存在時＞
他のセクションの要素が存在している場合、
その他のセクションの要素のアドレスにより挿入するコードの他のセクションの要素のアドレスを変更する挿入コード他のセクションの要素アドレス変更手段と、
４．１．２＜組み込むソフトウエアに他のセクションの要素非存在時＞
他のセクションの要素が存在していない場合、
他のセクションの要素を他のセクションに追加し、他のセクションの要素追加によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と、
５．
（コードの挿入により、コード内のアドレスを指定していた箇所は、挿入サイズ分全部ずらす）
現コード内で、アドレスを参照する命令を検索し、コード記載セクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを挿入したコードサイズ分ずらす挿入コード分アドレスずらし手段と、
６．
（コード挿入によりコードサイズが初めより大きくなる場合）
コード挿入により、コードサイズがコード記載セクションヘッダーに記載されているサイズよりも大きくなる場合、
コード記載セクションヘッダーのコードサイズをコード挿入分より大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と、
コードサイズ変更手段により増分したサイズ分、他のセクションヘッダー内に記載の他のセクションの開始アドレスを変更する他のセクション開始アドレス変更手段と、
コード内に他のセクションの要素のアドレスを使用している場合、コード挿入により、他のセクションの要素のアドレスが変化した分、コード内に他のセクションの要素のアドレスを変更するコード内他のセクションの要素アドレス変更手段と、
コード挿入により、他のセクションヘッダーのサイズが他のセクションヘッダーに記載されているサイズよりも大きくなる場合、
他のセクションヘッダーのサイズを他のセクション挿入分より大きい規定幅の大きさのサイズに変更する他のセクションサイズ変更手段と、
他のセクションの開始アドレス以降に開始アドレスを有する第２の他のセクションの開始アドレスを他のセクションのサイズの増分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード挿入により、第２の他のセクションの要素のアドレスが変化した分、コード内に第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
ソフトウエアに機能を有する手段をバイナリの状態で組み込む
ことを特徴とするソフトウエア製造装置
となる。
尚、以上において、他のファイルフォーマットにおいても、上述したソフトウエア製造装置において、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することができ、COFF（Common・Object・File・Format）、XCOFF、ECOFF、a.outフォーマットの場合においてもフォーマットに応じて不用な手段を使用しないようにすれば、上述したソフトウエア製造装置において、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することができる。
【０３１７】
尚、図１乃至図８に示す、本発明の実施の形態、本発明の第１乃至第５の実施の形態における、バイナリ組み込みの方法は、上述したバイナリ組み込みの方法のうち、図９（４）に示すバイナリ状態での実行体への機械語コード組み込み装置に該当し、コード内にコードセクション内のプログラム開始位置にジャンプする箇所がない場合であり、図９（１）、（２）以外の場合、実行体ではなく、関数群が組み込まれているファイル（例えば、Windows（登録商標）の場合、dll）に組み込まれている関数を使用し呼び出すコードが使用されている場合、コードセクションの初め、中間、又は最後に、挿入したいバイナリコードを挿入する。また、挿入したいバイナリコードがデータを使用している場合、データセクションにデータを追加し、バイナリコード内の追加したデータのアドレスを変更する。また、挿入したバイナリコードが他のデータセクションのデータを使用している場合、他のデータセクションにデータを追加し、バイナリコード内の追加した他のデータセクションのデータのアドレスを変更する。また、コードを挿入したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う処理を有しており、詳細には、
１．＜コードの挿入＞
１．２．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合、又は１．１以外の場合
（コードセクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コードセクションの初め、途中、又は最後にコードを挿入するコード挿入手段と、
２．＜データアドレスの変更＞
挿入したコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用している場合、データをデータセクションに追加するデータセクション追加手段と、
データセクション追加手段により追加したデータのアドレスに挿入するコード内のデータのアドレスを変更する挿入コードデータアドレス変更手段と、
３．＜機能を有する手段がdllを使用している場合＞
３．１＜組み込むソフトウエアのdll存在チェック＞
挿入したコード内にdll関数をコールしている場合、インポートセクションを検索し、dllが存在するかどうかを検索するインポートセクションdll存在／非存在検索手段と、
３．１．１＜組み込むソフトウエアにdllが存在している場合＞
dllが存在している場合、
dll関数が存在するかどうかを検索するインポートセクションdll関数存在／非存在検索手段と、
３．１．１．１＜組み込むソフトウエアにdll関数が存在している場合＞
dll関数が存在している場合、
そのdll関数のアドレスにより挿入するコードのdll関数アドレスを変更する挿入コードdll関数アドレス変更手段と、
３．１．１．２＜組み込むソフトウエアにdll関数が存在していない場合＞
dll関数が存在していない場合、
dll関数を追加し、dll関数追加によるサイズ変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内にインポートセクションのdll関数アドレスを使用している場合、使用しているdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と、
３．１．２＜組み込むソフトウエアにdllが存在していない場合＞
dllが存在していない場合、
dll，dll関数をインポートセクションに追加し、dll，dll関数追加によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内にインポートセクションのdll関数アドレスを使用している場合、使用しているdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と、
４．＜機能を有する手段が他のセクションの要素を使用している場合＞
４．１＜組み込むソフトウエアの他のセクションの要素存在チェック＞
挿入したコード内に他のセクションの要素を使用している場合、他のセクションを検索し、他のセクションの要素が存在するかどうかを検索する他のセクション要素存在／非存在検索手段と、
４．１．１＜組み込むソフトウエアに他のセクションの要素存在時＞
他のセクションの要素が存在している場合、
その他のセクションの要素のアドレスにより挿入するコードの他のセクションの要素のアドレスを変更する挿入コード他のセクションの要素アドレス変更手段と、
４．１．２＜組み込むソフトウエアに他のセクションの要素非存在時＞
他のセクションの要素が存在していない場合、
他のセクションの要素を他のセクションに追加し、他のセクションの要素追加によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と、
５．
（コードの挿入により、コード内のアドレスを指定していた箇所は、挿入サイズ分全部ずらす）
現コード内で、アドレスを参照する命令を検索し、コードセクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを挿入したコードサイズ分ずらす挿入コード分アドレスずらし手段と、
を有した処理を使用して、起動時にMACアドレスを組み込む処理を実行体のバイナリの初めに組み込む。即ち、起動時にMACアドレスを組み込む方法は、データセクションにＭＡＣアドレスのサイズと同様のサイズのＭＡＣアドレス格納領域を予め確保しておき、起動時に取得したMACアドレスを予め確保しておいた領域に格納する。また、データセクションにＭＡＣアドレスのサイズと同様のサイズのＭＡＣアドレス格納領域を予め確保し、そこに予め定めたMACアドレスの固定の文字列を格納しておき、起動時に取得したMACアドレスを、予め定めたＭＡＣアドレスの固定の文字列を検索して検索されたＭＡＣアドレスと置き換えるようにして予め確保しておいた領域に格納するようにしてもよい。
（後に詳細に再掲終）
【０３１８】
以上において、「〜した場合、」と記した箇所等をより明示的に記載して（後に詳細に再掲初）から（後に詳細に再掲終）までを再度記載し直すと、以下のようになる。
【０３１９】
以下に、ＰＥ（Portable・Executable）フォーマットの場合の、本発明の実施の形態の機械語コード組み込み装置の構成及び方法を詳細に説明する。
【０３２０】
本発明の実施の形態の機械語コード組み込み装置は、
１．＜コードの挿入＞
１．０  組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
組み込むソフトウエアのコードのどの位置に機能を有する手段を挿入するかを選択判断するコード挿入位置選択判断手段と
を有し、
１．１．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合（コード開始アドレスコール箇所検索手段による判断に依る）であって、コードの開始以前に何らかの処理を行う場合（コード挿入位置選択判断手段による判断に依る）、
（コードセクション）ヘッダーのコードセクション開始アドレスを検索するコードセクション開始アドレス検索手段と、
コードセクション開始アドレスからコードセクション内を検索し、コード開始アドレスをコールしている箇所を検索するコードセクション内コード開始アドレスコール箇所検索手段と、
コードセクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コードセクションの開始アドレスの前に、コードを挿入するコード挿入手段と、
コードセクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに挿入したコードアドレスを減算した開始アドレスに書き換えるコールコード開始アドレス変更手段と
を有し、
１．２．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コードセクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コードセクションの初め、途中、又は最後にコードを挿入するコード挿入手段と
を有し、
２．＜データアドレスの変更＞
２．０  挿入したコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又はdll関数データ使用／非使用判断手段と
を有し、
挿入したコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用している場合（システムコール又はdll関数データ使用／非使用判断手段による判断に依る）、データをデータセクションに追加するデータセクション追加手段と、
データセクション追加手段により追加したデータのアドレスに挿入するコード内のデータのアドレスを変更する挿入コードデータアドレス変更手段と
を有し、
３．＜機能を有する手段がdllを使用している場合＞
３．０  機能を有する手段がdllを使用しているかどうかを判断する、機能を有する手段dll使用／非使用判断手段と
を有し、
３．１＜組み込むソフトウエアのdll存在チェック＞
挿入したコード内にdll関数をコールしている場合（機能を有する手段dll使用／非使用判断手段による判断に依る）、組み込むソフトウエアのインポートセクションを検索し、dllが存在するかどうかを検索するインポートセクションdll存在／非存在検索手段と
を有し、
３．１．１＜組み込むソフトウエアにdllが存在している場合＞
組み込むソフトウエアにdllが存在している場合（インポートセクションdll存在／非存在検索手段による判断に依る）、
組み込むソフトウエアにdll関数が存在するかどうかを検索するインポートセクションdll関数存在／非存在検索手段と
を有し、
３．１．１．１＜組み込むソフトウエアにdll関数が存在している場合＞
組み込むソフトウエアにdll関数が存在している場合（インポートセクションdll関数存在／非存在検索手段による判断に依る）、
そのdll関数のアドレスにより挿入するコードのdll関数アドレスを変更する挿入コードdll関数アドレス変更手段と
を有し、
３．１．１．２＜組み込むソフトウエアにdll関数が存在していない場合＞
組み込むソフトウエアにdll関数が存在していない場合（インポートセクションdll関数存在／非存在検索手段による判断に依る）、
dll関数を追加し、dll関数追加によるサイズ変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内にインポートセクションのdll関数アドレスを使用している場合、使用しているdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
３．１．２＜組み込むソフトウエアにdllが存在していない場合＞
組み込むソフトウエアにdllが存在していない場合（インポートセクションdll存在／非存在検索手段による判断に依る）、
dll，dll関数をインポートセクションに追加し、dll，dll関数追加によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内にインポートセクションのdll関数アドレスを使用している場合、使用しているdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
４．＜機能を有する手段が(コード、インポート、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０  機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１＜組み込むソフトウエアの他のセクションの要素存在チェック＞
挿入したコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、他のセクションを検索し、他のセクションの要素が存在するかどうかを検索する他のセクション要素存在／非存在検索手段と
を有し、
４．１．１＜組み込むソフトウエアに他のセクションの要素存在時＞
組み込むソフトウエアに他のセクションの要素が存在している場合（他のセクション要素存在／非存在検索手段による判断に依る）、
その他のセクションの要素のアドレスにより挿入するコードの他のセクションの要素のアドレスを変更する挿入コード他のセクションの要素アドレス変更手段と
を有し、
４．１．２＜組み込むソフトウエアに他のセクションの要素非存在時＞
組み込むソフトウエアに他のセクションの要素が存在していない場合（他のセクション要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションに追加し、他のセクションの要素追加によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０  コードの挿入により、コード内のアドレスを指定しているかどうかを判断するコード挿入コード内アドレス指定／非指定判断手段と
を有し、
（コードの挿入により、コード内のアドレスを指定していた箇所は、挿入サイズ分全部ずらす）
（コード挿入コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コードセクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを挿入したコードサイズ分ずらす挿入コード分アドレスずらし手段と
を有し、
６．
６．０  コード挿入によりコードサイズが初めより大きくなるかどうかを判断するコード挿入コードサイズ大／非大判断手段と
を有し、
（コード挿入によりコードサイズが初めより大きくなる場合）
コード挿入により、コードサイズがコードセクションヘッダーに記載されているサイズよりも大きくなる場合（コード挿入コードサイズ大／非大判断手段による判断に依る）、
コードセクションヘッダー内に記載のコードセクション及び／又はコードセクションのコードサイズをコード挿入後のサイズより大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と
を有し、
（コードセクション以外の）第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段
を有し、
第１の他のセクション存在時（第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段の判断による判断に依る）、
コードサイズ変更手段により増分したサイズ分、第１の他のセクションヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションの開始アドレスを変更する第１の他のセクション開始アドレス変更手段と、
コード内に第１の他のセクションの要素のアドレスを使用している場合、コード挿入により、第１の他のセクションの要素のアドレスが変化した分、コード内の第１の他のセクションの要素のアドレスを変更するコード内第１の他のセクションの要素アドレス変更手段と
を有し、
６．１  コード挿入により第１の他のセクションサイズが初めより大きくなるかどうかを判断するコード挿入第１の他のセクションサイズ大／非大判断手段と
を有し、
（コード挿入により第１の他のセクションサイズが初めより大きくなる場合）
コード挿入により、第１の他のセクションのサイズが第１の他のセクションヘッダー内に記載されているサイズよりも大きくなる場合（コード挿入により他のセクションサイズが初めより大きくなるかどうかを判断するコード挿入第１の他のセクションサイズ大／非大判断手段による判断に依る）、
第１の他のセクションヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションのサイズを第１の他のセクション挿入後のサイズより大きい規定幅の大きさのサイズに変更する第１の他のセクションサイズ変更手段と
を有し、
（コードセクション以外の）第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段と
を有し、
第２の他のセクション存在時（第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段による判断による）、
第１の他のセクションの開始アドレス以降に開始アドレスを有する第２の他のセクションヘッダー内に記載の第２の他のセクション及び／又は第２の他のセクションの開始アドレスを第１の他のセクションの開始アドレスとサイズの増分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード挿入により、第２の他のセクションの要素のアドレスが変化した分、コード内の第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
６．２  第１の他のセクションを第２の他のセクションの開始アドレスを有する他のセクションとして、第１の他のセクションが存在しなくなるまで、６．１の処理を繰り返し実行する、６．１の処理繰り返し実行手段と
を有する
ことを特徴とする。
【０３２１】
尚、上述した機械語コード組み込み装置は、ＥＬＦ（Executable・and・Linkable・Format）フォーマットの場合でも同様に組み込みが行え、ＰＥファイルフォーマットの場合、各セクションヘッダーのアドレス及び／又はサイズ等の検索に、ＰＥヘッダー及び／又はセクションヘッダーを用いていたものを、ＥＬＦファイルフォーマットの場合、ＥＬＦヘッダー、プログラムヘッダー、セクションヘッダ、及び／又は、セクションヘッダーテーブルを用いるようになり、これらを、（各セクションのアドレス及び／又はサイズが記載されている）ヘッダーと纏めて記すと、ＥＬＦフォーマットを含める場合は、以下のようになる。
本発明の実施の形態の機械語コード組み込み装置は、
ソフトウエアに機能を有する手段をバイナリの状態で組み込むことを特徴とするソフトウエア製造装置であって、
１．＜コードの挿入＞
１．０  組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
組み込むソフトウエアのコードのどの位置に機能を有する手段を挿入するかを選択判断するコード挿入位置選択判断手段と
を有し、
１．１．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合（コード開始アドレスコール箇所検索手段による判断に依る）であって、コードの開始以前に何らかの処理を行う場合（コード挿入位置選択判断手段による判断に依る）、
（コード記載セクション）ヘッダーのコード記載セクション開始アドレスを検索するコード記載セクション開始アドレス検索手段と、
コード記載セクション開始アドレスからコード記載セクション内を検索し、コード開始アドレスをコールしている箇所を検索するコード記載セクション内コード開始アドレスコール箇所検索手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの開始アドレスの前に、コードを挿入するコード挿入手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに挿入したコードアドレスを減算した開始アドレスに書き換えるコールコード開始アドレス変更手段と
を有し、
１．２．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コード記載セクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの初め、途中、又は最後にコードを挿入するコード挿入手段と
を有し、
２．＜データアドレスの変更＞
２．０  挿入したコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段と
を有し、
挿入したコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用している場合（システムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段による判断に依る）、データをデータセクションに追加するデータセクション追加手段と、
データセクション追加手段により追加したデータのアドレスに挿入するコード内のデータのアドレスを変更する挿入コードデータアドレス変更手段と
を有し、
３．＜機能を有する手段が呼び出し関数群格納ファイルを使用している場合＞
３．０  機能を有する手段が呼び出し関数群格納ファイルを使用しているかどうかを判断する、機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段と
を有し、
３．１＜組み込むソフトウエアの呼び出し関数群格納ファイル存在チェック＞
挿入したコード内に呼び出し関数群格納ファイル被格納呼び出し関数をコールしている場合（機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段による判断に依る）、組み込むソフトウエアの呼び出し関数群呼び出しセクションを検索し、呼び出し関数群格納ファイルが存在するかどうかを検索する呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル存在／非存在検索手段と
を有し、
３．１．１＜組み込むソフトウエアに呼び出し関数群格納ファイルが存在している場合＞
組み込むソフトウエアに呼び出し関数群格納ファイルが存在している場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル存在／非存在検索手段による判断に依る）、
組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在するかどうかを検索する呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル被格納呼び出し関数存在／非存在検索手段と
を有し、
３．１．１．１＜組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在している場合＞
組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在している場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル被格納呼び出し関数存在／非存在検索手段による判断に依る）、
その呼び出し関数群格納ファイル被格納呼び出し関数のアドレスにより挿入するコードの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを変更する挿入コード呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
３．１．１．２＜組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在していない場合＞
組み込むソフトウエアに呼び出し関数群格納ファイル被格納呼び出し関数が存在していない場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル被格納呼び出し関数存在／非存在検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数を追加し、呼び出し関数群格納ファイル被格納呼び出し関数追加によるサイズ変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内に呼び出し関数群呼び出しセクションの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合、使用している呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
３．１．２＜組み込むソフトウエアに呼び出し関数群格納ファイルが存在していない場合＞
組み込むソフトウエアに呼び出し関数群格納ファイルが存在していない場合（呼び出し関数群呼び出しセクション呼び出し関数群格納ファイル存在／非存在検索手段による判断に依る）、
呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数を呼び出し関数群呼び出しセクションに追加し、呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数追加によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内に呼び出し関数群呼び出しセクションの呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合、使用している呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
４．＜機能を有する手段が(コード記載、呼び出し関数群呼び出し、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０  機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１＜組み込むソフトウエアの他のセクションの要素存在チェック＞
挿入したコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、他のセクションを検索し、他のセクションの要素が存在するかどうかを検索する他のセクション要素存在／非存在検索手段と
を有し、
４．１．１＜組み込むソフトウエアに他のセクションの要素存在時＞
組み込むソフトウエアに他のセクションの要素が存在している場合（他のセクション要素存在／非存在検索手段による判断に依る）、
その他のセクションの要素のアドレスにより挿入するコードの他のセクションの要素のアドレスを変更する挿入コード他のセクションの要素アドレス変更手段と
を有し、
４．１．２＜組み込むソフトウエアに他のセクションの要素非存在時＞
組み込むソフトウエアに他のセクションの要素が存在していない場合（他のセクション要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションに追加し、他のセクションの要素追加によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０  コードの挿入により、コード内のアドレスを指定しているかどうかを判断するコード挿入コード内アドレス指定／非指定判断手段と
を有し、
（コードの挿入により、コード内のアドレスを指定していた箇所は、挿入サイズ分全部ずらす）
（コード挿入コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コード記載セクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを挿入したコードサイズ分ずらす挿入コード分アドレスずらし手段と
を有し、
６．
６．０  コード挿入によりコードサイズが初めより大きくなるかどうかを判断するコード挿入コードサイズ大／非大判断手段と
を有し、
（コード挿入によりコードサイズが初めより大きくなる場合）
コード挿入により、コードサイズが（コード記載セクション）ヘッダーに記載されているサイズよりも大きくなる場合（コード挿入コードサイズ大／非大判断手段による判断に依る）、
（コード記載セクション）ヘッダー内に記載のコード記載セクション及び／又はコード記載セクションのコードサイズをコード挿入後のサイズより大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と
を有し、
（コード記載セクション以外の）第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段
を有し、
第１の他のセクション存在時（第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段の判断による判断に依る）、
コードサイズ変更手段により増分したサイズ分、（第１の他のセクション）ヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションの開始アドレスを変更する第１の他のセクション開始アドレス変更手段と、
コード内に第１の他のセクションの要素のアドレスを使用している場合、コード挿入により、第１の他のセクションの要素のアドレスが変化した分、コード内の第１の他のセクションの要素のアドレスを変更するコード内第１の他のセクションの要素アドレス変更手段と
を有し、
６．１  コード挿入により第１の他のセクションサイズが初めより大きくなるかどうかを判断するコード挿入第１の他のセクションサイズ大／非大判断手段と
を有し、
（コード挿入により第１の他のセクションサイズが初めより大きくなる場合）
コード挿入により、第１の他のセクションのサイズが（第１の他のセクション）ヘッダー内に記載されているサイズよりも大きくなる場合（コード挿入により他のセクションサイズが初めより大きくなるかどうかを判断するコード挿入第１の他のセクションサイズ大／非大判断手段による判断に依る）、
（第１の他のセクション）ヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションのサイズを第１の他のセクション挿入後のサイズより大きい規定幅の大きさのサイズに変更する第１の他のセクションサイズ変更手段と
を有し、
（コード記載セクション以外の）第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段と
を有し、
第２の他のセクション存在時（第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段による判断による）、
第１の他のセクションの開始アドレス以降に開始アドレスを有する（第２の他のセクション）ヘッダー内に記載の第２の他のセクション及び／又は第２の他のセクションの開始アドレスを第１の他のセクションの開始アドレスとサイズの増分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード挿入により、第２の他のセクションの要素のアドレスが変化した分、コード内の第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
６．２  第１の他のセクションを第２の他のセクションの開始アドレスを有する他のセクションとして、第１の他のセクションが存在しなくなるまで、６．１の処理を繰り返し実行する、６．１の処理繰り返し実行手段と
を有し、
ソフトウエアに機能を有する手段をバイナリの状態で組み込む
ことを特徴とするソフトウエア製造装置
となる。
尚、以上において、他のファイルフォーマットにおいても、上述したソフトウエア製造装置において、ソフトウエアにバイナリの状態で組み込んだ機能を有する手段をバイナリの状態で組み込み削除することができ、COFF（Common・Object・File・Format）、XCOFF、ECOFF、a.outフォーマットの場合においてもフォーマットに応じて不用な手段を使用しないようにすれば、上述したソフトウエア製造装置において、ソフトウエアに機能を有する手段をバイナリの状態で組み込むことができる。
【０３２２】
尚、図１乃至図８に示す、本発明の実施の形態、本発明の第１乃至第５の実施の形態における、バイナリ組み込みの方法は、上述したバイナリ組み込みの方法のうち、図９（４）に示すバイナリ状態での実行体への機械語コード組み込み装置に該当し、コード内にコードセクション内のプログラム開始位置にジャンプする箇所がない場合であり、図９（１）、（２）以外の場合、実行体ではなく、関数群が組み込まれているファイル（例えば、Windows（登録商標）の場合、dll）に組み込まれている関数を使用し呼び出すコードが使用されている場合、コードセクションの初め、中間、又は最後に、挿入したいバイナリコードを挿入する。また、挿入したいバイナリコードがデータを使用している場合、データセクションにデータを追加し、バイナリコード内の追加したデータのアドレスを変更する。また、挿入したバイナリコードが他のデータセクションのデータを使用している場合、他のデータセクションにデータを追加し、バイナリコード内の追加した他のデータセクションのデータのアドレスを変更する。また、コードを挿入したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う処理を有しており、詳細には、
１．＜コードの挿入＞
１．０  組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と
を有し、
１．２．組み込むソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コードセクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コードセクションの初め、途中、又は最後にコードを挿入するコード挿入手段と
を有し、
２．＜データアドレスの変更＞
２．０  挿入したコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又はdll関数データ使用／非使用判断手段と
を有し、
挿入したコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用している場合（システムコール又はdll関数データ使用／非使用判断手段による判断に依る）、データをデータセクションに追加するデータセクション追加手段と、
データセクション追加手段により追加したデータのアドレスに挿入するコード内のデータのアドレスを変更する挿入コードデータアドレス変更手段と
を有し、
３．＜機能を有する手段がdllを使用している場合＞
３．０  機能を有する手段がdllを使用しているかどうかを判断する、機能を有する手段dll使用／非使用判断手段と
を有し、
３．１＜組み込むソフトウエアのdll存在チェック＞
挿入したコード内にdll関数をコールしている場合（機能を有する手段dll使用／非使用判断手段による判断に依る）、組み込むソフトウエアのインポートセクションを検索し、dllが存在するかどうかを検索するインポートセクションdll存在／非存在検索手段と
を有し、
３．１．１＜組み込むソフトウエアにdllが存在している場合＞
組み込むソフトウエアにdllが存在している場合（インポートセクションdll存在／非存在検索手段による判断に依る）、
組み込むソフトウエアにdll関数が存在するかどうかを検索するインポートセクションdll関数存在／非存在検索手段と
を有し、
３．１．１．１＜組み込むソフトウエアにdll関数が存在している場合＞
組み込むソフトウエアにdll関数が存在している場合（インポートセクションdll関数存在／非存在検索手段による判断に依る）、
そのdll関数のアドレスにより挿入するコードのdll関数アドレスを変更する挿入コードdll関数アドレス変更手段と
を有し、
３．１．１．２＜組み込むソフトウエアにdll関数が存在していない場合＞
組み込むソフトウエアにdll関数が存在していない場合（インポートセクションdll関数存在／非存在検索手段による判断に依る）、
dll関数を追加し、dll関数追加によるサイズ変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内にインポートセクションのdll関数アドレスを使用している場合、使用しているdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
３．１．２＜組み込むソフトウエアにdllが存在していない場合＞
組み込むソフトウエアにdllが存在していない場合（インポートセクションdll存在／非存在検索手段による判断に依る）、
dll，dll関数をインポートセクションに追加し、dll，dll関数追加によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内にインポートセクションのdll関数アドレスを使用している場合、使用しているdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
４．＜機能を有する手段が(コード、インポート、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０  機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１＜組み込むソフトウエアの他のセクションの要素存在チェック＞
挿入したコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、他のセクションを検索し、他のセクションの要素が存在するかどうかを検索する他のセクション要素存在／非存在検索手段と
を有し、
４．１．１＜組み込むソフトウエアに他のセクションの要素存在時＞
組み込むソフトウエアに他のセクションの要素が存在している場合（他のセクション要素存在／非存在検索手段による判断に依る）、
その他のセクションの要素のアドレスにより挿入するコードの他のセクションの要素のアドレスを変更する挿入コード他のセクションの要素アドレス変更手段と
を有し、
４．１．２＜組み込むソフトウエアに他のセクションの要素非存在時＞
組み込むソフトウエアに他のセクションの要素が存在していない場合（他のセクション要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションに追加し、他のセクションの要素追加によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０  コードの挿入により、コード内のアドレスを指定しているかどうかを判断するコード挿入コード内アドレス指定／非指定判断手段と
を有し、
（コードの挿入により、コード内のアドレスを指定していた箇所は、挿入サイズ分全部ずらす）
（コード挿入コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コードセクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを挿入したコードサイズ分ずらす挿入コード分アドレスずらし手段と
を有した処理を使用して、起動時にMACアドレスを組み込む処理を実行体のバイナリの初めに組み込む。即ち、起動時にMACアドレスを組み込む方法は、データセクションにＭＡＣアドレスのサイズと同様のサイズのＭＡＣアドレス格納領域を予め確保しておき、起動時に取得したMACアドレスを予め確保しておいた領域に格納する。また、データセクションにＭＡＣアドレスのサイズと同様のサイズのＭＡＣアドレス格納領域を予め確保し、そこに予め定めたMACアドレスの固定の文字列を格納しておき、起動時に取得したMACアドレスを、予め定めたＭＡＣアドレスの固定の文字列を検索して検索されたＭＡＣアドレスと置き換えるようにして予め確保しておいた領域に格納するようにしてもよい。
【０３２３】
なお、上記実施の形態及び実施例中において説明した処理を行うプログラムをプログラム実施者に供給若しくは配布する供給若しくは配布媒体としては、磁気テープ,光/磁気・半導体ディスク, フラッシュメモリ等を含む半導体メモリ,超伝導メモリ等の記録媒体の他、伝送媒体等を含み、プログラム実施者に供給若しくは配布可能な供給若しくは配布媒体であればどのようなものであってもよい。
【０３２４】
尚、以上において、上記したソフトウエア製造装置を、電子機器又はコンピュータ上に設置し、電子機器又はコンピュータ上に存在する実行体に、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを自動的に組み込めば、電子機器又はコンピュータ上に存在する全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上する。また、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、組み込み指標選択（又は画面表示選択）手段（ソフトウエア製造装置の初期設定用のソフトウエア）が表示され、選択（又は画面表示選択）手段により選択した組み込み指標に基づいて、電子機器又はコンピュータ上に存在するプログラムのうちの、組み込み指標で設定された実行体の組み込み指標で設定された位置に、組み込み指標で設定された組み込み用プログラムが、実行体の停止中に（電子機器又はコンピュータ上のプログラムの実行体の実行を監視し、停止中に）バイナリの状態で組み込むようにしてもよい。これらの実行体への組み込みは、電子機器又はコンピュータ上に存在する全てのプログラムに対して行えるように組み込み指標を定義すれば、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上に存在する全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる（１電子機器唯一動作許可ソフトウエア製造装置とすることができる）。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上する。
【０３２５】
本発明の実施の形態の機械語コード組込装置（電子機器）及び方法について、図１０を用いて説明する。
【０３２６】
図１０（１）は、機械語コード組込装置（電子機器）１０００aの概観の構成を示す斜視図である。
【０３２７】
機械語コード組込装置（電子機器）１０００aは、矩形の容器で覆われ、各種媒体入出力（挿入口）１０１６ａ、及び／又は組込状態表示釦１０１７a、及び／又は各種媒体入出力（挿入口）１０２２a、及び／又は（選択）操作機（コンピュータ）入出力（挿入口）１０２３aとから構成されている。以下、各種媒体とは、記録媒体及び／又は伝送媒体を示すものとする。
【０３２８】
図１１（１）は、機械語コード組込装置（電子機器）１０００aの構成を示すブロック図である。
【０３２９】
機械語コード組込装置（電子機器）１０００aは、ＣＰＵ（Central・Processing・Unit）１０１１a、ＲＯＭ（Read・Only・Memory）１０１２a、ＲＡＭ（Random・Access・Memory）１０１３a、バス１０１４a、入出力インターフェイス１０１５a、各種媒体入出力１０１６aと、及び／又は各種媒体入出力１０２２aと、及び／又は（選択）操作機（コンピュータ）入出力１０２３aとから構成されている。尚、各種媒体入出力１０１６a、各種媒体入出力１０２２aとしては、各種ケーブル等も含まれるものとする。また、各種媒体入出力１０１６a、各種媒体入出力１０２２aは、各種媒体に応じた挿入口又はコネクタとすることができ、図１１（１）中においても、各種媒体に応じた挿入口又はコネクタの形状に応じたものとすることができる。
【０３３０】
ＣＰＵ１０１１aは、ＲＯＭ１０１２aに記憶されているプログラムに従って、各種の処理を実行する。ＲＡＭ１０１３aは、ＣＰＵ１０１１aが各種の処理を実行する上において必要なデータ、プログラム等が、適宜記憶される。入出力インターフェイス１０１５aは、各種媒体入出力１０１６a、及び／又は組込状態表示釦１０１７a、及び／又は各種媒体入出力１０２２a、に対する入出力のインターフェース処理を実行する。
【０３３１】
機械語コード組込装置（電子機器）１０００aは、各種媒体挿入口１０１６ａに挿入されたソフトウエアが格納された媒体からソフトウエアを読み出し、そのソフトウエアに機械語コードで、上述した本明細書中全てに記載されているプログラム、例えば、上述した一電子機器動作許可の機能を有するプログラムを初め、初期設定された、機能を有する手段であるプログラムをソフトウエアにバイナリの状態で組み込み、組み込んたソフトウエアを媒体に格納する。これらの初期設定は、（選択）操作機（コンピュータ）入出力（挿入口）１０２３aを有している場合、機械語コード組込装置（電子機器）１０００aに、（選択）操作機（コンピュータ）入出力（挿入口）１０２３aを介して（選択）操作機（コンピュータ）１０２４aを接続することにより表示される選択（又はメニュー表示画面選択）手段（機械語コード組込装置（電子機器）の初期設定用のソフトウエア）からの選択により決定される。その他の各種設定、各種（選択）操作もこの（選択）操作機（コンピュータ）入出力（挿入口）１０２３aを介して（選択）操作機（コンピュータ）１０２４aにより行われる。
【０３３２】
尚、各種媒体挿入口１０１６aに、ソフトウエア、及び／又は、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル又はデータ、及び／又は、組み込み用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアに組み込み用プログラムがバイナリの状態で格納され（高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、組み込み用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理（供給媒体からソフトウエアを供給した場合）と同様の処理を行う。）
【０３３３】
また、各種媒体挿入口１０２２ａを備えている場合、各種媒体挿入口１０２２ａに組み込み用のプログラムが格納された各種媒体を挿入することによって、組み込みたい組み込み用のプログラムを入れ替えることができる。これは、高級言語で記載されたプログラムでもよく、高級言語で記載されたプログラムが挿入された場合は、高級言語用のコンパイラでコンパイルされ、処理が含まれたプログラムの部分だけが機械語で記憶される。この機械語で供給されるか高級言語のプログラムで供給されるかどの高級言語で供給されるかの選択は、初期設定の組み込み用プログラム指標で決定される。また、供給されたソフトウエアの初め、途中（何バイト目か等）、最後のどの箇所に組み込まれるかの判断も初期設定の組み込み指標により決定される。これらの初期設定は、（選択）操作機（コンピュータ）入出力（挿入口）１０２３aを有している場合、機械語コード組込装置（電子機器）１０００aに、（選択）操作機（コンピュータ）入出力（挿入口）１０２３aを介して（選択）操作機（コンピュータ）１０２４aを接続することにより表示される選択（又はメニュー表示画面選択）手段（機械語コード組込装置（電子機器）の初期設定用のソフトウエア）からの選択により決定される。
【０３３４】
尚、各種媒体挿入口１０１６a又は各種媒体挿入口１０２２ａに、ソフトウエア、及び／又は、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル又はデータ、及び／又は、組み込み用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアに組み込み用プログラムがバイナリの状態で格納され（高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、組み込み用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理（供給媒体からソフトウエアを供給した場合）と同様の処理を行う。）
【０３３５】
従って、本発明の実施の形態の機械語コード組込装置（電子機器）によれば、ソフトウエアが格納された媒体を各種媒体挿入口１０１６ａに挿入するだけで、そのソフトウエアに機械語コードで、上述した本明細書中全てに記載されているプログラム、例えば、上述した一電子機器動作許可の機能を有するプログラムを初め、初期設定された組み込み指標に基づいて、又は、組み込み指標を示すファイル又はデータに記載された組み込み指標、並びに／若しくは、組み込み用プログラム指標、及び／又は、組み込み用プログラムに基づいて、機能を有する手段であるプログラムがバイナリの状態で組み込まれたソフトウエアを媒体に格納することができる（一電子機器動作許可機械語コード組込装置（電子機器）とすることができる）。
【０３３６】
尚、組込状態表示釦１０１２aを備えている場合は、組込状態表示釦１０１２aは、組み込みの処理の始まり及び組み込み処理中は点灯し、処理が終わると消灯する。
【０３３７】
図１０（２）は、機械語コード組込装置（電子機器）１０００ｂの概観の構成を示す斜視図である。
【０３３８】
機械語コード組込装置（電子機器）１０００ｂは、矩形の容器で覆われ、各種媒体入出力（挿入口）１０１６ｂ、及び／又は組込状態表示釦１０１７ｂと、各種釦（上下及び／又は左右指示釦、並びに／若しくは決定釦が備えられている）１０１８ｂと、表示部１０２０ｂと、及び／又は各種媒体入出力（挿入口）１０２２ｂと、及び／又は（選択）操作機（コンピュータ）入出力（挿入口）１０２３bとから構成されている。
【０３３９】
図１１（２）は、機械語コード組込装置（電子機器）１０００ｂの構成を示すブロック図である。
【０３４０】
機械語コード組込装置（電子機器）１０００ｂは、ＣＰＵ（Central・Processing・Unit）１０１１ｂ、ＲＯＭ（Read・Only・Memory）１０１２ｂ、ＲＡＭ（Random・Access・Memory）１０１３ｂ、バス１０１４ｂ、入出力インターフェイス１０１５ｂ、各種媒体入出力（挿入口）１０１６ｂ、及び／又は組込状態表示釦１０１７ｂ、各種釦１０１８ｂ、表示部１０２０ｂ、及び／又は各種媒体入出力（挿入口）１０２２ｂと、及び／又は（選択）操作機（コンピュータ）入出力（挿入口）１０２３aとから構成されている。尚、各種媒体入出力１０１６ｂ、各種媒体入出力１０２２ｂとしては、各種ケーブル等も含まれるものとする。また、各種媒体入出力１０１６ｂ、各種媒体入出力１０２２ｂは、各種媒体に応じた挿入口又はコネクタとすることができ、図１１（２）中においても、各種媒体に応じた挿入口又はコネクタの形状に応じたものとすることができる。
【０３４１】
ＣＰＵ１０１１aは、ＲＯＭ１０１２aに記憶されているプログラムに従って、各種の処理を実行する。ＲＡＭ１０１３ｂは、ＣＰＵ１０１１ｂが各種の処理を実行する上において必要なデータ、プログラム等が、適宜記憶される。入出力インターフェイス１０１５aは、各種媒体入出力１０１６ｂ、及び／又は組込状態表示釦１０１７ｂ、各種釦１０１８ｂ、及び／又はマウス１０１９ｂ、表示部１０２０ｂ、及び／又は各種媒体入出力１０２２ｂ、及び／又は（選択）操作機（コンピュータ）入出力（挿入口）１０２３bに対する入出力のインターフェース処理を実行する。
【０３４２】
機械語コード組込装置（電子機器）１０００ｂは、ソフトウエアが格納された媒体を各種媒体挿入口１０１６ｂを挿入すると、表示部１０２０ｂに、上述した一電子機器動作許可の機能を有するプログラムを初め、機能を有する手段であるプログラムであるバイナリ組み込み用プログラムの選択（又はメニュー表示画面選択）手段（組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を選択する選択（又はメニュー表示画面選択）手段）、及び／又は、組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を選択する選択（又はメニュー表示画面選択）手段）が表示され、所望のバイナリ組み込み用プログラムを選択することによって、選択したプログラムがソフトウエアにバイナリの状態で組み込まれ、組み込まれたソフトウエアが媒体に格納される。これらの初期設定は、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｂを有している場合、機械語コード組込装置（電子機器）１０００ｂに、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｂを介して（選択）操作機（コンピュータ）１０２４ｂを接続することにより表示される選択（又はメニュー表示画面選択）手段（機械語コード組込装置（電子機器）の初期設定用のソフトウエア）からの選択によっても決定することができる。また、その他の各種設定、各種（選択）操作もこの（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｂを介して（選択）操作機（コンピュータ）１０２４ｂにより行われる。
【０３４３】
尚、各種媒体挿入口１０１６ｂに、ソフトウエア、及び／又は、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル又はデータ、及び／又は、組み込み用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアに組み込み用プログラムがバイナリの状態で格納され（高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、組み込み用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理（供給媒体からソフトウエアを供給した場合）と同様の処理を行う。）
【０３４４】
また、各種媒体挿入口１０２２ｂを備えている場合、各種媒体挿入口１０２２ｂに組み込み用のプログラムが格納された各種媒体を挿入することによって、選択（又はメニュー表示画面選択）手段（組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を選択する選択（又はメニュー表示画面選択）手段）、及び／又は、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を選択する選択（又はメニュー表示画面選択）手段）が表示され、各種媒体のどの組み込み用のプログラムを追加又はどの記憶されている組み込み用のプログラムと入れ替えるのかを選択決定することができる。これは、高級言語で記載されたプログラムでもよく、高級言語で記載されたプログラムが挿入された場合は、高級言語用のコンパイラでコンパイルされ、処理が含まれたプログラムの部分だけが機械語で記憶される。この機械語で供給されるか高級言語のプログラムで供給されるかどの高級言語で供給されるかの選択も、選択（又はメニュー表示画面選択）手段から選択決定することができる。また、供給されたソフトウエアの初め、途中（何バイト目か等）、最後のどの箇所に組み込まれるかの判断も選択（又はメニュー表示画面選択）手段から選択決定することができる。
【０３４５】
尚、各種媒体挿入口１０１６a又は各種媒体挿入口１０２２ａに、ソフトウエア、及び／又は、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル又はデータ、及び／又は、組み込み用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアに組み込み用プログラムがバイナリの状態で格納され（高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、組み込み用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理（供給媒体からソフトウエアを供給した場合）と同様の処理を行う。）
【０３４６】
従って、本発明の実施の形態の機械語コード組込装置（電子機器）によれば、ソフトウエアが格納された媒体を各種媒体挿入口１０１６ａに挿入し、所望のバイナリ組み込み用プログラムを選択することによって、又は、初期設定された組み込み指標、又は、組み込み用プログラム指標を示すファイル又はデータに記載された組み込み指標、並びに／若しくは、組み込み用プログラム指標、及び／又は、組み込み用プログラムに基づいて、そのソフトウエアに機械語コードで、上述した本明細書中全てに記載されているプログラム、例えば、上述した一電子機器動作許可の機能を有するプログラムを初め、機能を有する手段であるプログラムがバイナリの状態で組み込まれたソフトウエアを媒体に格納することができる（一電子機器動作許可機械語コード組込装置（電子機器）とすることができる）。
【０３４７】
尚、組込状態表示釦１０１２ｂを備えている場合は、組込状態表示釦１０１２ｂは、組み込みの処理の始まり及び組み込み処理中は点灯し、処理が終わると消灯する。
【０３４８】
図１０（３）は、機械語コード組込装置（電子機器）１０００cの概観の構成を示す斜視図である。
【０３４９】
機械語コード組込装置（電子機器）１０００cは、矩形の容器で覆われ、各種媒体入出力（挿入口）１０１６ｃ、及び／又は組込状態表示釦１０１７cと、各種処理開始用釦１０２１ｃと、及び／又は各種媒体入出力（挿入口）１０２２ｃと、及び／又は各種処理開始用釦１０２５ｃとから構成されている。
【０３５０】
図１１（３）は、機械語コード組込装置（電子機器）１０００cの構成を示すブロック図である。
【０３５１】
機械語コード組込装置（電子機器）１０００cは、ＣＰＵ（Centrcl・Processing・Unit）１０１１c、ＲＯＭ（Recd・Only・Memory）１０１２c、ＲＡＭ（Rcndom・Access・Memory）１０１３c、バス１０１４c、入出力インターフェイス１０１５c、各種媒体入出力１０１６cと、及び／又は各種処理開始用釦１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N））と、及び／又は各種媒体入出力１０２２cと、及び／又は（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃと、及び／又は各種処理開始用釦１０２５ｃ（１０２５ｃ−１〜１０２５ｃ−N）とから構成されている。尚、各種媒体入出力１０１６c，各種媒体入出力１０２２c，各種処理開始用釦１０２５ｃとしては、各種ケーブル等も含まれるものとする。また、各種媒体入出力１０１６ｃ、各種媒体入出力１０２２ｃは、各種媒体に応じた挿入口又はコネクタとすることができ、図１１（３）中においても、各種媒体に応じた挿入口又はコネクタの形状に応じたものとすることができる。
【０３５２】
ＣＰＵ１０１１cは、ＲＯＭ１０１２cに記憶されているプログラムに従って、各種の処理を実行する。ＲＡＭ１０１３cは、ＣＰＵ１０１１cが各種の処理を実行する上において必要なデータ、プログラム等が、適宜記憶される。入出力インターフェイス１０１５cは、各種媒体入出力１０１６c、及び／又は組込状態表示釦１０１７c、各種処理開始用釦１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N）、及び／又は各種媒体入出力１０２２c、及び／又は（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃ、及び／又は各種処理開始用釦１０２５ｃ（１０２５ｃ−１〜１０２５ｃ−N）に対する入出力のインターフェース処理を実行する。
【０３５３】
機械語コード組込装置（電子機器）１０００cは、各種媒体挿入口１０１６ｃにソフトウエアが格納された媒体が挿入され、上述した一電子機器動作許可の機能を有するプログラムを初め、機能を有する手段であるプログラムである所望のバイナリ組み込み用プログラムを各種処理開始用釦１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N）によって選択することによって、選択したプログラムをソフトウエアにバイナリの状態で組み込み、組み込んたソフトウエアを媒体に格納する。これらの初期設定は、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃを有している場合、機械語コード組込装置（電子機器）１０００ｃに、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃを介して（選択）操作機（コンピュータ）１０２４aを接続することにより表示される選択（又はメニュー表示画面選択）手段からの選択により決定される。その他の各種設定、各種（選択）操作もこの（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃを介して（選択）操作機（コンピュータ）１０２４ｃにより行われる。
【０３５４】
尚、各種媒体挿入口１０１６ｃに、ソフトウエア、及び／又は、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル又はデータ、及び／又は、組み込み用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアに組み込み用プログラムがバイナリの状態で格納され（高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、組み込み用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理（供給媒体からソフトウエアを供給した場合）と同様の処理を行う。）
【０３５５】
また、各種媒体挿入口１０２２ｃを備えている場合、各種媒体挿入口１０２２ｃに組み込み用のプログラムが格納された各種媒体を挿入することによって、各種媒体のどの組み込み用のプログラムを追加及び／又はどの記憶されている組み込み用のプログラムと入れ替えるのかを組み込み用プログラム選択釦１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N）によって、又は、（組み込み用プログラム選択釦１０２５ｃ（１０２５ｃ−１〜１０２５ｃ−N））が備えられている場合、組み込み用プログラム選択釦１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N）によってソフトウエアを、組み込み用プログラム選択釦１０２５ｃ（１０２５ｃ−１〜１０２５ｃ−N））によって組み込み用プログラムを、選択決定することができる。これは、高級言語で記載されたプログラムでもよく、高級言語で記載されたプログラムが挿入された場合は、高級言語用のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で記憶される。この機械語で供給されるか高級言語のプログラムで供給されるかどの高級言語で供給されるかの選択も、選択（又はメニュー表示画面選択）手段から選択決定することができる。また、供給されたソフトウエアの初め、途中（何バイト目か等）、最後のどの箇所に組み込まれるかの判断も初期設定により決定される。これらの初期設定は、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃを有している場合、機械語コード組込装置（電子機器）１０００ｃに、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃを介して（選択）操作機（コンピュータ）１０２４ｃを接続することにより表示される選択（又はメニュー表示画面選択）手段からの選択により決定される。
【０３５６】
尚、各種媒体挿入口１０１６ｃ又は各種媒体挿入口１０２２ｃに、ソフトウエア、及び／又は、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル又はデータ、及び／又は、組み込み用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアに組み込み用プログラムがバイナリの状態で格納され（高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、組み込み用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理（供給媒体からソフトウエアを供給した場合）と同様の処理を行う。）
【０３５７】
従って、本発明の実施の形態の機械語コード組込装置（電子機器）によれば、ソフトウエアが格納された媒体を各種媒体挿入口１０１６ａに挿入し、所望のバイナリ組み込み用プログラムを各種処理開始用釦１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N）及び／又は各種処理開始用釦１０２５ｃ（１０２５ｃ−１〜１０２５ｃ−N）によって選択することによって、又は、初期設定された組み込み指標、又は、組み込み用プログラム指標を示すファイル又はデータに記載された組み込み指標、並びに／若しくは、組み込み用プログラム指標、及び／又は、組み込み用プログラムに基づいて、ソフトウエアに所望のバイナリ組み込み用プログラムである機能を有する手段であるプログラムがバイナリの状態で組み込まれ、組み込まれたソフトウエアを媒体に格納することができる（一電子機器動作許可機械語コード組込装置（電子機器）とすることができる）。
【０３５８】
尚、組込状態表示釦１０１２cを備えている場合は、組込状態表示釦１０１２cは、組み込みの処理の始まり及び組み込み処理中は点灯し、処理が終わると消灯する。
【０３５９】
尚、以上においては、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を使用したが、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等）を使用するようにしてもよい。この場合、ソフトウエアは高級言語で記載されたものであってもよく、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、高級言語のコンパイラでコンパイルした後に、組み込み用プログラムがバイナリの状態で実行体に格納される。また、ソフトウエアも組み込み用プログラムも高級言語で記載されている場合であって、組み込み指標と組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納する。また、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）と組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）との２つのファイルを用いたが、２つのファイル又はデータを１つとした組み込み/組み込み用プログラム指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、初期設定をするかどうか等、どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、初期設定を行うかどうか等）を共有して使用するようにしてもよい。
【０３６０】
以上に説明した機械語コード組込装置（電子機器）をシステム集積回路（IC（Integrated・Circuit）,チップ）化してもよい。
【０３６１】
図１２は、機械語コード組込装置（電子機器）をシステム集積回路（IC（Integrated・Circuit）,チップ）化した構成を示す図である。
【０３６２】
図１２（１）は、機械語コード組込システム集積回路１２００aの概観の構成を示す図である。
【０３６３】
機械語コード組込システム集積回路１２００は、本発明の機械語コード組込装置（電子機器）がシステム集積回路（IC（Integrated・Circuit）,チップ）化され、平らな、例えばプラスチック製（材質はプラスチック製に限らずどのようなものであってもよい）、の容器に格納され、外には端子が突き出した概観となっている。
【０３６４】
図１２（２）は、機械語コード組込システム集積回路１２００の構成を示すブロック図である。
【０３６５】
図１２（２−１）は、機械語コード組込システム集積回路１２００がそれ自身単独で機械語コード組込システム集積回路１２００の機能（選択）操作不可能な電子機器に装着された場合の構成を示すブロック図であり、図１２（２−２）は、機械語コード組込システム集積回路１２００がそれ自身単独で機械語コード組込システム集積回路１２００の機能（選択）操作が可能又は不可能なコンピュータに装着された場合の構成を示すブロック図である。
【０３６６】
機械語コード組込システム集積回路１２００aは、ＣＰＵ（Centrcl・Processing・Unit）１２１１、ＲＯＭ（Recd・Only・Memory）１２１２a、ＲＡＭ（Rcndom・Access・Memory）１２１３a、バス１２１４a、入出力インターフェイス１２１５aとから構成されている。
【０３６７】
機械語コード組込システム集積回路１２００aは、それ自身単独で機械語コード組込システム集積回路１２００aの機能（選択）操作不可能な電子機器に装着されており、電子機器は、及び／又は各種媒体集出力１２１６aが備えられており、（選択）操作機１２２７aを接続することにより、キーボード１２１８a、マウス１０１９a、ディスプレイ１０２０aが備えられた（選択）操作機１２２７aにより機械語コード組込システム集積回路１２００aの機能（選択）操作が可能な構成となっている。
【０３６８】
ＣＰＵ１２１１aは、ＲＯＭ１２１２aに記憶されているプログラムに従って、各種の処理を実行する。ＲＡＭ１２１３aは、ＣＰＵ１２１１aが各種の処理を実行する上において必要なデータ、プログラム等が、適宜記憶される。入出力インターフェイス１２１５aは、装着した電子機器の各要素（各回路、各素子）、及び／又は、さらに接続された（選択）操作機１２２７aに対する入出力のインターフェース処理を実行する。
【０３６９】
機械語コード組込システム集積回路１２００bは、ＣＰＵ（Centrcl・Processing・Unit）１２１１、ＲＯＭ（Recd・Only・Memory）１２１２b、ＲＡＭ（Rcndom・Access・Memory）１２１３b、バス１２１４b、入出力インターフェイス１２１５bとから構成されている。
【０３７０】
機械語コード組込システム集積回路１２００ｂは、それ自身単独で（機械語コード組込システム集積回路１２００ｂの機能（選択））操作可能又は不可能なコンピュータに装着されており、前記コンピュータは、及び／又は各種媒体集出力１２１６a、及び／又はキーボード１２１８a、及び／又はマウス１０１９a、及び／又はディスプレイ１０２０aが備えられており、又は、さらに、（選択）操作機１２２７ｂを接続することにより、キーボード１２１８a、マウス１２２９a、ディスプレイ１２２０aが備えられた（選択）操作機１２２７ｂにより（（機械語コード組込システム集積回路１２００ｂの機能（選択））操作が可能な構成となっている。
【０３７１】
ＣＰＵ１２１１bは、ＲＯＭ１２１２bに記憶されているプログラムに従って、各種の処理を実行する。ＲＡＭ１２１３bは、ＣＰＵ１２１１bが各種の処理を実行する上において必要なデータ、プログラム等が、適宜記憶される。入出力インターフェイス１２１５は、装着した電子機器又はコンピュータの各要素（各回路、各素子）、及び／又は、さらに接続された（選択）操作機１２２７ｂに対する入出力のインターフェース処理を実行する。
【０３７２】
（電子機器又はコンピュータ上の実行体に組み込み用プログラムをバイナリの状態で組み込む）
電子機器又はコンピュータに機械語コード組込システム集積回路１２００を装着することにより、機械語コード組込システム集積回路１２００を装着された電子機器又はコンピュータでは、集積回路組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、集積回路組み込み指標選択（又は画面表示選択）手段（機械語コード組込システム集積回路の初期設定用のソフトウエア）が表示され、選択（又は画面表示選択）手段により選択した集積回路組み込み指標に基づいて、電子機器又はコンピュータ上に存在するプログラムのうちの、集積回路組み込み指標で設定された実行体の集積回路組み込み指標で設定された位置に、集積回路組み込み指標で設定された内蔵の組み込み用プログラムが、実行体の停止中に（電子機器又はコンピュータ上のプログラムの実行体の実行を監視し、停止中に）バイナリの状態で組み込まれる。これらの実行体への組み込みは、電子機器又はコンピュータ上に存在する全てのプログラムに対して行えるように集積回路組み込み指標を定義すれば、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上に存在する全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる（１電子機器唯一動作許可機械語コード組込システム集積回路とすることができる）。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上する。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標選択（又は画面表示選択）手段（機械語コード組込システム集積回路の初期設定用のソフトウエア）により、集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標の各種設定変更を行うことができる。
【０３７３】
（B並びに／若しくはD及び／又はC）
また、媒体入出力手段を有している場合、媒体に（Ｂ）集積回路組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）、並びに／若しくは、（Ｄ）集積回路組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル若しくはデータ、及び／又は（Ｃ）集積回路組み込み用プログラムを供給すると、供給された（Ｂ）集積回路組み込み指標、並びに／若しくは、（Ｄ）集積回路組み込み用プログラム指標、及び／又は（Ｃ）集積回路組み込み用プログラムに基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標に基づいて、（Ｂ）集積回路組み込み指標並びに／若しくは、（Ｄ）集積回路組み込み用プログラム指標の設定が変更され、及び／又は、組み込み用プログラムの追加、変更、及び／又は削除される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標の各種設定変更を行うことができる。
（B）
また、媒体入出力手段を有している場合、媒体に（Ｂ）集積回路組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を供給すると、供給された（Ｂ）集積回路組み込み指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）集積回路組み込み指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｂ）集積回路組み込み指標に基づいて、（Ｂ）集積回路組み込み指標の設定が変更される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標の各種設定変更を行うことができる。
（D）
また、媒体入出力手段を有している場合、媒体に（Ｄ）集積回路組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル若しくはデータを供給すると、供給された（Ｄ）集積回路組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｄ）集積回路組み込み用プログラム指標に基づいて、（Ｄ）集積回路組み込み用プログラム指標の設定が変更され、及び／又は、組み込み用プログラムの追加、変更、及び／又は削除される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標の各種設定変更を行うことができる。
（C）
また、（Ｃ）集積回路組み込み用プログラムを供給すると、設定されている（Ｄ）集積回路組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｄ）集積回路組み込み用プログラム指標に基づいて、（Ｃ）集積回路組み込み用プログラムが追加／変更／削除される。この場合、組み込み用プログラムが機械語ではなく、高級言語で記載されたプログラムである場合、選択された高級言語でコンパイルし、機能を有する手段のみがバイナリの状態で格納される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標の各種設定変更を行うことができる。
（D＋C）
また、媒体に（Ｄ）集積回路組み込み用プログラム指標を示すファイル又はデータと共に、（Ｃ）集積回路組み込み用プログラムを供給すると、（Ｄ）集積回路組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段により選択された（Ｄ）集積回路組み込み用プログラム指標に基づいて、（Ｄ）集積回路組み込み用プログラム指標を変更することができ、（Ｃ）組み込み用プログラムの追加、変更、及び／又は削除が行える。この場合、（Ｃ）組み込み用プログラムは、機械語であってもよく、高級言語で記載されたものであってもよく、（Ｄ）組み込み用プログラム指標によって設定された指標によって組み込みが行われ、高級言語の場合、選択された高級言語でコンパイルし、機能を有する手段のみがバイナリの状態で格納される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により選択された（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標に基づいて、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行うことができ、（Ｃ）組み込み用プログラムの追加、変更、及び／又は削除が行える。この場合、（Ｃ）組み込み用プログラムは、機械語であってもよく、高級言語で記載されたものであってもよく、（Ｄ）組み込み用プログラム指標によって設定された指標によって組み込みが行われ、高級言語の場合、選択された高級言語でコンパイルし、機能を有する手段のみがバイナリの状態で格納される。
【０３７４】
（供給媒体からソフトウエアを供給した場合）説明箇所初め
【０３７５】
（媒体ソフト供給組み込み）組み込み指標及び／又は組み込み用プログラム指標を集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標と同じファイルを使用する場合）
【０３７６】
また、媒体入出力手段を有している場合、媒体に（Ａ）ソフトウエアを供給すると、設定された（Ｂ）集積回路組み込み指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）集積回路組み込み指標選択（又は画面表示選択）手段が表示され、（Ｂ）集積回路組み込み指標選択（又は画面表示選択）手段により選択された（Ｂ）集積回路組み込み指標に基づいて、実行体に組み込み用プログラムがバイナリの状態で組み込まれる。この設定は、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行える。
【０３７７】
また、以上においては、供給媒体からソフトウエアを供給した場合、電子機器又はコンピュータ上の実行体が使用する集積回路組組み込み指標と集積回路組組み込み用プログラム指標と同じ指標ファイルを使用するようにしたが、及び／又は、供給媒体から供給されたソフトウエアに対しては、組み込み指標と組み込み用プログラム指標の別指標ファイルを使用するようにしてもよい。以下に、供給媒体から供給されたソフトウエアに対しては、組み込み指標と組み込み用プログラム指標の別指標ファイルを使用するようにした場合について説明する。
【０３７８】
（媒体ソフト供給組み込み）（組み込み指標及び／又は組み込み用プログラム指標を集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶する場合）
（B）
また、媒体入出力手段を有している場合、媒体に（Ｂ）組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を示すファイル若しくはデータを供給すると、供給された（Ｂ）組み込み指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）組み込み指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｂ）組み込み指標に基づいて、（Ｂ）組み込み指標が変更される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行うことができる。
（A）
また、媒体入出力手段を有している場合、媒体に（Ａ）ソフトウエアを供給すると、設定された組み込み指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）組み込み指標選択（又は画面表示選択）手段が表示され、（Ｂ）組み込み指標選択（又は画面表示選択）手段により選択された（Ｂ）組み込み指標に基づいて、実行体に組み込み用プログラムがバイナリの状態で組み込まれる。この設定は、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行える。
（A＋B）
また、媒体に（Ｂ）組み込み指標を示すファイル又はデータと共に（Ａ）ソフトウエアを供給すると、設定されている（Ｂ）組み込み指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）組み込み指標選択（又は画面表示選択）手段が表示され、（Ｂ）組み込み指標選択（又は画面表示選択）手段により選択された（Ｂ）組み込み指標に基づいて、実行体に（Ｃ）組み込み用プログラムがバイナリの状態で組み込まれる。選択手段を有している場合は、選択画面が表示され、どのソフトウエアのどの位置にどの組み込み用プログラムを組み込むのかを選択し、選択されたソフトウエアに選択した（Ｃ）組み込み用プログラムを組み込むことができる。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行うことができる。
【０３７９】
（媒体組み込み用プログラム変更）（組み込み指標及び／又は組み込み用プログラム指標を集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶する場合）
（D）
また、媒体入出力手段を有している場合、媒体に（Ｄ）組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、（Ｃ）組み込み用プログラムの順序、（Ｃ）組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を示すファイル若しくはデータを供給すると、供給された（Ｄ）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｄ）組み込み用プログラム指標に基づいて、（Ｄ）組み込み用プログラム指標の設定が変更される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行うことができる。
（C）
また、媒体に（Ｃ）組み込み用プログラムを供給すると、設定されている（Ｄ）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により選択された（Ｄ）組み込み用プログラム指標に基づいて、（Ｃ）組み込み用プログラムが追加、変更、及び／又は削除される。この初期設定は、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、Ｄ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行える。
（D+C）
また、媒体に（Ｄ）組み込み用プログラム指標を示すファイル又はデータと共に、（Ｃ）組み込み用プログラムを供給すると、（Ｄ）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により選択された（Ｄ）組み込み用プログラム指標に基づいて、（Ｄ）組み込み用プログラム指標を変更することができ、（Ｃ）組み込み用プログラムの追加、変更、及び／又は削除が行える。この場合、（Ｃ）組み込み用プログラムは、機械語であってもよく、高級言語で記載されたものであってもよく、（Ｄ）組み込み用プログラム指標によって設定された指標によって組み込みが行われ、高級言語の場合、選択された高級言語でコンパイルし、機能を有する手段のみがバイナリの状態で格納される。また、電子機器の（選択）操作機又はコンピュータ若しくはコンピュータの（選択）操作機が表示手段を有し、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段を有している場合は、機械語かどの高級言語かの（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、機械語かどの高級言語かを選択し、高級言語の場合、選択された高級言語でコンパイルし、機能を有する手段のみをバイナリの状態で格納する。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行うことができる。
【０３８０】
また、以上においては、供給媒体から供給されたソフトウエアに対しては、組み込み指標と組み込み用プログラム指標の別指標ファイルを使用し、それら指標を記憶するようにした場合を示したが、及び／又は、記憶しないようにしてもよい。以下に、供給媒体から供給されたソフトウエアに対しては、組み込み指標と組み込み用プログラム指標を供給し、それらの指標を記憶しないようにした場合について説明する。
【０３８１】
（媒体ソフト供給組み込み）（組み込み指標及び／又は組み込み用プログラム指標を集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶しない場合）
（ソフトウエア＋組み込み指標＋組み込み用プログラム＋組み込み用プログラム指標）
また、媒体に（Ａ）ソフトウエアと（Ｂ）組み込み指標を示すファイル又はデータと（Ｃ）組み込み用プログラムと（Ｄ）組み込み用プログラム指標を供給すると、（Ｂ）組み込み指標と（Ｄ）組み込み用プログラム指標に基いて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段による（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択により、実行体に供給した組み込み用プログラムが組み込まれる。この際、（Ｂ）組み込み指標及び（Ｄ）組み込み用プログラム指標の設定は変更されない。
【０３８２】
尚、以上において、（媒体ソフト供給組み込み）の群のうちの少なくとも1つと、（媒体組み込み用プログラム変更）の群内のうちの少なくとも1つが供給された場合、（媒体組み込み用プログラム変更）の群の処理が終ってから、（媒体ソフト供給組み込み）の群の処理を行うようにしており、かつ、（媒体ソフト供給組み込み）の群と（媒体組み込み用プログラム変更）群では、英字のＺに近い方から処理を行うようにしているが、任意の組み合わせの処理順に処理するようにしてもよい。また、選択画面表示では、（媒体ソフト供給組み込み）の群と（媒体組み込み用プログラム変更）の群のうちの少なくとも1つの組が供給された場合、対応する選択手段を表示するようにしているが、（媒体ソフト供給組み込み）の群と（媒体組み込み用プログラム変更）の群のうちの少なくとも1つの組が供給された場合、画面としては両画面が同時のように表示するようにしてもよい。この場合、選択処理は、上述した処理順で行うようにしてもよいが、（媒体ソフト供給組み込み）の群、（媒体組み込み用プログラム変更）の群の任意の組み合わせで供給された場合、どれから処理を行うようにしてもよく、選択画面表示では、（媒体ソフト供給組み込み）の群と（媒体組み込み用プログラム変更）の群のうちの少なくとも1つの組が供給された場合、同時のように表示し、設定中の処理順に処理してもよく、それ以外の処理順に処理してもよく、設定中の処理順に、（媒体ソフト供給組み込み）の選択（又は画面表示選択）処理、（媒体組み込み用プログラム変更）の選択（又は画面表示選択）処理を別々に行うようにしてもよい。
【０３８３】
尚、以上において、（集積回路）組み込み指標及び／又は（集積回路）組み込み用プログラム指標に、集積回路組み込み指標と組み込み指標及び／又は集積回路組み込み用プログラム指標と組み込み用プログラム指標とを別ファイルとするかどうかの指標、集積回路組み込み指標と組み込み指標及び／又は集積回路組み込み用プログラム指標と組み込み用プログラム指標とを別ファイルとして組み込み指標及び／又は組み込み用プログラム指標を記憶しないか又は記憶するかどうかの指標を設けるようにし、（集積回路）組み込み指標及び／又は（集積回路）組み込み用プログラム指標に基づいて別ファイルとするか、別ファイルとして記憶しないか又は記憶するかを判断するようにしてもよい。即ち、（集積回路）組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、（集積回路）組み込み指標と組み込み指標とを別のファイルとするか、（集積回路）組み込み指標と組み込み指標とを別のファイルとし、組み込み指標を記憶するか、及び／又は、初期設定をするかどうか等）、組み込み用プログラム及び／又は（集積回路）組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、（集積回路）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとするか、（集積回路）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとし、組み込み用プログラム指標を記憶するか、並びに／若しくは初期設定を行うかどうか等）に基づいて別ファイルとするか、別ファイルとして記憶しないか又は記憶するかを判断するようにしてもよい。
【０３８４】
以下に、供給媒体に、ソフトウエア、組み込み指標、組み込み用プログラム、及び／又は、組み込み用プログラム指標が供給された場合について、詳細に説明する。また、ソフトウエア、組み込み指標、組み込み用プログラム、及び／又は、組み込み用プログラム指標は、其々、電子機器又はコンピュータ上に存在する実行体、集積回路組み込み指標、集積回路組み込み用プログラム、及び／又は、集積回路組み込み用プログラム指標と置き換えれば、電子機器又はコンピュータ上に存在する実行体、集積回路組み込み指標、集積回路組み込み用プログラム、及び／又は、集積回路組み込み用プログラム指標の場合に適用が可能である。
【０３８５】
（ソフトウエア）
また、媒体入出力手段を有している場合、ソフトウエアを供給すると、初期設定された組み込み指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標選択（又は画面表示選択）手段による組み込み指標選択により、実行体に組み込み用プログラムがバイナリの状態で組み込まれる。
（ソフトウエア＋組み込み用プログラム）
また、媒体入出力手段を有している場合、ソフトウエアと組み込み用プログラムを供給すると、初期設定された組み込み指標と組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標選択により、実行体に組み込み用プログラムがバイナリの状態で組み込まれ、並びに／若しくは、組み込み用プログラムが追加、変更、及び／又は削除され、及び／又は、組み込み用プログラム指標が変更される。
（ソフトウエア＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、ソフトウエアと組み込み用プログラム指標を供給すると、初期設定された組み込み指標と組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標選択により、実行体に組み込み用プログラムがバイナリの状態で組み込まれ、並びに／若しくは組み込み用プログラム指標が変更される。
【０３８６】
（ソフトウエア＋組み込み指標）
また、媒体入出力手段を有している場合、媒体にソフトウエアと共に組み込み指標を示すファイル又はデータを供給すると、組み込み指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標選択（又は画面表示選択）手段による組み込み指標選択により、実行体に組み込み用プログラムがバイナリの状態で組み込まれる。この際、組み込み指標の初期設定が変更の場合、組み込み指標の初期設定も変更される。
（ソフトウエア＋組み込み指標＋組み込み用プログラム）
また、媒体入出力手段を有している場合、媒体にソフトウエアと組み込み指標を示すファイル又はデータと組み込み用プログラムを供給すると、組み込み指標と初期設定された組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、実行体に組み込み用プログラムがバイナリの状態で組み込まれ、並びに／もしくは、組み込み用プログラムが追加、変更、及び／又は削除され、及び／又は、組み込み用プログラム指標が変更される。この際、組み込み指標の初期設定が変更の場合、組み込み指標の初期設定も変更される。
（ソフトウエア＋組み込み指標＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体にソフトウエアと組み込み指標を示すファイル又はデータと組み込み用プログラム指標を供給すると、組み込み指標と初期設定された組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、実行体に組み込み用プログラムがバイナリの状態で組み込まれる。この際、組み込み指標の初期設定が変更の場合、組み込み指標の初期設定も変更される。
【０３８７】
（組み込み指標）
また、媒体入出力手段を有している場合、媒体に組み込み指標を示すファイル又はデータを供給すると、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標選択（又は画面表示選択）手段による組み込み指標選択により、初期設定の組み込み指標が変更される。
（組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み用プログラム指標を示すファイル又はデータを供給すると、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み用プログラム指標選択により、初期設定の組み込み用プログラム指標が変更される。
（組み込み指標＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み指標と組み込み用プログラム指標を示すファイル又はデータを供給すると、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、初期設定の組み込み指標及び／又は組み込み用プログラム指標が変更される。
（組み込み用プログラム）
また、媒体入出力手段を有している場合、組み込み用プログラムを供給すると、初期設定された媒体に組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される媒体に組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標選択により、組み込み用プログラムが追加、変更、及び／又は削除され、及び／又は、組み込み用プログラム指標が変更される。
（組み込み指標＋組み込み用プログラム）
また、媒体入出力手段を有している場合、媒体に組み込み指標を示すファイル又はデータと組み込み用プログラムを供給すると、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、初期設定の組み込み指標が変更され、並びに／若しくは、組み込み用プログラムが追加、変更、及び／又は削除され、及び／又は、組み込み用プログラム指標が変更される。
【０３８８】
（組み込み用プログラム＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み用プログラムと共に組み込み用プログラム指標を示すファイル又はデータを供給すると、組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み用プログラム指標選択により、組み込み用プログラムが追加、変更、及び／又は削除される。この際、組み込み用プログラム指標の初期設定が変更の場合、組み込み用プログラム指標の初期設定も変更される。
（ソフトウエア＋組み込み用プログラム＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体にソフトウエアと組み込み用プログラムと組み込み用プログラム指標を供給すると、初期設定された組み込み指標と組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、実行体に組み込み用プログラムがバイナリの状態で組み込まれる。この際、組み込み用プログラム指標の初期設定が変更の場合、組み込み用プログラム指標の初期設定も変更される。
（組み込み指標＋組み込み用プログラム＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み用プログラム指標と組み込み用プログラムと組み込み用プログラム指標を供給すると、初期設定された組み込み指標と組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、実行体に組み込み用プログラムがバイナリの状態で組み込まれる。この際、組み込み指標の初期設定が変更の場合、組み込み指標の初期設定も変更され、組み込み用プログラム指標の初期設定が変更の場合、組み込み用プログラム指標の初期設定も変更される。
【０３８９】
（ソフトウエア＋組み込み指標＋組み込み用プログラム＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体にソフトウエアと組み込み指標を示すファイル又はデータと組み込み用プログラムと組み込み用プログラム指標を供給すると、組み込み指標と組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、実行体に組み込み用プログラムがバイナリの状態で組み込まれる。この際、組み込み指標の初期設定が変更の場合、組み込み指標の初期設定も変更され、組み込み用プログラム指標の初期設定が変更の場合、組み込み用プログラム指標の初期設定も変更される。
【０３９０】
（供給媒体からソフトウエアを供給した場合）説明箇所終
【０３９１】
以上のように、本発明の実施の形態の機械語コード組込システム集積回路を電子機器又はコンピュータに装着しているだけで、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上にある全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上する。
【０３９２】
尚、以上においては、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を使用したが、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等）を使用するようにしてもよい。この場合、ソフトウエアは高級言語で記載されたものであってもよく、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、高級言語のコンパイラでコンパイルされた後に、組み込み用プログラムがバイナリの状態で実行体に格納される。また、ソフトウエアも組み込み用プログラムも高級言語で記載されている場合であって、組み込み指標と組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体に、コンパイルした組み込み用プログラムをバイナリの状態で実行体に格納される。また、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）と組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）との２つのファイルを用いたが、２つのファイル又はデータを１つとした組み込み/組み込み用プログラム指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、初期設定をするかどうか等、どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、初期設定を行うかどうか等）を共有して使用するようにしてもよい。
【０３９３】
また、以上に説明した本発明の実施の形態の機械語コード組込システム集積回路１２００を電子機器又はコンピュータ上に装着した場合、初期設定又は選択手段による選択により、組み込みを行うようにしたり行わないように選択できるようにしてもよい。また、実行体に組み込み用プログラムを組み込んだ後に、実行体への組み込み用プログラムの組み込みを解除（即ち、実行体に組み込んだ組み込み用プログラムを削除して元の実行体の状態に戻す）できるようにしてもよい（詳細は後述する組み込み処理の逆の処理である組み込み削除の処理（（組み込み削除の処理説明箇所初め）〜（組み込み削除の処理説明箇所終））に記す。）。この解除も、初期設定又は選択手段による選択（（集積回路）組み込み指標及び／又は（集積回路）組み込み用プログラム指標に、上述した（集積回路）組み込み指標及び／又は（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等をさらに追加したものを使用し、追加した指標に対応した処理を実行することにより、組み込み処理と同様の動作で、組み込み削除を行うことができる。）により、選択した実行体にのみ行えるようにしてもよい（詳細は後述する組み込み処理の逆の処理である組み込み削除の処理（（図１０〜図１２に対応した組み込み削除の処理説明箇所初め）〜（図１０〜図１２に対応した組み込み削除の処理説明箇所終））に記す。）。また、媒体入出力手段により読み取った組み込み用プログラムは、電子機器又はコンピュータに内蔵の不揮発性のメモリに格納するようにしてもよいし、機械語コード組込システム集積回路１２００内に内蔵されている又はさらに内蔵する不揮発性のメモリ（，さらに内蔵する書き込み回路）に格納するようにしてもよい。
【０３９４】
また、以上に説明した本発明の実施の形態の機械語コード組込システム集積回路１２００を本発明の実施の形態の機械語コード組込システム供給若しくは配布媒体とし、電子機器又はコンピュータの媒体供給入出力に挿入することによって、機械語コード組込システム集積回路１２００と同様の処理を施す、本発明の実施の形態の機械語コード組込システム供給若しくは配布媒体としてもよい。このようにすれば、機械語コード組込システム供給若しくは配布媒体を電子機器又はコンピュータに挿入（装着）しているだけで、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上にある全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる（１電子機器唯一動作許可機械語コード組込システム供給若しくは配布媒体とすることができる）。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上する。図１２（１−１）では、供給若しくは配布媒体をUSB（Universal・Serial・Bus）フラッシュメモリとした場合の実施例である機械語コード組込システム供給若しくは配布媒体１２００−１が示されている（供給若しくは配布媒体としては、詳細は後述するが、例えば、USBフラッシュメモリ、USBHDD(Hard・Disk・Drive)、MO、DVD−ROM、CD-ROM、フロッピー（登録商標）ディスク等の各種媒体とすることができる）。機械語コード組込システム供給若しくは配布媒体１２００−１を電子機器又はコンピュータの媒体供給入出力に挿入（装着）時は、集積回路組み込み指標と集積回路組み込み用プログラム指標とが供給若しくは配布媒体組み込み指標と供給若しくは配布媒体組み込み用プログラム指標として使用され、組み込み指標と組み込み用プログラム指標とが他の媒体供給入出力に供給された供給媒体で使用されるものとなる。また、機械語コード組込システム供給若しくは配布媒体１２００−１の構成は、図１２（２）に示すように、機械語コード組込システム集積回路１２００と同様の構成をしており、同様の動作を行う。
【０３９５】
（組み込み削除の処理説明箇所初め）
上述した、バイナリの状態での実行体への機械語コード組み込み方法に対応したバイナリの状態での実行体からの機械語コード組み込み削除方法を示す、機械語コードの組み込み削除(解除)装置及び方法である、本発明の実施の形態の機械語コード組み込み削除装置及び方法について、図９を参照しつつ説明する。
【０３９６】
以下に説明するのは、実行体のファイルフォーマットがＰＥ（Portable・Executable）ファイルフォーマットの場合のバイナリの状態での実行体への機械語コード組み込み削除装置及び方法である。
【０３９７】
図９（１）に示すバイナリ状態での実行体への機械語コード組み込み削除装置は、コードセクションのコード内にコードセクション内のプログラム開始位置にジャンプする箇所がある場合（例えば、デバッグ情報が挿入されている場合）であり、挿入されているバイナリコードには、システムコールまでしか使用していない場合（例えば、Windows（登録商標）の場合、dllの呼び出しのコードを使用せずに、使用してもシステムコールまでしか使用しない場合、コードセクションよりも前に、挿入されているバイナリコードを削除し、実行体のバイナリファイルからコードセクション内のプログラム開始位置にジャンプするコードセクション内のプログラム開始位置が記載されている領域を検索し、検索したコードセクション内のプログラム開始位置をプログラム開始位置から削除したバイナリコードのサイズ分加算したアドレスに変更する。また、削除したバイナリコードがデータを使用している場合、データセクションからデータを削除する。また、削除したバイナリコードが他のデータセクションのデータを使用している場合、他のデータセクションからデータを削除する。また、コードを削除したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う。削除したバイナリコードが大きく、コードサイズが減少する場合、減少後のコードサイズよりも大きい規定サイズの大きさにコードセクションヘッダー内のコードサイズを変更し、コードセクション以外の他のセクションヘッダー内の他のセクションの開始アドレスを減少したコードサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は減少したコードサイズ分ずらす。削除した他のセクションサイズが大きく、他のセクションサイズが減少する場合、減少後の他のセクションサイズよりも大きい規定サイズの大きさに他のセクションヘッダー内の他のセクションサイズを変更し、コードセクション以降の他のセクションの開始アドレスを減少した他のセクションサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は減少したサイズ分ずらす。尚、コードセクション内のプログラム開始位置の検索は、ＰＥヘッダ、コードセクションヘッダ内の検索により行われる。
【０３９８】
図９（２）に示すバイナリ状態での実行体への機械語コード組み込み削除装置は、コード内にコードセクション内のプログラム開始位置にジャンプする箇所がある場合（例えば、デバッグ情報が挿入されている場合）であり、実行体ではなく、関数群が組み込まれているファイル（例えば、Windows（登録商標）の場合、dll）に組み込まれている関数を使用し呼び出すコードが使用されている場合、コードセクションよりも前に、挿入されているバイナリコードを削除し、実行体のバイナリファイルからコードセクション内のプログラム開始位置にジャンプするコードセクション内のプログラム開始位置が記載されている領域を検索し、検索したコードセクション内のプログラム開始位置をプログラム開始位置から削除したバイナリコードのサイズ分加算したアドレスに変更する。そして、削除したバイナリコードが使用しているｄｌｌ関数をコード内の他の箇所で参照しているかどうかを検索し、参照していない場合、インポートセクションからｄｌｌ関数を削除し、ｄｌｌ関数が属するｄｌｌの他のｄｌｌ関数をコード内の他の箇所で参照しているかどうかを検索し、参照していない場合、他のｄｌｌ関数及びｄｌｌをインポートセクションから削除する。そして、インポートセクションに既にあるdllとdll関数のアドレスを削除した分だけずらし、コード内にdll関数を参照しているアドレスを変更する。また、呼び出しdll関数がデータを使用している場合、データセクションからデータを削除する。また、コードを削除したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う。削除したバイナリコードが大きく、コードサイズが減少する場合、減少後のコードサイズよりも大きい規定サイズの大きさにコードセクションヘッダー内のコードサイズを変更し、コードセクション以外の他のセクションヘッダー内の他のセクションの開始アドレスを減少したコードサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は減少したコードサイズ分ずらす。削除した他のセクションサイズが大きく、他のセクションサイズが減少する場合、減少後の他のセクションサイズよりも大きい規定サイズの大きさに他のセクションヘッダー内の他のセクションサイズを変更し、コードセクション以降の他のセクションの開始アドレスを減少した他のセクションサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は減少したサイズ分ずらす。尚、コードセクション内のプログラム開始位置の検索は、ＰＥヘッダ、コードセクションヘッダ内の検索により行われる。
【０３９９】
図９（３）に示すバイナリ状態での実行体への機械語コード組み込み削除装置は、コード内にコードセクション内のプログラム開始位置にジャンプする箇所がない場合であり、図９（１）、（２）以外の場合、挿入されているバイナリコードには、システムコールまでしか使用していない場合（例えば、Windows（登録商標）の場合、dllの呼び出しのコードを使用せずに、使用してもシステムコールまでしか使用しない場合、コードセクションの初め、中間、又は最後に、挿入されているバイナリコードを削除する。また、挿入されているバイナリコードがデータを使用している場合、データセクションからデータを削除する。また、削除したバイナリコードが他のデータセクションのデータを使用している場合、他のデータセクションから削除する。また、コードを削除したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う。削除したバイナリコードが大きく、コードサイズが減少する場合、減少後のコードサイズよりも大きい規定サイズの大きさにコードセクションヘッダー内のコードサイズを変更し、コードセクション以外の他のセクションヘッダー内の他のセクションの開始アドレスを減少したコードサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は減少したコードサイズ分ずらす。削除した他のセクションサイズが大きく、他のセクションサイズが減少する場合、減少後の他のセクションサイズよりも大きい規定サイズの大きさに他のセクションヘッダー内の他のセクションサイズを変更し、コードセクション以降の他のセクションの開始アドレスを減少した他のセクションサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は減少したサイズ分ずらす。
【０４００】
図９（４）に示すバイナリ状態での実行体への機械語コード組み込み削除装置は、コード内にコードセクション内のプログラム開始位置にジャンプする箇所がない場合であり、図９（１）、（２）以外の場合、実行体ではなく、関数群が組み込まれているファイル（例えば、Windows（登録商標）の場合、dll）に組み込まれている関数を使用し呼び出すコードが使用されている場合、コードセクションの初め、中間、又は最後に、挿入されているバイナリコードを削除する。また、削除したいバイナリコードがデータを使用している場合、データセクションからデータを削除する。また、削除したバイナリコードが他のデータセクションのデータを使用している場合、他のデータセクションからデータを削除する。また、コードを削除したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う。削除したバイナリコードが大きく、コードサイズが減少する場合、減少後のコードサイズよりも大きい規定サイズの大きさにコードセクションヘッダー内のコードサイズを変更し、コードセクション以外の他のセクションヘッダー内の他のセクションの開始アドレスを減少したコードサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は減少したコードサイズ分ずらす。削除した他のセクションサイズが大きく、他のセクションサイズが減少する場合、減少後の他のセクションサイズよりも大きい規定サイズの大きさに他のセクションヘッダー内の他のセクションサイズを変更し、コードセクション以降の他のセクションの開始アドレスを減少した他のセクションサイズ分ずらし、コード内の他のセクションを参照していたアドレス（例えば、アドレスを参照命令等している箇所を検索し、コード内の他のセクションを参照していたアドレスを検索する）は減少したサイズ分ずらす。
【０４０１】
以下に、ＰＥ（Portable・Executable）フォーマットの場合の、本発明の実施の形態の機械語コード組み込み削除装置の構成及び方法を詳細に説明する。
【０４０２】
本発明の実施の形態の機械語コード組み込み削除装置は、
１．＜コードの削除＞
１．０．  組み込んだソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
組み込んだソフトウエアのコードのどの位置に機能を有する手段を挿入しているかを選択判断するコード挿入位置選択判断手段と
を有し、
１．１．組み込んだソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合（コード開始アドレスコール箇所検索手段による判断に依る）であって、コードの開始以前に機能を有する手段を挿入している場合（コード挿入位置選択判断手段による判断に依る）、
（コードセクション）ヘッダーのコードセクション開始アドレスを検索するコードセクション開始アドレス検索手段と、
コードセクション開始アドレスからコードセクション内を検索し、コード開始アドレスをコールしている箇所を検索するコードセクション内コード開始アドレスコール箇所検索手段と、
コードセクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コード開始アドレスからコードセクションの開始アドレス（又は、組み込み前のコードセクションの通常の開始アドレス）の前までに挿入したコードを削除するコード削除手段と、
コードセクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに削除した機能を有する手段のコードアドレスを加算した（又は、通常の）開始アドレスに書き換えるコールコード開始アドレス変更手段と
を有し、
１．２．組み込んだソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コードセクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コードセクションの初め、途中、又は最後に挿入した機能を有する手段のコードを削除するコード削除手段と
を有し、
２．＜データアドレスの変更＞
２．０  削除した機能を有する手段のコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又はdll関数データ使用／非使用判断手段と
を有し、
削除した機能を有する手段のコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用している場合（システムコール又はdll関数データ使用／非使用判断手段による判断に依る）、データをデータセクションから削除するデータセクション削除手段と
を有し、
３．＜削除した機能を有する手段がdllを使用している場合＞
３．０．  削除した機能を有する手段がdllを使用しているかどうかを判断する、機能を有する手段dll使用／非使用判断手段と
を有し、
３．１．＜他の箇所使用dll関数使用／非使用チェック＞
削除した機能を有する手段がｄｌｌを使用している場合（機能を有する手段dll使用／非使用判断手段による判断に依る）、
機能を有する手段が使用しているdll関数のアドレスを検索するdll関数アドレス検索手段と、
機能を有する手段が使用しているdll関数のアドレスをコード内の他の箇所で使用しているかどうかを検索する他の箇所使用dll関数アドレス使用／非使用検索手段と
を有し、
３．１．１．＜他の箇所使用dll関数を使用していない場合＞
コード内の他の箇所で使用dll関数を使用していると判断されなかった場合（他の箇所使用dll関数アドレス使用／非使用検索手段による判断に依る）、
インポートセクション内に、使用dll関数が属するdllの他のdll関数のアドレスを検索するインポートセクション内他のdll関数アドレス検索手段と
を有し、
３．１．１．１．＜インポートセクション内に他のdll関数が検索された場合＞
インポートセクション内に他のdll関数が検索された場合、
他のdll関数をコード内の他の箇所で使用しているかどうかを検索する他のdll関数アドレスコード内の他の箇所使用／非使用検索手段と
を有し、
３．１．１．１．１．＜他のdll関数アドレスを使用していない場合＞
他のdll関数アドレスを使用していると判断されなかった場合（他のdll関数アドレスコード内の他の箇所使用／非使用検索手段による判断に依る）、
dll関数,dll関数のdllに属する全ての他のdll関数,dllを削除し、dll，dll関数削除によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内のdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
３．１．１．１．２．＜他のdll関数アドレスを使用している場合＞
他のdll関数アドレスを使用していると判断された場合（他のdll関数アドレス使用／非使用検索手段による判断に依る）、
dll関数を削除し、dll関数削除によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内のdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
４．＜削除した機能を有する手段が(コード、インポート、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０．  削除した機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１．＜削除した機能を有する手段の他のセクションの要素使用チェック＞
削除した機能を有する手段のコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、コード内の他の箇所に他のセクションの要素を使用しているかどうかを判断するコード内他のセクションの要素存在／非存在検索手段と
を有し、
４．１．１．＜組み込んだソフトウエアに他のセクションの要素非存在時＞
組み込んだソフトウエアに他のセクションの要素が存在していない場合（コード内他のセクションの要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションから削除し、他のセクションの要素削除によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０．  削除した機能を有する手段の削除により、コード内のアドレスを指定している箇所があるかどうかを判断する、機能を有する手段削除コード内アドレス指定／非指定判断手段と
を有し、
（コードの削除により、コード内のアドレスを指定していた箇所は、削除サイズ分全部ずらす）
（機能を有する手段削除コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コードセクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを削除したコードサイズ分ずらす削除コード分アドレスずらし手段と
を有し、
６．
６．０．  機能を有する手段削除によりコードサイズが初めより小さくなるかどうかを判断するコード削除コードサイズ小／非小判断手段と
を有し、
（機能を有する手段削除によりコードサイズが初めより小さくなる場合）
機能を有する手段削除により、コードサイズがコードセクションヘッダーに記載されているサイズよりも小さくなる場合（コード削除コードサイズ小／非小判断手段による判断に依る）、
コードセクションヘッダー内に記載のコードセクション及び／又はコードセクションのコードサイズをコード削除後のサイズより大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と
を有し、
（コードセクション以外の）第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段
を有し、
第１の他のセクション存在時（第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段の判断による判断に依る）、
コードサイズ変更手段により減分したサイズ分、第１の他のセクションヘッダー内に記載の第１の他のセクションの開始アドレス及び／又は第１の他のセクションを変更する第１の他のセクション開始アドレス変更手段と、
コード内に第１の他のセクションの要素のアドレスを使用している場合、コード削除により、第１の他のセクションの要素のアドレスが変化した分、コード内の第１の他のセクションの要素のアドレスを変更するコード内第１の他のセクションの要素アドレス変更手段と
を有し、
６．１  コード挿入により第１の他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段と
を有し、
（コード挿入により第１の他のセクションサイズが初めより小さくなる場合）
コード削除により、第１の他のセクションのサイズが第１の他のセクションヘッダー内に記載されているサイズよりも小さくなる場合（コード挿入により他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段による判断に依る）、
第１の他のセクションヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションのサイズを第１の他のセクション削除後のサイズより大きい規定幅の大きさのサイズに変更する第１の他のセクションサイズ変更手段と
を有し、
（コードセクション以外の）第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段と
を有し、
第２の他のセクション存在時（第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段による判断による）、
第１の他のセクションの開始アドレス以降に開始アドレスを有する第２の他のセクションヘッダー内に記載の第２の他のセクション及び／又は第２の他のセクションの開始アドレスを第１の他のセクションの開始アドレスとサイズの減分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード削除により、第２の他のセクションの要素のアドレスが変化した分、コード内の第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
６．２  第１の他のセクションを第２の他のセクションの開始アドレスを有する他のセクションとして、第１の他のセクションが存在しなくなるまで、６．１の処理を繰り返し実行する、６．１の処理繰り返し実行手段と
を有する
ことを特徴とする。
【０４０３】
尚、上述した機械語コード組み込み削除装置は、ＥＬＦ（Executable・and・Linkable・Format）フォーマットの場合でも同様に組み込み削除が行え、ＰＥファイルフォーマットの場合、各セクションヘッダーのアドレス及び／又はサイズ等の検索に、ＰＥヘッダー及び／又はセクションヘッダーを用いていたものを、ＥＬＦファイルフォーマットの場合、ＥＬＦヘッダー、プログラムヘッダー、セクションヘッダ、及び／又は、セクションヘッダーテーブルを用いるようになり、これらを、（各セクションのアドレス及び／又はサイズが記載されている）ヘッダーと纏めて記すと、ＥＬＦフォーマットを含める場合は、以下のようになる。
本発明の実施の形態の機械語コード組み込み削除装置は、
ソフトウエアにバイナリの状態で組み込んだ機能を有する手段をバイナリの状態で組み込み削除することを特徴とするソフトウエア製造装置であって、
１．＜コードの挿入＞
１．０．  組み込んだソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
組み込んだソフトウエアのコードのどの位置に機能を有する手段を挿入しているかを選択判断するコード挿入位置選択判断手段と
を有し、
１．１．組み込んだソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合（コード開始アドレスコール箇所検索手段による判断に依る）であって、コードの開始以前に機能を有する手段を挿入している場合（コード挿入位置選択判断手段による判断に依る）、
（コード記載セクション）ヘッダーのコード記載セクション開始アドレスを検索するコード記載セクション開始アドレス検索手段と、
コード記載セクション開始アドレスからコード記載セクション内を検索し、コード開始アドレスをコールしている箇所を検索するコード記載セクション内コード開始アドレスコール箇所検索手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コード開始アドレスからコード記載セクションの開始アドレス（又は、組み込み前のコード記載セクションの通常の開始アドレス）の前までに挿入したコードを削除するコード削除手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに削除した機能を有する手段のコードアドレスを加算した（又は、通常の）開始アドレスに書き換えるコールコード開始アドレス変更手段と
を有し、
１．２．組み込んだソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コード記載セクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの初め、途中、又は最後に挿入した機能を有する手段のコードを削除するコード削除手段と
を有し、
２．＜データアドレスの変更＞
２．０  削除した機能を有する手段のコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段と
を有し、
削除した機能を有する手段のコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用している場合（システムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段による判断に依る）、データをデータセクションから削除するデータセクション削除手段と
を有し、
３．＜削除した機能を有する手段が呼び出し関数群格納ファイルを使用している場合＞
３．０．  削除した機能を有する手段が呼び出し関数群格納ファイルを使用しているかどうかを判断する、機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段と
を有し、
３．１．＜他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数使用／非使用チェック＞
削除した機能を有する手段が呼び出し関数群格納ファイルを使用している場合（機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段による判断に依る）、
機能を有する手段が使用している呼び出し関数群格納ファイル被格納呼び出し関数のアドレスを検索する呼び出し関数群格納ファイル被格納呼び出し関数アドレス検索手段と、
機能を有する手段が使用している呼び出し関数群格納ファイル被格納呼び出し関数のアドレスをコード内の他の箇所で使用しているかどうかを検索する他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段と
を有し、
３．１．１．＜他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数を使用していない場合＞
コード内の他の箇所で使用呼び出し関数群格納ファイル被格納呼び出し関数を使用していると判断されなかった場合（他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段による判断に依る）、
呼び出し関数群呼び出しセクション内に、使用呼び出し関数群格納ファイル被格納呼び出し関数が属する呼び出し関数群格納ファイルの他の呼び出し関数群格納ファイル被格納呼び出し関数のアドレスを検索する呼び出し関数群呼び出しセクション内他の呼び出し関数群格納ファイル被格納呼び出し関数アドレス検索手段と
を有し、
３．１．１．１．＜呼び出し関数群呼び出しセクション内に他の呼び出し関数群格納ファイル被格納呼び出し関数が検索された場合＞
呼び出し関数群呼び出しセクション内に他の呼び出し関数群格納ファイル被格納呼び出し関数が検索された場合、
他の呼び出し関数群格納ファイル被格納呼び出し関数をコード内の他の箇所で使用しているかどうかを検索する他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスコード内の他の箇所使用／非使用検索手段と
を有し、
３．１．１．１．１．＜他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していない場合＞
他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していると判断されなかった場合（他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスコード内の他の箇所使用／非使用検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数,呼び出し関数群格納ファイル被格納呼び出し関数の呼び出し関数群格納ファイルに属する全ての他の呼び出し関数群格納ファイル被格納呼び出し関数,呼び出し関数群格納ファイルを削除し、呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数削除によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
３．１．１．１．２．＜他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合＞
他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していると判断された場合（他の呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数を削除し、呼び出し関数群格納ファイル被格納呼び出し関数削除によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
４．＜削除した機能を有する手段が(コード記載、呼び出し関数群呼び出し、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０．  削除した機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１．＜削除した機能を有する手段の他のセクションの要素使用チェック＞
削除した機能を有する手段のコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、コード内の他の箇所に他のセクションの要素を使用しているかどうかを判断するコード内他のセクションの要素存在／非存在検索手段と
を有し、
４．１．１．＜組み込んだソフトウエアに他のセクションの要素非存在時＞
組み込んだソフトウエアに他のセクションの要素が存在していない場合（コード内他のセクションの要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションから削除し、他のセクションの要素削除によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０．  削除した機能を有する手段の削除により、コード内のアドレスを指定している箇所があるかどうかを判断する、機能を有する手段削除コード内アドレス指定／非指定判断手段と
を有し、
（コードの削除により、コード内のアドレスを指定していた箇所は、削除サイズ分全部ずらす）
（機能を有する手段削除コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コード記載セクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを削除したコードサイズ分ずらす削除コード分アドレスずらし手段と
を有し、
６．
６．０．  機能を有する手段削除によりコードサイズが初めより小さくなるかどうかを判断するコード削除コードサイズ小／非小判断手段と
を有し、
（機能を有する手段削除によりコードサイズが初めより小さくなる場合）
機能を有する手段削除により、コードサイズが（コード記載セクション）ヘッダーに記載されているサイズよりも小さくなる場合（コード削除コードサイズ小／非小判断手段による判断に依る）、
（コード記載セクション）ヘッダー内に記載のコード記載セクション及び／又はコード記載セクションのコードサイズをコード削除後のサイズより大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と
を有し、
（コード記載セクション以外の）第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段
を有し、
第１の他のセクション存在時（第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段の判断による判断に依る）、
コードサイズ変更手段により減分したサイズ分、（第１の他のセクション）ヘッダー内に記載の第１の他のセクションの開始アドレス及び／又は第１の他のセクションを変更する第１の他のセクション開始アドレス変更手段と、
コード内に第１の他のセクションの要素のアドレスを使用している場合、コード削除により、第１の他のセクションの要素のアドレスが変化した分、コード内の第１の他のセクションの要素のアドレスを変更するコード内第１の他のセクションの要素アドレス変更手段と
を有し、
６．１  コード挿入により第１の他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段と
を有し、
（コード挿入により第１の他のセクションサイズが初めより小さくなる場合）
コード削除により、第１の他のセクションのサイズが（第１の他のセクション）ヘッダー内に記載されているサイズよりも小さくなる場合（コード挿入により他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段による判断に依る）、
（第１の他のセクション）ヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションのサイズを第１の他のセクション削除後のサイズより大きい規定幅の大きさのサイズに変更する第１の他のセクションサイズ変更手段と
を有し、
（コード記載セクション以外の）第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段と
を有し、
第２の他のセクション存在時（第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段による判断による）、
第１の他のセクションの開始アドレス以降に開始アドレスを有する（第２の他のセクション）ヘッダー内に記載の第２の他のセクション及び／又は第２の他のセクションの開始アドレスを第１の他のセクションの開始アドレスとサイズの減分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード削除により、第２の他のセクションの要素のアドレスが変化した分、コード内の第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
６．２  第１の他のセクションを第２の他のセクションの開始アドレスを有する他のセクションとして、第１の他のセクションが存在しなくなるまで、６．１の処理を繰り返し実行する、６．１の処理繰り返し実行手段と
を有し、
ソフトウエアにバイナリの状態で組み込んだ機能を有する手段をバイナリの状態で組み込み削除する
ことを特徴とするソフトウエア製造装置
となる。
尚、以上において、他のファイルフォーマットにおいても、上述したソフトウエア製造装置において、ソフトウエアにバイナリの状態で組み込んだ機能を有する手段をバイナリの状態で組み込み削除することができ、COFF（Common・Object・File・Format）、XCOFF、ECOFF、a.outフォーマットの場合においてもフォーマットに応じて不用な手段を使用しないようにすれば、上述したソフトウエア製造装置において、ソフトウエアにバイナリの状態で組み込んだ機能を有する手段をバイナリの状態で組み込み削除することができる。
【０４０４】
尚、図１乃至図８に示す、本発明の実施の形態、本発明の第１乃至第５の実施の形態における、バイナリ組み込みの方法に対応したバイナリ組み込み削除の方法は、上述したバイナリ組み込み削除の方法のうち、図９（４）に示すバイナリ状態での実行体への機械語コード組み込み装置に対応したバイナリ組み込み削除装置に該当し、コード内にコードセクション内のプログラム開始位置にジャンプする箇所がない場合であり、図９（１）、（２）以外の場合、実行体ではなく、関数群が組み込まれているファイル（例えば、Windows（登録商標）の場合、dll）に組み込まれている関数を使用し呼び出すコードが使用されている場合、コードセクションの初め、中間、又は最後に、削除したいバイナリコードを挿入されている。また、削除したいバイナリコードがデータを使用している場合、データセクションからデータを削除する。また、挿入したバイナリコードが他のデータセクションのデータを使用している場合、他のデータセクションからデータを削除する。また、コードを削除したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う処理を有しており、詳細には、
１．＜コードの削除＞
１．０．  組み込んだソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
を有し、
１．２．組み込んだソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コードセクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コードセクションの初め、途中、又は最後に挿入した機能を有する手段のコードを削除するコード削除手段と
を有し、
２．＜データアドレスの変更＞
２．０  削除した機能を有する手段のコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又はdll関数データ使用／非使用判断手段と
を有し、
削除した機能を有する手段のコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用している場合（システムコール又はdll関数データ使用／非使用判断手段による判断に依る）、データをデータセクションから削除するデータセクション削除手段と
を有し、
３．＜削除した機能を有する手段がdllを使用している場合＞
３．０．  削除した機能を有する手段がdllを使用しているかどうかを判断する、機能を有する手段dll使用／非使用判断手段と
を有し、
３．１．＜他の箇所使用dll関数使用／非使用チェック＞
削除した機能を有する手段がｄｌｌを使用している場合（機能を有する手段dll使用／非使用判断手段による判断に依る）、
機能を有する手段が使用しているdll関数のアドレスを検索するdll関数アドレス検索手段と、
機能を有する手段が使用しているdll関数のアドレスをコード内の他の箇所で使用しているかどうかを検索する他の箇所使用dll関数アドレス使用／非使用検索手段と
を有し、
３．１．１．＜他の箇所使用dll関数を使用していない場合＞
コード内の他の箇所で使用dll関数を使用していると判断されなかった場合（他の箇所使用dll関数アドレス使用／非使用検索手段による判断に依る）、
インポートセクション内に、使用dll関数が属するdllの他のdll関数のアドレスを検索するインポートセクション内他のdll関数アドレス検索手段と
を有し、
３．１．１．１．＜インポートセクション内に他のdll関数が検索された場合＞
インポートセクション内に他のdll関数が検索された場合、
他のdll関数をコード内の他の箇所で使用しているかどうかを検索する他のdll関数アドレスコード内の他の箇所使用／非使用検索手段と
を有し、
３．１．１．１．１．＜他のdll関数アドレスを使用していない場合＞
他のdll関数アドレスを使用していると判断されなかった場合（他のdll関数アドレスコード内の他の箇所使用／非使用検索手段による判断に依る）、
dll関数,dll関数のdllに属する全ての他のdll関数,dllを削除し、dll，dll関数削除によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内のdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
３．１．１．１．２．＜他のdll関数アドレスを使用している場合＞
他のdll関数アドレスを使用していると判断された場合（他のdll関数アドレス使用／非使用検索手段による判断に依る）、
dll関数を削除し、dll関数削除によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内のdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
４．＜削除した機能を有する手段が(コード、インポート、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０．  削除した機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１．＜削除した機能を有する手段の他のセクションの要素使用チェック＞
削除した機能を有する手段のコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、コード内の他の箇所に他のセクションの要素を使用しているかどうかを判断するコード内他のセクションの要素存在／非存在検索手段と
を有し、
４．１．１．＜組み込んだソフトウエアに他のセクションの要素非存在時＞
組み込んだソフトウエアに他のセクションの要素が存在していない場合（コード内他のセクションの要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションから削除し、他のセクションの要素削除によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０．  削除した機能を有する手段の削除により、コード内のアドレスを指定している箇所があるかどうかを判断する、機能を有する手段削除コード内アドレス指定／非指定判断手段と
を有し、
（コードの削除により、コード内のアドレスを指定していた箇所は、削除サイズ分全部ずらす）
（機能を有する手段削除コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コードセクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを削除したコードサイズ分ずらす削除コード分アドレスずらし手段と
を有した処理を使用して、バイナリコード(機能を有する手段)が組み込まれたソフトウエアからバイナリコード(機能を有する手段)が削除される。
（組み込み削除の処理説明箇所終）
【０４０５】
（図１０〜図１２に対応した組み込み削除の処理説明箇所初め）
上述した、本発明の実施の形態の機械語コード組込装置（電子機器）及び方法に対応した本発明の実施の形態の機械語コード組込削除(解除)装置（電子機器）及び方法について、図１０、図１１を参照して説明する。
【０４０６】
機械語コード組込削除装置（電子機器）１０００aにおいては、各種媒体挿入口１０１６ａに挿入されたソフトウエアが格納された媒体からソフトウエアを読み出し、そのソフトウエアに機械語コードで、上述した本明細書中全てに記載されているプログラム、例えば、上述した一電子機器動作許可の機能を有するプログラムを初め、初期設定された（（集積回路）組み込み指標及び／又は（集積回路）組み込み用プログラム指標が、上述した（集積回路）組み込み指標及び／又は（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたものであり、この場合、組み込み削除処理を行うに初期設定が設定されている場合）、機能を有する手段であるプログラムが組み込まれたソフトウエアから組み込み削除用プログラムがバイナリの状態で組み込み削除され、組み込み削除されたソフトウエア及び／又は削除された組み込み削除用プログラムを媒体に格納する（尚、指定された組み込み削除用プログラムが、指定されたソフトウエアの指定された位置に指定されたサイズあるかどうかを判断し、無い場合（指定された組み込み削除用プログラムと一致しない場合）は、組み込み削除処理は行われない。また、機能を有する手段を組み込んだソフトウエアから機能を有する手段を組み込み削除するのみならず、単数又は複数の機能を有する手段が（あるアドレスからあるアドレス迄の）固まった単位でソフトウエア内に存在する機能を有する手段の場合は、ソフトウエアから機能を有する手段の組み込み削除を行うことができる。この詳細の処理については、（非バイナリ組み込みソフトウエアの処理の説明初め）〜（非バイナリ組み込みソフトウエアの処理の説明終）について詳述する。）。これらの初期設定は、（選択）操作機（コンピュータ）入出力（挿入口）１０２３aを有している場合、機械語コード組込削除装置（電子機器）１０００aに、（選択）操作機（コンピュータ）入出力（挿入口）１０２３aを介して（選択）操作機（コンピュータ）１０２４aを接続することにより表示される選択（又はメニュー表示画面選択）手段（機械語コード組込削除装置（電子機器）の初期設定用のソフトウエア）からの選択により決定される。その他の各種設定、各種（選択）操作もこの（選択）操作機（コンピュータ）入出力（挿入口）１０２３aを介して（選択）操作機（コンピュータ）１０２４aにより行われる。
【０４０７】
尚、各種媒体挿入口１０１６aに、機能を有する手段であるプログラムが組み込まれたソフトウエア、及び／又は、組み込み指標（上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、及び／又は、組み込み削除用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、機能を有する手段であるプログラムが組み込まれたソフトウエアから組み込み削除用プログラムがバイナリの状態で組み込み削除され、組み込み削除されたソフトウエアが格納され（挿入された組み込み削除用プログラムが高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納され、組み込み削除に使用される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、削除された組み込み削除用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理に対応した処理（供給媒体から被組込ソフトウエアを供給した場合）と同様の処理を行う。）
【０４０８】
また、各種媒体挿入口１０２２ａを備えている場合、各種媒体挿入口１０２２ａに組み込み削除用のプログラムが格納された各種媒体を挿入することによって、組み込み削除したい組み込み削除用のプログラムを入れ替えることができる。これは、高級言語で記載されたプログラムでもよく、高級言語で記載されたプログラムが挿入された場合は、高級言語用のコンパイラでコンパイルされ、処理が含まれたプログラムの部分だけが機械語で記憶される。この機械語で供給されるか高級言語のプログラムで供給されるかどの高級言語で供給されるかの選択は、初期設定の組み込み用プログラム指標で決定される。また、供給された機能を有する手段であるプログラムが組み込まれたソフトウエアの初め、途中（何バイト目か等）、最後のどの箇所に機能を有する手段であるプログラムが組み込まれているかの判断も初期設定の組み込み指標により決定される。これらの初期設定は、（選択）操作機（コンピュータ）入出力（挿入口）１０２３aを有している場合、機械語コード組込削除装置（電子機器）１０００aに、（選択）操作機（コンピュータ）入出力（挿入口）１０２３aを介して（選択）操作機（コンピュータ）１０２４aを接続することにより表示される選択（又はメニュー表示画面選択）手段（機械語コード組込削除装置（電子機器）の初期設定用のソフトウエア）からの選択により決定される。
【０４０９】
尚、各種媒体挿入口１０１６a又は各種媒体挿入口１０２２ａに、機能を有する手段であるプログラムが組み込まれたソフトウエア、及び／又は、組み込み指標（上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、及び／又は、組み込み削除用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアから組み込み削除用プログラムがバイナリの状態で組み込み削除され、組み込み削除されたソフトウエアが格納され（挿入された組み込み削除用プログラムが高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納され、組み込み削除に使用される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、削除された組み込み削除用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理に対応した処理（供給媒体から被組込ソフトウエアを供給した場合）と同様の処理を行う。）
【０４１０】
従って、本発明の実施の形態の機械語コード組込削除装置（電子機器）によれば、ソフトウエアが格納された媒体を各種媒体挿入口１０１６ａに挿入するだけで、そのソフトウエアに機械語コードで、上述した本明細書中全てに記載されているプログラム、例えば、上述した一電子機器動作許可の機能を有するプログラムを初め、初期設定された組み込み指標に基づいて、又は、組み込み指標を示すファイル又はデータに記載された組み込み指標、並びに／若しくは、組み込み用プログラム指標、及び／又は、組み込み用プログラムに基づいて、機能を有する手段であるプログラムがバイナリの状態で組み込まれたソフトウエアを媒体に格納することができる（一電子機器動作許可機械語コード組込削除装置（電子機器）とすることができる）と共に、組み込んだ機能を有する手段が組み込まれたソフトウエアから組み込んだ機能を有する手段を削除し元のソフトウエアに戻すこともでき、さらに、機能を有する手段を組み込んでいないソフトウエアからでも機能を有する手段を組み込み削除することができ、他人に使用させたくない機能は使用させないようにすることができ、セキュリティ機能が向上する（この詳細の処理については、（非バイナリ組み込みソフトウエアの処理の説明初め）〜（非バイナリ組み込みソフトウエアの処理の説明終）について詳述する。）。
【０４１１】
機械語コード組込削除装置（電子機器）１０００ｂにおいては、機能を有する手段であるプログラムが組み込まれたソフトウエアが格納された媒体を各種媒体挿入口１０１６ｂを挿入すると、表示部１０２０ｂに、上述した一電子機器動作許可の機能を有するプログラムを初め、機能を有する手段であるプログラムであるバイナリ組み込み用プログラムの選択（又はメニュー表示画面選択）手段（組み込み指標（上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を選択する選択（又はメニュー表示画面選択）手段）、及び／又は、組み込み用プログラム指標（上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を選択する選択（又はメニュー表示画面選択）手段）が表示され、バイナリ組み込み削除用プログラムを選択することによって、選択したプログラムがバイナリの状態で組み込まれたソフトウエアから選択したプログラムが組み込み削除されたソフトウエア及び／又は組み込まれていたプログラムがバイナリの状態で媒体に格納される。これらの初期設定は、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｂを有している場合、機械語コード組込削除装置（電子機器）１０００ｂに、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｂを介して（選択）操作機（コンピュータ）１０２４ｂを接続することにより表示される選択（又はメニュー表示画面選択）手段（機械語コード組込削除装置（電子機器）の初期設定用のソフトウエア）からの選択によっても決定することができる。また、その他の各種設定、各種（選択）操作もこの（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｂを介して（選択）操作機（コンピュータ）１０２４ｂにより行われる。
【０４１２】
尚、各種媒体挿入口１０１６ｂに、機能を有する手段であるプログラムが組み込まれたソフトウエア、及び／又は、組み込み指標（上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、及び／又は、組み込み削除用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアから組み込み削除用プログラムがバイナリの状態で組み込み削除され、組み込み削除されたソフトウエアが格納され（挿入された組み込み削除用プログラムが高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納され、組み込み削除に使用される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、削除された組み込み削除用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理に対応した処理（供給媒体から被組込ソフトウエアを供給した場合）と同様の処理を行う。）
【０４１３】
また、各種媒体挿入口１０２２ｂを備えている場合、各種媒体挿入口１０２２ｂに組み込み削除用のプログラムが格納された各種媒体を挿入することによって、選択（又はメニュー表示画面選択）手段（組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等）を選択する選択（又はメニュー表示画面選択）手段）、及び／又は、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等）を選択する選択（又はメニュー表示画面選択）手段）が表示され、各種媒体のどの組み込み削除用のプログラムを追加又はどの記憶されている組み込み削除用のプログラムと入れ替えるのかを選択決定することができる。これは、高級言語で記載されたプログラムでもよく、高級言語で記載されたプログラムが挿入された場合は、高級言語用のコンパイラでコンパイルされ、処理が含まれたプログラムの部分だけが機械語で記憶される。この機械語で供給されるか高級言語のプログラムで供給されるかどの高級言語で供給されるかの選択も、選択（又はメニュー表示画面選択）手段から選択決定することができる。また、供給された機能を有する手段であるプログラムが組み込まれたソフトウエアの初め、途中（何バイト目か等）、最後のどの箇所に機能を有する手段であるプログラムが組み込まれているかの判断も選択（又はメニュー表示画面選択）手段から選択決定することができる。
【０４１４】
尚、各種媒体挿入口１０１６a又は各種媒体挿入口１０２２ａに、機能を有する手段であるプログラムが組み込まれたソフトウエア、及び／又は、組み込み指標（上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、及び／又は、組み込み削除用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアから組み込み削除用プログラムがバイナリの状態で組み込み削除され、組み込み削除されたソフトウエアが格納され（挿入された組み込み削除用プログラムが高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納され、組み込み削除に使用される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、削除された組み込み削除用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理に対応した処理（供給媒体から被組込ソフトウエアを供給した場合）と同様の処理を行う。）
【０４１５】
従って、本発明の実施の形態の機械語コード組込削除装置（電子機器）によれば、ソフトウエアが格納された媒体を各種媒体挿入口１０１６ａに挿入し、所望のバイナリ組み込み用プログラムを選択することによって、又は、初期設定された組み込み指標、又は、組み込み用プログラム指標を示すファイル又はデータに記載された組み込み指標、並びに／若しくは、組み込み用プログラム指標、及び／又は、組み込み用プログラムに基づいて、そのソフトウエアに機械語コードで、上述した本明細書中全てに記載されているプログラム、例えば、上述した一電子機器動作許可の機能を有するプログラムを初め、機能を有する手段であるプログラムがバイナリの状態で組み込まれたソフトウエアを媒体に格納することができる（一電子機器動作許可機械語コード組込削除装置（電子機器）とすることができる）と共に、組み込んだ機能を有する手段が組み込まれたソフトウエアから組み込んだ機能を有する手段を削除し元のソフトウエアに戻すこともでき、さらに、機能を有する手段を組み込んでいないソフトウエアからでも機能を有する手段を組み込み削除することができ、他人に使用させたくない機能は使用させないようにすることができ、セキュリティ機能が向上する（この詳細の処理については、（非バイナリ組み込みソフトウエアの処理の説明初め）〜（非バイナリ組み込みソフトウエアの処理の説明終）について詳述する。）。
【０４１６】
機械語コード組込削除装置（電子機器）１０００cにおいては、各種媒体挿入口１０１６ｃに機能を有する手段であるプログラムが組み込まれたソフトウエアが格納された媒体が挿入され、上述した一電子機器動作許可の機能を有するプログラムを初め、機能を有する手段であるプログラムである所望のバイナリ組み込み削除用プログラムを各種処理開始用釦１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N）によって選択することによって、選択したプログラムをソフトウエアバイナリの状態で組み込み削除し、組み込み削除されたソフトウエア及び／又は削除された組み込み削除用プログラムを媒体に格納する（（集積回路）組み込み指標及び／又は（集積回路）組み込み用プログラム指標が、上述した（集積回路）組み込み指標及び／又は（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたものであり、この場合、組み込み削除処理を行うに初期設定が設定されている場合）（尚、指定された組み込み削除用プログラムが、指定されたソフトウエアの指定された位置に指定されたサイズあるかどうかを判断し、無い場合（指定された組み込み削除用プログラムと一致しない場合）は、組み込み削除処理は行われない。また、機能を有する手段を組み込んだソフトウエアから機能を有する手段を組み込み削除するのみならず、単数又は複数の機能を有する手段が（あるアドレスからあるアドレス迄の）固まった単位でソフトウエア内に存在する機能を有する手段の場合は、ソフトウエアから機能を有する手段の組み込み削除を行うことができる。この詳細の処理については、（非バイナリ組み込みソフトウエアの処理の説明初め）〜（非バイナリ組み込みソフトウエアの処理の説明終）について詳述する。）。これらの初期設定は、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃを有している場合、機械語コード組込削除装置（電子機器）１０００ｃに、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃを介して（選択）操作機（コンピュータ）１０２４aを接続することにより表示される選択（又はメニュー表示画面選択）手段からの選択により決定される。その他の各種設定、各種（選択）操作もこの（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃを介して（選択）操作機（コンピュータ）１０２４ｃにより行われる。
【０４１７】
尚、各種媒体挿入口１０１６ｃに、機能を有する手段であるプログラムが組み込まれたソフトウエア、及び／又は、組み込み指標（上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、及び／又は、組み込み削除用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアから組み込み削除用プログラムがバイナリの状態で組み込み削除され、組み込み削除されたソフトウエアが格納され（挿入された組み込み削除用プログラムが高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納され、組み込み削除に使用される）、並びに／若しくは、削除された組み込み用プログラム指標、並びに／若しくは、組み込み削除用プログラム指標が変更格納され、及び／又は、組み込み用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理に対応した処理（供給媒体から被組込ソフトウエアを供給した場合）と同様の処理を行う。）
【０４１８】
また、各種媒体挿入口１０２２ｃを備えている場合、各種媒体挿入口１０２２ｃに組み込み削除用のプログラムが格納された各種媒体を挿入することによって、各種媒体のどの組み込み削除用のプログラムを追加及び／又はどの記憶されている組み込み削除用のプログラムと入れ替えるのかを組み込み用プログラム選択釦１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N）によって、又は、（組み込み用プログラム選択釦１０２５ｃ（１０２５ｃ−１〜１０２５ｃ−N））が備えられている場合、組み込み用プログラム選択釦１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N）によって機能を有する手段であるプログラムが組み込まれたソフトウエアを、組み込み用プログラム選択釦１０２５ｃ（１０２５ｃ−１〜１０２５ｃ−N））によって組み込み削除用プログラムを、選択決定することができる。これは、高級言語で記載されたプログラムでもよく、高級言語で記載されたプログラムが挿入された場合は、高級言語用のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で記憶される。この機械語で供給されるか高級言語のプログラムで供給されるかどの高級言語で供給されるかの選択も、選択（又はメニュー表示画面選択）手段から選択決定することができる。また、供給された機能を有する手段であるプログラムが組み込まれたソフトウエアの初め、途中（何バイト目か等）、最後のどの箇所に機能を有する手段であるプログラムが組み込まれているかの判断も初期設定により決定される。これらの初期設定は、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃを有している場合、機械語コード組込削除装置（電子機器）１０００ｃに、（選択）操作機（コンピュータ）入出力（挿入口）１０２３ｃを介して（選択）操作機（コンピュータ）１０２４ｃを接続することにより表示される選択（又はメニュー表示画面選択）手段からの選択により決定される。
【０４１９】
尚、各種媒体挿入口１０１６ｃ又は各種媒体挿入口１０２２ｃに、機能を有する手段であるプログラムが組み込まれたソフトウエア、及び／又は、組み込み指標（上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、並びに／若しくは、組み込み用プログラム指標（上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル又はデータ、及び／又は、組み込み削除用プログラムを挿入すると、組み込み指標、組み込み用プログラム指標を示すファイル又はデータに従って、ソフトウエアから組み込み削除用プログラムがバイナリの状態で組み込み削除され、組み込み削除されたソフトウエアが格納され（挿入された組み込み削除用プログラムが高級言語で記載されている場合は、高級言語のコンパイラでコンパイルされ、処理が含まれた機能を有する手段であるプログラムの部分だけが機械語で格納され、組み込み削除に使用される）、並びに／若しくは、組み込み用プログラム指標、並びに／若しくは、組み込み用プログラム指標が変更格納され、及び／又は、削除された組み込み削除用プログラムが追加、変更、及び／又は削除され、バイナリの状態で格納される。（これらの処理は、図１２に示す処理に対応した処理（供給媒体から被組込ソフトウエアを供給した場合）と同様の処理を行う。）
【０４２０】
従って、本発明の実施の形態の機械語コード組込削除装置（電子機器）によれば、ソフトウエアが格納された媒体を各種媒体挿入口１０１６ａに挿入し、所望のバイナリ組み込み用プログラムを各種処理開始用釦１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N）及び／又は各種処理開始用釦１０２５ｃ（１０２５ｃ−１〜１０２５ｃ−N）によって選択することによって、又は、初期設定された組み込み指標、又は、組み込み用プログラム指標を示すファイル又はデータに記載された組み込み指標、並びに／若しくは、組み込み用プログラム指標、及び／又は、組み込み用プログラムに基づいて、ソフトウエアに所望のバイナリ組み込み用プログラムである機能を有する手段であるプログラムがバイナリの状態で組み込まれ、組み込まれたソフトウエアを媒体に格納することができる（一電子機器動作許可機械語コード組込削除装置（電子機器）とすることができる）と共に、組み込んだ機能を有する手段が組み込まれたソフトウエアから組み込んだ機能を有する手段を削除し元のソフトウエアに戻すこともでき、さらに、機能を有する手段を組み込んでいないソフトウエアからでも機能を有する手段を組み込み削除することができ、他人に使用させたくない機能は使用させないようにすることができ、セキュリティ機能が向上する（この詳細の処理については、（非バイナリ組み込みソフトウエアの処理の説明初め）〜（非バイナリ組み込みソフトウエアの処理の説明終）について詳述する。）。
【０４２１】
尚、以上においては、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等を含んだ、上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を使用したが、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等を含んだ、上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたものに加えて、ソフトウエアは機械語かそれともどの高級言語で記載されたものかをさらに追加したもの）を使用するようにしてもよい。この場合、ソフトウエアは高級言語で記載されたものであってもよく、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、高級言語のコンパイラでコンパイルした後に、組み込み削除用プログラムがバイナリの状態で実行体に格納される。また、ソフトウエアも組み込み削除用プログラムも高級言語で記載されている場合であって、組み込み指標と組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体から、コンパイルした組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除する。また、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等を含んだ、上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）と組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等を含んだ、上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）との２つのファイルを用いたが、２つのファイル又はデータを１つとした組み込み/組み込み用プログラム指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、初期設定をするかどうか等、どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、初期設定を行うかどうか等を含んだ、上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を共有して使用するようにしてもよい。
【０４２２】
上述した、本発明の実施の形態の機械語コード組込システム集積回路１２００に対応した本発明の実施の形態の機械語コード組込削除(解除)システム集積回路１２００及び方法について、図１２を参照して説明する。
【０４２３】
（電子機器又はコンピュータ上の組み込み用プログラムが組み込まれた実行体から組み込み削除用プログラムをバイナリの状態で組み込み削除）
機械語コード組込削除システム集積回路１２００を装着された電子機器又はコンピュータでは、集積回路組み込み指標（上述した集積回路組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、集積回路組み込み指標選択（又は画面表示選択）手段（機械語コード組込システム集積回路の初期設定用のソフトウエア）が表示され、選択（又は画面表示選択）手段による選択により集積回路組み込み指標（上述した集積回路組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）に基づいて、電子機器又はコンピュータ上に存在する組み込み用プログラムが組み込まれたプログラムのうちの、集積回路組み込み指標で設定された実行体の集積回路組み込み指標で設定された位置から、集積回路組み込み指標で設定された内蔵の組み込み用プログラムが、実行体の停止中に（電子機器又はコンピュータ上のプログラムの実行体の実行を監視し、停止中に）バイナリの状態で組み込み削除することができる。これらの実行体への組み込み削除は、電子機器又はコンピュータ上に存在する組み込み用プログラムが組み込まれた全てのプログラムに対して行えるように集積回路組み込み指標を定義すれば、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上に存在する全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる（１電子機器唯一動作許可機械語コード組込システム集積回路とすることができる）と共に、組み込んだ機能を有する手段が組み込まれたソフトウエアから組み込んだ機能を有する手段を削除し元のソフトウエアに戻すこともでき、さらに、機能を有する手段を組み込んでいないソフトウエアからでも機能を有する手段を組み込み削除することができる（この詳細の処理については、（非バイナリ組み込みソフトウエアの処理の説明初め）〜（非バイナリ組み込みソフトウエアの処理の説明終）について詳述する。）。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上すると共に、組み込んだ機能を有する手段が組み込まれたソフトウエアから組み込んだ機能を有する手段を削除し元のソフトウエアに戻すこともでき、さらに、機能を有する手段を組み込んでいないソフトウエアからでも機能を有する手段を組み込み削除することができ、他人に使用させたくない機能は使用させないようにすることができ、セキュリティ機能が向上する（この詳細の処理については、（非バイナリ組み込みソフトウエアの処理の説明初め）〜（非バイナリ組み込みソフトウエアの処理の説明終）について詳述する。）。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標選択（又は画面表示選択）手段（機械語コード組込システム集積回路の初期設定用のソフトウエア）により、集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標の各種設定変更を行うことができる。
【０４２４】
（B並びに／若しくはD及び／又はC）
また、媒体入出力手段を有している場合、媒体に（Ｂ）集積回路組み込み指標（上述した集積回路組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）、並びに／若しくは、（Ｄ）集積回路組み込み用プログラム指標（上述した集積回路組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル若しくはデータ、及び／又は（Ｃ）集積回路組み込み削除用プログラムを供給すると、供給された（Ｂ）集積回路組み込み指標、並びに／若しくは、（Ｄ）集積回路組み込み用プログラム指標、及び／又は（Ｃ）集積回路組み込み用プログラムに基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標に基づいて、（Ｂ）集積回路組み込み指標並びに／若しくは、（Ｄ）集積回路組み込み用プログラム指標の設定が変更され、及び／又は、組み込み削除用プログラムの追加、変更、及び／又は削除される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標の各種設定変更を行うことができる。
（B）
また、媒体入出力手段を有している場合、媒体に（Ｂ）集積回路組み込み指標（上述した集積回路組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を供給すると、供給された（Ｂ）集積回路組み込み指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）集積回路組み込み指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｂ）集積回路組み込み指標に基づいて、（Ｂ）集積回路組み込み指標の設定が変更される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標の各種設定変更を行うことができる。
（D）
また、媒体入出力手段を有している場合、媒体に（Ｄ）集積回路組み込み用プログラム指標（上述した集積回路組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル若しくはデータを供給すると、供給された（Ｄ）集積回路組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｄ）集積回路組み込み用プログラム指標に基づいて、（Ｄ）集積回路組み込み用プログラム指標の設定が変更され、及び／又は、組み込み削除用プログラムの追加、変更、及び／又は削除される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標の各種設定変更を行うことができる。
（C）
また、（Ｃ）集積回路組み込み削除用プログラムを供給すると、設定されている（Ｄ）集積回路組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｄ）集積回路組み込み用プログラム指標に基づいて、（Ｃ）集積回路組み込み削除用プログラムが追加／変更／削除される。この場合、組み込み削除用プログラムが機械語ではなく、高級言語で記載されたプログラムである場合、選択された高級言語でコンパイルし、機能を有する手段のみがバイナリの状態で格納される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標の各種設定変更を行うことができる。
（D＋C）
また、媒体に（Ｄ）集積回路組み込み用プログラム指標を示すファイル又はデータと共に、（Ｃ）集積回路組み込み削除用プログラムを供給すると、（Ｄ）集積回路組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、（Ｄ）集積回路組み込み用プログラム指標選択（又は画面表示選択）手段により選択された（Ｄ）集積回路組み込み用プログラム指標に基づいて、（Ｄ）集積回路組み込み用プログラム指標を変更することができ、（Ｃ）組み込み削除用プログラムの追加、変更、及び／又は削除が行える。この場合、（Ｃ）組み込み削除用プログラムは、機械語であってもよく、高級言語で記載されたものであってもよく、（Ｄ）組み込み用プログラム指標によって設定された指標によって組み込み削除が行われ、高級言語の場合、選択された高級言語でコンパイルし、機能を有する手段のみがバイナリの状態で格納され、組み込み削除に使用される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により選択された（Ｂ）集積回路組み込み指標及び／又は（Ｄ）集積回路組み込み用プログラム指標に基づいて、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行うことができ、（Ｃ）組み込み削除用プログラムの追加、変更、及び／又は削除が行える。この場合、（Ｃ）組み込み削除用プログラムは、機械語であってもよく、高級言語で記載されたものであってもよく、（Ｄ）組み込み用プログラム指標によって設定された指標によって組み込み削除が行われ、高級言語の場合、選択された高級言語でコンパイルし、機能を有する手段のみがバイナリの状態で格納され、組み込み削除に使用される。
【０４２５】
（供給媒体から被組込ソフトウエアを供給した場合）説明箇所初め
【０４２６】
（媒体被組込ソフト供給組み込み）組み込み指標及び／又は組み込み用プログラム指標を集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標と同じファイルを使用する場合）
【０４２７】
また、媒体入出力手段を有している場合、媒体に（Ａ）組み込み用プログラムが組み込まれたソフトウエアを供給すると、設定された（Ｂ）集積回路組み込み指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）集積回路組み込み指標選択（又は画面表示選択）手段が表示され、（Ｂ）集積回路組み込み指標選択（又は画面表示選択）手段により選択された（Ｂ）集積回路組み込み指標に基づいて、組み込み用プログラムが組み込まれた実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除される。この設定は、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）集積回路組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行える。
【０４２８】
また、以上においては、供給媒体から組み込み用プログラムが組み込まれたソフトウエアを供給した場合、電子機器又はコンピュータ上の実行体が使用する集積回路組組み込み指標と集積回路組組み込み用プログラム指標と同じ指標ファイルを使用するようにしたが、及び／又は、供給媒体から供給された組み込み用プログラムが組み込まれたソフトウエアに対しては、組み込み指標と組み込み用プログラム指標の別指標ファイルを使用するようにしてもよい。以下に、供給媒体から供給された組み込み用プログラムが組み込まれたソフトウエアに対しては、組み込み指標と組み込み用プログラム指標の別指標ファイルを使用するようにした場合について説明する。
【０４２９】
（媒体被組込ソフト供給組み込み）（組み込み指標及び／又は組み込み用プログラム指標を集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶する場合）
（B）
また、媒体入出力手段を有している場合、媒体に（Ｂ）組み込み指標（上述した組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル若しくはデータを供給すると、供給された（Ｂ）組み込み指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）組み込み指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｂ）組み込み指標に基づいて、（Ｂ）組み込み指標が変更される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行うことができる。
（A）
また、媒体入出力手段を有している場合、媒体に（Ａ）組み込み用プログラムが組み込まれたソフトウエアを供給すると、設定された組み込み指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）組み込み指標選択（又は画面表示選択）手段が表示され、（Ｂ）組み込み指標選択（又は画面表示選択）手段により選択された（Ｂ）組み込み指標に基づいて、組み込み用プログラムが組み込まれた実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除される。この設定は、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行える。
（A＋B）
また、媒体に（Ｂ）組み込み指標を示すファイル又はデータと共に（Ａ）ソフトウエアを供給すると、設定されている（Ｂ）組み込み指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）組み込み指標選択（又は画面表示選択）手段が表示され、（Ｂ）組み込み指標選択（又は画面表示選択）手段により選択された（Ｂ）組み込み指標に基づいて、組み込み用プログラムが組み込まれた実行体から（Ｃ）組み込み削除用プログラムがバイナリの状態で組み込み削除される。選択手段を有している場合は、選択画面が表示され、どの組み込み用プログラムが組み込まれたソフトウエアのどの位置からどれ程のサイズでどの組み込み削除用プログラムを組み込み削除するのかを選択し、選択された組み込み用プログラムが組み込まれたソフトウエアに選択した（Ｃ）組み込み削除用プログラムを組み込み削除することができる。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み削除用プログラム指標の各種設定変更を行うことができる。
【０４３０】
（媒体組み込み削除用プログラム変更）（組み込み指標及び／又は組み込み用プログラム指標を集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶する場合）
（D）
また、媒体入出力手段を有している場合、媒体に（Ｄ）組み込み用プログラム指標（上述した組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を示すファイル若しくはデータを供給すると、供給された（Ｄ）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、選択（又は画面表示選択）手段により選択した（Ｄ）組み込み用プログラム指標に基づいて、（Ｄ）組み込み用プログラム指標の設定が変更される。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行うことができる。
（C）
また、媒体に（Ｃ）組み込み削除用プログラムを供給すると、設定されている（Ｄ）組み込み用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により選択された（Ｄ）組み込み用プログラム指標に基づいて、（Ｃ）組み込み削除用プログラムが追加、変更、及び／又は削除される。この初期設定は、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、Ｄ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行える。
（D+C）
また、媒体に（Ｄ）組み込み用プログラム指標を示すファイル又はデータと共に、（Ｃ）組み込み削除用プログラムを供給すると、（Ｄ）組み込み削除用プログラム指標に基づいて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段には、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により選択された（Ｄ）組み込み用プログラム指標に基づいて、（Ｄ）組み込み用プログラム指標を変更することができ、（Ｃ）組み込み削除用プログラムの追加、変更、及び／又は削除が行える。この場合、（Ｃ）組み込み削除用プログラムは、機械語であってもよく、高級言語で記載されたものであってもよく、（Ｄ）組み込み用プログラム指標によって設定された指標によって組み込み削除が行われ、高級言語の場合、選択された高級言語でコンパイルし、機能を有する手段のみがバイナリの状態で格納され、組み込み削除に使用される。また、電子機器の（選択）操作機又はコンピュータ若しくはコンピュータの（選択）操作機が表示手段を有し、（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段を有している場合は、機械語かどの高級言語かの（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段が表示され、機械語かどの高級言語かを選択し、高級言語の場合、選択された高級言語でコンパイルし、機能を有する手段のみをバイナリの状態で格納する。また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段により、（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標の各種設定変更を行うことができる。
【０４３１】
また、以上においては、供給媒体から供給されたソフトウエアに対しては、組み込み指標と組み込み用プログラム指標の別指標ファイルを使用し、それら指標を記憶するようにした場合を示したが、及び／又は、記憶しないようにしてもよい。以下に、供給媒体から供給されたソフトウエアに対しては、組み込み指標と組み込み用プログラム指標を供給し、それらの指標を記憶しないようにした場合について説明する。
【０４３２】
（媒体被組込ソフト供給組み込み）（組み込み指標及び／又は組み込み用プログラム指標を集積回路組み込み指標及び／又は集積回路組み込み用プログラム指標とは別のファイルを使用し、設定を電子機器又はコンピュータ上に記憶しない場合）
（組み込み用プログラムが組み込まれたソフトウエア＋組み込み指標＋組み込み削除用プログラム＋組み込み用プログラム指標）
また、媒体に（Ａ）組み込み用プログラムが組み込まれたソフトウエアと（Ｂ）組み込み指標を示すファイル又はデータと（Ｃ）組み込み削除用プログラムと（Ｄ）組み込み用プログラム指標を供給すると、（Ｂ）組み込み指標と（Ｄ）組み込み用プログラム指標に基いて、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択（又は画面表示選択）手段による（Ｂ）組み込み指標及び／又は（Ｄ）組み込み用プログラム指標選択により、組み込み用プログラムが組み込まれた実行体から供給した組み込み削除用プログラムが組み込み削除される。この際、（Ｂ）組み込み指標及び（Ｄ）組み込み用プログラム指標の設定は変更されない。
【０４３３】
尚、以上において、（媒体被組込ソフト供給組み込み）の群のうちの少なくとも1つと、（媒体組み込み削除用プログラム変更）の群内のうちの少なくとも1つが供給された場合、（媒体組み込み削除用プログラム変更）の群の処理が終ってから、（媒体被組込ソフト供給組み込み）の群の処理を行うようにしており、かつ、（媒体被組込ソフト供給組み込み）の群と（媒体組み込み削除用プログラム変更）群では、英字のＺに近い方から処理を行うようにしているが、任意の組み合わせの処理順に処理するようにしてもよい。また、選択画面表示では、（媒体被組込ソフト供給組み込み）の群と（媒体組み込み削除用プログラム変更）の群のうちの少なくとも1つの組が供給された場合、対応する選択手段を表示するようにしているが、（媒体被組込ソフト供給組み込み）の群と（媒体組み込み削除用プログラム変更）の群のうちの少なくとも1つの組が供給された場合、画面としては両画面が同時のように表示するようにしてもよい。この場合、選択処理は、上述した処理順で行うようにしてもよいが、（媒体被組込ソフト供給組み込み）の群、（媒体組み込み削除用プログラム変更）の群の任意の組み合わせで供給された場合、どれから処理を行うようにしてもよく、選択画面表示では、（媒体被組込ソフト供給組み込み）の群と（媒体組み込み削除用プログラム変更）の群のうちの少なくとも1つの組が供給された場合、同時のように表示し、設定中の処理順に処理してもよく、それ以外の処理順に処理してもよく、設定中の処理順に、（媒体被組込ソフト供給組み込み）の選択（又は画面表示選択）処理、（媒体組み込み削除用プログラム変更）の選択（又は画面表示選択）処理を別々に行うようにしてもよい。
【０４３４】
尚、以上において、（集積回路）組み込み指標及び／又は（集積回路）組み込み用プログラム指標に、集積回路組み込み指標と組み込み指標及び／又は集積回路組み込み用プログラム指標と組み込み用プログラム指標とを別ファイルとするかどうかの指標、集積回路組み込み指標と組み込み指標及び／又は集積回路組み込み用プログラム指標と組み込み用プログラム指標とを別ファイルとして組み込み指標及び／又は組み込み用プログラム指標を記憶しないか又は記憶するかどうかの指標を設けるようにし、（集積回路）組み込み指標及び／又は（集積回路）組み込み用プログラム指標に基づいて別ファイルとするか、別ファイルとして記憶しないか又は記憶するかを判断するようにしてもよい。即ち、（集積回路）組み込み指標（上述した（集積回路）組み込み指標に加えて追加された、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等に加え、（集積回路）組み込み指標と組み込み指標とを別のファイルとするか、（集積回路）組み込み指標と組み込み指標とを別のファイルとし、組み込み指標を記憶するか、及び／又は、初期設定をするかどうか等）、組み込み用プログラム及び／又は（集積回路）組み込み用プログラム指標（上述した（集積回路）組み込み用プログラム指標に加えて追加された、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等に加え、（集積回路）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとするか、（集積回路）組み込み用プログラム指標と組み込み用プログラム指標とを別のファイルとし、組み込み用プログラム指標を記憶するか、並びに／若しくは初期設定を行うかどうか等）に基づいて別ファイルとするか、別ファイルとして記憶しないか又は記憶するかを判断するようにしてもよい。
【０４３５】
以下に、供給媒体に、組み込み用プログラムが組み込まれたソフトウエア、組み込み指標、組み込み削除用プログラム、及び／又は、組み込み用プログラム指標が供給された場合について、詳細に説明する。また、組み込み用プログラムが組み込まれたソフトウエア、組み込み指標、組み込み削除用プログラム、及び／又は、組み込み用プログラム指標は、其々、電子機器又はコンピュータ上に存在する実行体、集積回路組み込み指標、集積回路組み込み削除用プログラム、及び／又は、集積回路組み込み用プログラム指標と置き換えれば、電子機器又はコンピュータ上に存在する実行体、集積回路組み込み指標、集積回路組み込み削除用プログラム、及び／又は、集積回路組み込み用プログラム指標の場合に適用が可能である。
【０４３６】
（被組込ソフトウエア）
また、媒体入出力手段を有している場合、組み込み用プログラムが組み込まれたソフトウエアを供給すると、初期設定された組み込み指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標選択（又は画面表示選択）手段による組み込み指標選択により、実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除される。
（被組込ソフトウエア＋組み込み用プログラム）
また、媒体入出力手段を有している場合、組み込み用プログラムが組み込まれたソフトウエアと組み込み削除用プログラムを供給すると、初期設定された組み込み指標と組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標選択により、実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除され、並びに／若しくは、組み込み削除用プログラムが追加、変更、及び／又は削除され、及び／又は、組み込み用プログラム指標が変更される。
（被組込ソフトウエア＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、組み込み用プログラムが組み込まれたソフトウエアと組み込み用プログラム指標を供給すると、初期設定された組み込み指標と組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標選択により、組み込み用プログラムが組み込まれた実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除され、並びに／若しくは組み込み用プログラム指標が変更される。
【０４３７】
（被組込ソフトウエア＋組み込み指標）
また、媒体入出力手段を有している場合、媒体に組み込み用プログラムが組み込まれたソフトウエアと共に組み込み指標を示すファイル又はデータを供給すると、組み込み指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標選択（又は画面表示選択）手段による組み込み指標選択により、組み込み用プログラムが組み込まれた実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除される。この際、組み込み指標の初期設定が変更の場合、組み込み指標の初期設定も変更される。
（被組込ソフトウエア＋組み込み指標＋組み込み削除用プログラム）
また、媒体入出力手段を有している場合、媒体に組み込み用プログラムが組み込まれたソフトウエアと組み込み指標を示すファイル又はデータと組み込み削除用プログラムを供給すると、組み込み指標と初期設定された組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、組み込み用プログラムが組み込まれた実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除され、並びに／もしくは、組み込み削除用プログラムが追加、変更、及び／又は削除され、及び／又は、組み込み用プログラム指標が変更される。この際、組み込み指標の初期設定が変更の場合、組み込み指標の初期設定も変更される。
（被組込ソフトウエア＋組み込み指標＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み用プログラムが組み込まれたソフトウエアと組み込み指標を示すファイル又はデータと組み込み用プログラム指標を供給すると、組み込み指標と初期設定された組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、組み込み用プログラムが組み込まれた実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除される。この際、組み込み指標の初期設定が変更の場合、組み込み指標の初期設定も変更される。
【０４３８】
（組み込み指標）
また、媒体入出力手段を有している場合、媒体に組み込み指標を示すファイル又はデータを供給すると、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標選択（又は画面表示選択）手段による組み込み指標選択により、初期設定の組み込み指標が変更される。
（組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み用プログラム指標を示すファイル又はデータを供給すると、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み用プログラム指標選択により、初期設定の組み込み用プログラム指標が変更される。
（組み込み指標＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み指標と組み込み用プログラム指標を示すファイル又はデータを供給すると、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、初期設定の組み込み指標及び／又は組み込み用プログラム指標が変更される。
（組み込み削除用プログラム）
また、媒体入出力手段を有している場合、組み込み削除用プログラムを供給すると、初期設定された媒体に組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される媒体に組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標選択により、組み込み削除用プログラムが追加、変更、及び／又は削除され、及び／又は、組み込み用プログラム指標が変更される。
（組み込み指標＋組み込み削除用プログラム）
また、媒体入出力手段を有している場合、媒体に組み込み指標を示すファイル又はデータと組み込み削除用プログラムを供給すると、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、初期設定の組み込み指標が変更され、並びに／若しくは、組み込み削除用プログラムが追加、変更、及び／又は削除され、及び／又は、組み込み用プログラム指標が変更される。
【０４３９】
（組み込み削除用プログラム＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み削除用プログラムと共に組み込み用プログラム指標を示すファイル又はデータを供給すると、組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み用プログラム指標選択により、組み込み削除用プログラムが追加、変更、及び／又は削除される。この際、組み込み用プログラム指標の初期設定が変更の場合、組み込み用プログラム指標の初期設定も変更される。
（被組込ソフトウエア＋組み込み削除用プログラム＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み用プログラムが組み込まれたソフトウエアと組み込み削除用プログラムと組み込み用プログラム指標を供給すると、初期設定された組み込み指標と組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、組み込み用プログラムが組み込まれた実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除される。この際、組み込み用プログラム指標の初期設定が変更の場合、組み込み用プログラム指標の初期設定も変更される。
（組み込み指標＋組み込み削除用プログラム＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み用プログラム指標と組み込み削除用プログラムと組み込み用プログラム指標を供給すると、初期設定された組み込み指標と組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、組み込み用プログラムが組み込まれた実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除される。この際、組み込み指標の初期設定が変更の場合、組み込み指標の初期設定も変更され、組み込み用プログラム指標の初期設定が変更の場合、組み込み用プログラム指標の初期設定も変更される。
【０４４０】
（被組込ソフトウエア＋組み込み指標＋組み込み削除用プログラム＋組み込み用プログラム指標）
また、媒体入出力手段を有している場合、媒体に組み込み用プログラムが組み込まれたソフトウエアと組み込み指標を示すファイル又はデータと組み込み削除用プログラムと組み込み用プログラム指標を供給すると、組み込み指標と組み込み用プログラム指標に基づき、また、電子機器の（選択）操作機の,若しくはコンピュータの（選択）操作機の,又はコンピュータが表示手段を有する場合コンピュータの,表示手段に表示される組み込み指標及び／又は組み込み用プログラム指標選択（又は画面表示選択）手段による組み込み指標及び／又は組み込み用プログラム指標選択により、組み込み用プログラムが組み込まれた実行体から組み込み削除用プログラムがバイナリの状態で組み込み削除される。この際、組み込み指標の初期設定が変更の場合、組み込み指標の初期設定も変更され、組み込み用プログラム指標の初期設定が変更の場合、組み込み用プログラム指標の初期設定も変更される。
【０４４１】
（供給媒体から被組込ソフトウエアを供給した場合）説明箇所終
【０４４２】
以上のように、本発明の実施の形態の機械語コード組込システム集積回路を電子機器又はコンピュータに装着しているだけで、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上にある全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上すると共に、組み込んだ機能を有する手段が組み込まれたソフトウエアから組み込んだ機能を有する手段を削除し元のソフトウエアに戻すこともでき、さらに、機能を有する手段を組み込んでいないソフトウエアからでも機能を有する手段を組み込み削除することができ、他人に使用させたくない機能は使用させないようにすることができ、セキュリティ機能が向上する（この詳細の処理については、（非バイナリ組み込みソフトウエアの処理の説明初め）〜（非バイナリ組み込みソフトウエアの処理の説明終）について詳述する。）。
【０４４３】
尚、以上においては、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等を含んだ、上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を使用したが、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、ソフトウエアは機械語かそれともどの高級言語で記載されたものか、及び／又は、初期設定をするかどうか等を含んだ、上述した（集積回路）組み込み指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたものに加えて、ソフトウエアは機械語かそれともどの高級言語で記載されたものかをさらに追加したもの）を使用するようにしてもよい。この場合、ソフトウエアは高級言語で記載されたものであってもよく、高級言語で記載されたものであって、組み込み指標にどの高級言語かが記載されている場合、高級言語のコンパイラでコンパイルされた後に、組み込み削除用プログラムがバイナリの状態で実行体に格納される。また、ソフトウエアも組み込み削除用プログラムも高級言語で記載されている場合であって、組み込み指標と組み込み用プログラム指標にどの高級言語かが記載されている場合、組み込み削除用プログラムを、指定された高級言語のコンパイラでコンパイルし、ソフトウエアを、指定された高級言語のコンパイラでコンパイルし、コンパイルしたソフトウエアの実行体から、コンパイルした組み込み削除用プログラムをバイナリの状態で実行体から組み込み削除される。また、組み込み指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、及び／又は初期設定をするかどうか等を含んだ、上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）と組み込み用プログラム指標（どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、並びに／若しくは初期設定を行うかどうか等を含んだ、上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）との２つのファイルを用いたが、２つのファイル又はデータを１つとした組み込み/組み込み用プログラム指標（どの組み込み用プログラムをどのソフトウエアのどの位置に組み込むのか、初期設定をするかどうか等、どの組み込み用プログラムを追加、変更、及び／又は削除し、組み込み用プログラムの順序、組み込み用プログラムは機械語かそれともどの高級言語で記載されたものか、初期設定を行うかどうか等を含んだ、上述した（集積回路）組み込み用プログラム指標に加えて、どの機能を有する手段を削除するか、どのソフトウエアからどの機能を有する手段を削除するか、機能を有する手段はソフトウエアのどの位置にどれ程のサイズで組み込まれているか、組み込み削除を実行するかどうか、組み込み処理を行うのか組み込み削除処理を行うのか、処理開始時初期設定によるのか選択手段によるのか等がさらに追加されたもの）を共有して使用するようにしてもよい。
【０４４４】
尚、以上において、組み込み用プログラムを組み込んだソフトウエアであれば、組み込み用プログラム、ソフトウエア、及び／又は、組み込み用プログラムを組み込んだソフトウエアを、電子機器又はコンピュータに内蔵の不揮発性のメモリに格納するようにしておき、また、機械語コード組込(削除)システム集積回路１２００内に内蔵されている又はさらに内蔵する不揮発性のメモリ（，さらに内蔵する書き込み回路）に格納するようにしておき、組み込み用プログラムと組み込み用プログラムを組み込んだソフトウエアとの対応関係を記憶しておき、それらの組合せが一致した際に、記憶しておいたソフトウエアを供給するようにしてもよい。また、媒体入出力手段により読み取った組み込み用プログラムは、電子機器又はコンピュータに内蔵の不揮発性のメモリに格納するようにしてもよいし、機械語コード組込(削除)システム集積回路１２００内に内蔵されている又はさらに内蔵する不揮発性のメモリ（，さらに内蔵する書き込み回路）に格納するようにしてもよい。
【０４４５】
また、以上に説明した本発明の実施の形態の機械語コード組込削除システム集積回路１２００を本発明の実施の形態の機械語コード組込削除システム供給若しくは配布媒体とし、電子機器又はコンピュータの媒体供給入出力に挿入することによって、機械語コード組込削除システム集積回路１２００と同様の処理を施す、本発明の実施の形態の機械語コード組込削除システム供給若しくは配布媒体としてもよい。このようにすれば、機械語コード組込削除システム供給若しくは配布媒体を電子機器又はコンピュータに挿入（装着）しているだけで、例えば、バイナリ組み込みコードとして１電子機器唯一動作許可プログラムを組み込めば、電子機器又はコンピュータ上にある全ての実行体をその電子機器又はコンピュータ上でのみしか動作させなくすることができる（１電子機器唯一動作許可機械語コード組込削除システム供給若しくは配布媒体とすることができる）。この為、例えば、他人に電子機器又はコンピュータを使用させるような場合、他人が実行体を持ち出したとしても、この電子機器又はコンピュータ以外では動作させなくすることができ、セキュリティー機能が向上する。図１２（１−１）では、供給若しくは配布媒体をUSB（Universal・Serial・Bus）フラッシュメモリとした場合の実施例である機械語コード組込削除システム供給若しくは配布媒体１２００−１が示されている（供給若しくは配布媒体としては、詳細は後述するが、例えば、USBフラッシュメモリ、USBHDD(Hard・Disk・Drive)、MO、DVD−ROM、CD-ROM、フロッピー（登録商標）ディスク等の各種媒体とすることができる）。機械語コード組込削除システム供給若しくは配布媒体１２００−１を電子機器又はコンピュータの媒体供給入出力に挿入（装着）時は、集積回路組み込み指標と集積回路組み込み用プログラム指標とが供給若しくは配布媒体組み込み指標と供給若しくは配布媒体組み込み用プログラム指標として使用され、組み込み指標と組み込み用プログラム指標とが他の媒体供給入出力に供給された供給媒体で使用されるものとなる。また、機械語コード組込削除システム供給若しくは配布媒体１２００−１の構成は、図１２（２）に示すように、機械語コード組込削除システム集積回路１２００と同様の構成をしており、同様の動作を行う。
（図１０〜図１２に対応した組み込み削除の処理説明箇所終）
【０４４６】
（非バイナリ組み込みソフトウエアの処理の説明初め）
尚、以上においては、機能を有する手段を組み込んだソフトウエアから機能を有する手段を組み込み削除する例を示したが、これに限らず、単数又は複数の機能を有する手段が（あるアドレスからあるアドレス迄の）固まった単位でソフトウエア内に存在する場合は、単数又は複数の（あるアドレスからあるアドレス迄の）固まった単位で存在する機能を有する手段が参照するシステムコール、ｄｌｌ関数（呼び出し関数群格納ファイル被格納呼び出し関数）、インポートセクション（呼び出し関数群呼び出しセクション）、データセクション、及び／又は、他のデータセクション等のアドレス参照箇所の関数及び／又はデータと、ソフトウエアの該当箇所との一致を含め、機能を有する手段がソフトウエア内に存在するかどうかの判断を行う機能を有する手段ソフトウエア内存在／非存在判断手段をさらに備え、機能を有する手段ソフトウエア内存在／非存在判断手段による一致の判断の場合、上述した組み込み削除処理を行うようにするようにすることができる。
【０４４７】
その処理を含めると以下（（組み込み削除の処理再度説明箇所初め）〜（組み込み削除の処理再度説明箇所終））のようになる。
【０４４８】
（組み込み削除の処理再度説明箇所初め）
以下に、ＰＥ（Portable・Executable）フォーマットの場合の、機能を有する手段を組み込んでいないソフトウエアに対応した、本発明の実施の形態の機械語コード組み込み削除(解除)装置の構成及び方法を詳細に説明する。
【０４４９】
本発明の実施の形態の機械語コード組み込み削除装置は、
＜機能を有する手段のソフトウエア存在／非存在＞
単数又は複数の、（あるアドレスからあるアドレス迄の）固まった単位で存在する機能を有する手段が参照するシステムコール、ｄｌｌ関数、インポートセクション、データセクション、及び／又は、他のデータセクション等のアドレス参照箇所の関数及び／又はデータと、ソフトウエアの該当箇所との一致を含め、機能を有する手段がソフトウエア内に存在するかどうかの判断を行う機能を有する手段ソフトウエア内存在／非存在判断手段と
を及び／又は有し、
＜機能を有する手段のソフトウエア存在時＞（及び／又は機能を有する手段ソフトウエア内存在／非存在判断手段による一致の判断の場合）
１．＜コードの削除＞
１．０．  機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
機能を有する手段を組み込んだ／組み込んでいないソフトウエアのコードのどの位置に機能を有する手段を挿入しているかを選択判断するコード挿入位置選択判断手段と
を有し、
１．１．機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合（コード開始アドレスコール箇所検索手段による判断に依る）であって、コードの開始以前に機能を有する手段を挿入している場合（コード挿入位置選択判断手段による判断に依る）、
（コードセクション）ヘッダーのコードセクション開始アドレスを検索するコードセクション開始アドレス検索手段と、
コードセクション開始アドレスからコードセクション内を検索し、コード開始アドレスをコールしている箇所を検索するコードセクション内コード開始アドレスコール箇所検索手段と、
コードセクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コード開始アドレスからコードセクションの開始アドレス（又は、組み込み前のコードセクションの通常の開始アドレス）の前までに挿入したコードを削除するコード削除手段と、
コードセクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに削除した機能を有する手段のコードアドレスを加算した（又は、通常の）開始アドレスに書き換えるコールコード開始アドレス変更手段と
を有し、
１．２．機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コードセクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コードセクションの初め、途中、又は最後に挿入した機能を有する手段のコードを削除するコード削除手段と
を有し、
２．＜データアドレスの変更＞
２．０  削除した機能を有する手段のコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又はdll関数データ使用／非使用判断手段と
を有し、
削除した機能を有する手段のコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用している場合（システムコール又はdll関数データ使用／非使用判断手段による判断に依る）、データをデータセクションから削除するデータセクション削除手段と
を有し、
３．＜削除した機能を有する手段がdllを使用している場合＞
３．０．  削除した機能を有する手段がdllを使用しているかどうかを判断する、機能を有する手段dll使用／非使用判断手段と
を有し、
３．１．＜他の箇所使用dll関数使用／非使用チェック＞
削除した機能を有する手段がｄｌｌを使用している場合（機能を有する手段dll使用／非使用判断手段による判断に依る）、
機能を有する手段が使用しているdll関数のアドレスを検索するdll関数アドレス検索手段と、
機能を有する手段が使用しているdll関数のアドレスをコード内の他の箇所で使用しているかどうかを検索する他の箇所使用dll関数アドレス使用／非使用検索手段と
を有し、
３．１．１．＜他の箇所使用dll関数を使用していない場合＞
コード内の他の箇所で使用dll関数を使用していると判断されなかった場合（他の箇所使用dll関数アドレス使用／非使用検索手段による判断に依る）、
インポートセクション内に、使用dll関数が属するdllの他のdll関数のアドレスを検索するインポートセクション内他のdll関数アドレス検索手段と
を有し、
３．１．１．１．＜インポートセクション内に他のdll関数が検索された場合＞
インポートセクション内に他のdll関数が検索された場合、
他のdll関数をコード内の他の箇所で使用しているかどうかを検索する他のdll関数アドレスコード内の他の箇所使用／非使用検索手段と
を有し、
３．１．１．１．１．＜他のdll関数アドレスを使用していない場合＞
他のdll関数アドレスを使用していると判断されなかった場合（他のdll関数アドレスコード内の他の箇所使用／非使用検索手段による判断に依る）、
dll関数,dll関数のdllに属する全ての他のdll関数,dllを削除し、dll，dll関数削除によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内のdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
３．１．１．１．２．＜他のdll関数アドレスを使用している場合＞
他のdll関数アドレスを使用していると判断された場合（他のdll関数アドレス使用／非使用検索手段による判断に依る）、
dll関数を削除し、dll関数削除によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内のdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
４．＜削除した機能を有する手段が(コード、インポート、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０．  削除した機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１．＜削除した機能を有する手段の他のセクションの要素使用チェック＞
削除した機能を有する手段のコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、コード内の他の箇所に他のセクションの要素を使用しているかどうかを判断するコード内他のセクションの要素存在／非存在検索手段と
を有し、
４．１．１．＜機能を有する手段を組み込んだ／組み込んでいないソフトウエアに他のセクションの要素非存在時＞
機能を有する手段を組み込んだ／組み込んでいないソフトウエアに他のセクションの要素が存在していない場合（コード内他のセクションの要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションから削除し、他のセクションの要素削除によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０．  削除した機能を有する手段の削除により、コード内のアドレスを指定している箇所があるかどうかを判断する、機能を有する手段削除コード内アドレス指定／非指定判断手段と
を有し、
（コードの削除により、コード内のアドレスを指定していた箇所は、削除サイズ分全部ずらす）
（機能を有する手段削除コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コードセクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを削除したコードサイズ分ずらす削除コード分アドレスずらし手段と
を有し、
６．
６．０．  機能を有する手段削除によりコードサイズが初めより小さくなるかどうかを判断するコード削除コードサイズ小／非小判断手段と
を有し、
（機能を有する手段削除によりコードサイズが初めより小さくなる場合）
機能を有する手段削除により、コードサイズがコードセクションヘッダーに記載されているサイズよりも小さくなる場合（コード削除コードサイズ小／非小判断手段による判断に依る）、
コードセクションヘッダー内に記載のコードセクション及び／又はコードセクションのコードサイズをコード削除後のサイズより大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と
を有し、
（コードセクション以外の）第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段
を有し、
第１の他のセクション存在時（第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段の判断による判断に依る）、
コードサイズ変更手段により減分したサイズ分、第１の他のセクションヘッダー内に記載の第１の他のセクションの開始アドレス及び／又は第１の他のセクションを変更する第１の他のセクション開始アドレス変更手段と、
コード内に第１の他のセクションの要素のアドレスを使用している場合、コード削除により、第１の他のセクションの要素のアドレスが変化した分、コード内の第１の他のセクションの要素のアドレスを変更するコード内第１の他のセクションの要素アドレス変更手段と
を有し、
６．１  コード挿入により第１の他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段と
を有し、
（コード挿入により第１の他のセクションサイズが初めより小さくなる場合）
コード削除により、第１の他のセクションのサイズが第１の他のセクションヘッダー内に記載されているサイズよりも小さくなる場合（コード挿入により他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段による判断に依る）、
第１の他のセクションヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションのサイズを第１の他のセクション削除後のサイズより大きい規定幅の大きさのサイズに変更する第１の他のセクションサイズ変更手段と
を有し、
（コードセクション以外の）第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段と
を有し、
第２の他のセクション存在時（第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段による判断による）、
第１の他のセクションの開始アドレス以降に開始アドレスを有する第２の他のセクションヘッダー内に記載の第２の他のセクション及び／又は第２の他のセクションの開始アドレスを第１の他のセクションの開始アドレスとサイズの減分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード削除により、第２の他のセクションの要素のアドレスが変化した分、コード内の第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
６．２  第１の他のセクションを第２の他のセクションの開始アドレスを有する他のセクションとして、第１の他のセクションが存在しなくなるまで、６．１の処理を繰り返し実行する、６．１の処理繰り返し実行手段と
を有する
ことを特徴とする。
【０４５０】
尚、上述した機械語コード組み込み削除装置は、ＥＬＦ（Executable・and・Linkable・Format）フォーマットの場合でも同様に組み込み削除が行え、ＰＥファイルフォーマットの場合、各セクションヘッダーのアドレス及び／又はサイズ等の検索に、ＰＥヘッダー及び／又はセクションヘッダーを用いていたものを、ＥＬＦファイルフォーマットの場合、ＥＬＦヘッダー、プログラムヘッダー、セクションヘッダ、及び／又は、セクションヘッダーテーブルを用いるようになり、これらを、（各セクションのアドレス及び／又はサイズが記載されている）ヘッダーと纏めて記すと、ＥＬＦフォーマットを含める場合は、以下のようになる。
本発明の実施の形態の機械語コード組み込み削除装置は、
ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することを特徴とするソフトウエア製造装置であって、
＜機能を有する手段のソフトウエア存在／非存在＞
単数又は複数の、（あるアドレスからあるアドレス迄の）固まった単位で存在する機能を有する手段が参照するシステムコール、呼び出し関数群格納ファイル被格納呼び出し関数、呼び出し関数群呼び出しセクション、データセクション、及び／又は、他のデータセクション等のアドレス参照箇所の関数及び／又はデータと、ソフトウエアの該当箇所との一致を含め、機能を有する手段がソフトウエア内に存在するかどうかの判断を行う機能を有する手段ソフトウエア内存在／非存在判断手段と
を及び／又は有し、
＜機能を有する手段のソフトウエア存在時＞（及び／又は機能を有する手段ソフトウエア内存在／非存在判断手段による一致の判断の場合）
１．＜コードの削除＞
１．０．  機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
機能を有する手段を組み込んだ／組み込んでいないソフトウエアのコードのどの位置に機能を有する手段を挿入しているかを選択判断するコード挿入位置選択判断手段と
を有し、
１．１．機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所がある場合（コード開始アドレスコール箇所検索手段による判断に依る）であって、コードの開始以前に機能を有する手段を挿入している場合（コード挿入位置選択判断手段による判断に依る）、
（コード記載セクション）ヘッダーのコード記載セクション開始アドレスを検索するコード記載セクション開始アドレス検索手段と、
コード記載セクション開始アドレスからコード記載セクション内を検索し、コード開始アドレスをコールしている箇所を検索するコード記載セクション内コード開始アドレスコール箇所検索手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスに基づき、コード開始アドレスからコード記載セクションの開始アドレス（又は、組み込み前のコード記載セクションの通常の開始アドレス）の前までに挿入したコードを削除するコード削除手段と、
コード記載セクション内コード開始アドレスコール箇所検索手段により検索されたコード開始アドレスコール箇所のコード開始アドレスに削除した機能を有する手段のコードアドレスを加算した（又は、通常の）開始アドレスに書き換えるコールコード開始アドレス変更手段と
を有し、
１．２．機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コード記載セクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コード記載セクションの初め、途中、又は最後に挿入した機能を有する手段のコードを削除するコード削除手段と
を有し、
２．＜データアドレスの変更＞
２．０  削除した機能を有する手段のコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段と
を有し、
削除した機能を有する手段のコード内にシステムコール又は呼び出し関数群格納ファイル被格納呼び出し関数をコールしており、その関数がデータを使用している場合（システムコール又は呼び出し関数群格納ファイル被格納呼び出し関数データ使用／非使用判断手段による判断に依る）、データをデータセクションから削除するデータセクション削除手段と
を有し、
３．＜削除した機能を有する手段が呼び出し関数群格納ファイルを使用している場合＞
３．０．  削除した機能を有する手段が呼び出し関数群格納ファイルを使用しているかどうかを判断する、機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段と
を有し、
３．１．＜他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数使用／非使用チェック＞
削除した機能を有する手段が呼び出し関数群格納ファイルを使用している場合（機能を有する手段呼び出し関数群格納ファイル使用／非使用判断手段による判断に依る）、
機能を有する手段が使用している呼び出し関数群格納ファイル被格納呼び出し関数のアドレスを検索する呼び出し関数群格納ファイル被格納呼び出し関数アドレス検索手段と、
機能を有する手段が使用している呼び出し関数群格納ファイル被格納呼び出し関数のアドレスをコード内の他の箇所で使用しているかどうかを検索する他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段と
を有し、
３．１．１．＜他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数を使用していない場合＞
コード内の他の箇所で使用呼び出し関数群格納ファイル被格納呼び出し関数を使用していると判断されなかった場合（他の箇所使用呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段による判断に依る）、
呼び出し関数群呼び出しセクション内に、使用呼び出し関数群格納ファイル被格納呼び出し関数が属する呼び出し関数群格納ファイルの他の呼び出し関数群格納ファイル被格納呼び出し関数のアドレスを検索する呼び出し関数群呼び出しセクション内他の呼び出し関数群格納ファイル被格納呼び出し関数アドレス検索手段と
を有し、
３．１．１．１．＜呼び出し関数群呼び出しセクション内に他の呼び出し関数群格納ファイル被格納呼び出し関数が検索された場合＞
呼び出し関数群呼び出しセクション内に他の呼び出し関数群格納ファイル被格納呼び出し関数が検索された場合、
他の呼び出し関数群格納ファイル被格納呼び出し関数をコード内の他の箇所で使用しているかどうかを検索する他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスコード内の他の箇所使用／非使用検索手段と
を有し、
３．１．１．１．１．＜他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していない場合＞
他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していると判断されなかった場合（他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスコード内の他の箇所使用／非使用検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数,呼び出し関数群格納ファイル被格納呼び出し関数の呼び出し関数群格納ファイルに属する全ての他の呼び出し関数群格納ファイル被格納呼び出し関数,呼び出し関数群格納ファイルを削除し、呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数削除によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
３．１．１．１．２．＜他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用している場合＞
他の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを使用していると判断された場合（他の呼び出し関数群格納ファイル被格納呼び出し関数アドレス使用／非使用検索手段による判断に依る）、
呼び出し関数群格納ファイル被格納呼び出し関数を削除し、呼び出し関数群格納ファイル被格納呼び出し関数削除によるアドレス変更分呼び出し関数群呼び出しセクション内の呼び出し関数群格納ファイルアドレス、呼び出し関数群格納ファイル被格納呼び出し関数アドレス、及び／又は呼び出し関数群呼び出しセクション内のそれ以外のアドレス参照アドレスを変更する呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と、
現コード内の呼び出し関数群格納ファイル被格納呼び出し関数アドレスを呼び出し関数群呼び出しセクション内呼び出し関数群格納ファイル，呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段により変更されたアドレスに変更する現コード内呼び出し関数群格納ファイル被格納呼び出し関数アドレス変更手段と
を有し、
４．＜削除した機能を有する手段が(コード記載、呼び出し関数群呼び出し、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０．  削除した機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１．＜削除した機能を有する手段の他のセクションの要素使用チェック＞
削除した機能を有する手段のコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、コード内の他の箇所に他のセクションの要素を使用しているかどうかを判断するコード内他のセクションの要素存在／非存在検索手段と
を有し、
４．１．１．＜機能を有する手段を組み込んだ／組み込んでいないソフトウエアに他のセクションの要素非存在時＞
機能を有する手段を組み込んだ／組み込んでいないソフトウエアに他のセクションの要素が存在していない場合（コード内他のセクションの要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションから削除し、他のセクションの要素削除によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０．  削除した機能を有する手段の削除により、コード内のアドレスを指定している箇所があるかどうかを判断する、機能を有する手段削除コード内アドレス指定／非指定判断手段と
を有し、
（コードの削除により、コード内のアドレスを指定していた箇所は、削除サイズ分全部ずらす）
（機能を有する手段削除コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コード記載セクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを削除したコードサイズ分ずらす削除コード分アドレスずらし手段と
を有し、
６．
６．０．  機能を有する手段削除によりコードサイズが初めより小さくなるかどうかを判断するコード削除コードサイズ小／非小判断手段と
を有し、
（機能を有する手段削除によりコードサイズが初めより小さくなる場合）
機能を有する手段削除により、コードサイズが（コード記載セクション）ヘッダーに記載されているサイズよりも小さくなる場合（コード削除コードサイズ小／非小判断手段による判断に依る）、
（コード記載セクション）ヘッダー内に記載のコード記載セクション及び／又はコード記載セクションのコードサイズをコード削除後のサイズより大きい規定幅の大きさのサイズに変更するコードサイズ変更手段と
を有し、
（コード記載セクション以外の）第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段
を有し、
第１の他のセクション存在時（第１の他のセクションが存在するかどうか判断する第１の他のセクションが存在／非存在判断手段の判断による判断に依る）、
コードサイズ変更手段により減分したサイズ分、（第１の他のセクション）ヘッダー内に記載の第１の他のセクションの開始アドレス及び／又は第１の他のセクションを変更する第１の他のセクション開始アドレス変更手段と、
コード内に第１の他のセクションの要素のアドレスを使用している場合、コード削除により、第１の他のセクションの要素のアドレスが変化した分、コード内の第１の他のセクションの要素のアドレスを変更するコード内第１の他のセクションの要素アドレス変更手段と
を有し、
６．１  コード挿入により第１の他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段と
を有し、
（コード挿入により第１の他のセクションサイズが初めより小さくなる場合）
コード削除により、第１の他のセクションのサイズが（第１の他のセクション）ヘッダー内に記載されているサイズよりも小さくなる場合（コード挿入により他のセクションサイズが初めより小さくなるかどうかを判断するコード挿入第１の他のセクションサイズ小／非小判断手段による判断に依る）、
（第１の他のセクション）ヘッダー内に記載の第１の他のセクション及び／又は第１の他のセクションのサイズを第１の他のセクション削除後のサイズより大きい規定幅の大きさのサイズに変更する第１の他のセクションサイズ変更手段と
を有し、
（コード記載セクション以外の）第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段と
を有し、
第２の他のセクション存在時（第２の他のセクションが存在するかどうか判断する第２の他のセクションが存在／非存在判断手段による判断による）、
第１の他のセクションの開始アドレス以降に開始アドレスを有する（第２の他のセクション）ヘッダー内に記載の第２の他のセクション及び／又は第２の他のセクションの開始アドレスを第１の他のセクションの開始アドレスとサイズの減分だけずらす第２の他のセクションの開始アドレス変更手段と、
コード内に第２の他のセクションの要素のアドレスを使用している場合、コード削除により、第２の他のセクションの要素のアドレスが変化した分、コード内の第２の他のセクションの要素のアドレスを変更するコード内第２の他のセクションの要素アドレス変更手段と
を有し、
６．２  第１の他のセクションを第２の他のセクションの開始アドレスを有する他のセクションとして、第１の他のセクションが存在しなくなるまで、６．１の処理を繰り返し実行する、６．１の処理繰り返し実行手段と
を有し、
ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除する
ことを特徴とするソフトウエア製造装置
となる。
尚、以上において、他のファイルフォーマットにおいても、上述したソフトウエア製造装置において、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することができ、COFF（Common・Object・File・Format）、XCOFF、ECOFF、a.outフォーマットの場合においてもフォーマットに応じて不用な手段を使用しないようにすれば、上述したソフトウエア製造装置において、ソフトウエアにバイナリの状態で組み込んだ／組み込んでいない機能を有する手段をバイナリの状態で組み込み削除することができる。
【０４５１】
尚、図１乃至図８に示す、本発明の実施の形態、本発明の第１乃至第５の実施の形態における、バイナリ組み込みの方法に対応したバイナリ組み込み削除の方法は、上述したバイナリ組み込み削除の方法のうち、図９（４）に示すバイナリ状態での実行体への機械語コード組み込み装置に対応したバイナリ組み込み削除装置に該当し、コード内にコードセクション内のプログラム開始位置にジャンプする箇所がない場合であり、図９（１）、（２）以外の場合、実行体ではなく、関数群が組み込まれているファイル（例えば、Windows（登録商標）の場合、dll）に組み込まれている関数を使用し呼び出すコードが使用されている場合、コードセクションの初め、中間、又は最後に、削除したいバイナリコードを挿入されている。また、削除したいバイナリコードがデータを使用している場合、データセクションからデータを削除する。また、挿入したバイナリコードが他のデータセクションのデータを使用している場合、他のデータセクションからデータを削除する。また、コードを削除したことによる他のコード部分のコード内のアドレスを参照している箇所のアドレスの変更も行う処理を有しており、詳細には、
＜機能を有する手段のソフトウエア存在／非存在＞
単数又は複数の、（あるアドレスからあるアドレス迄の）固まった単位で存在する機能を有する手段が参照するシステムコール、ｄｌｌ関数、インポートセクション、データセクション、及び／又は、他のデータセクション等のアドレス参照箇所の関数及び／又はデータと、ソフトウエアの該当箇所との一致を含め、機能を有する手段がソフトウエア内に存在するかどうかの判断を行う機能を有する手段ソフトウエア内存在／非存在判断手段と
を及び／又は有し、
＜機能を有する手段のソフトウエア存在時＞（及び／又は機能を有する手段ソフトウエア内存在／非存在判断手段による一致の判断の場合）
１．＜コードの削除＞
１．０．  機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所があるかどうかを検索するコード開始アドレスコール箇所検索手段と、
を有し、
１．２．機能を有する手段を組み込んだ／組み込んでいないソフトウエアに、デバッグ情報等、現コード内にコード開始アドレスをコールする箇所が無い場合（コード開始アドレスコール箇所検索手段による判断に依る）、又は１．１以外の場合
（コードセクション）ヘッダーのコード開始アドレスを検索するコード開始アドレス検索手段と、
コード開始アドレス検索手段により検索されたコード開始アドレスに基づき、コードセクションの初め、途中、又は最後に挿入した機能を有する手段のコードを削除するコード削除手段と
を有し、
２．＜データアドレスの変更＞
２．０  削除した機能を有する手段のコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用しているかどうかを判断するシステムコール又はdll関数データ使用／非使用判断手段と
を有し、
削除した機能を有する手段のコード内にシステムコール又はdll関数をコールしており、その関数がデータを使用している場合（システムコール又はdll関数データ使用／非使用判断手段による判断に依る）、データをデータセクションから削除するデータセクション削除手段と
を有し、
３．＜削除した機能を有する手段がdllを使用している場合＞
３．０．  削除した機能を有する手段がdllを使用しているかどうかを判断する、機能を有する手段dll使用／非使用判断手段と
を有し、
３．１．＜他の箇所使用dll関数使用／非使用チェック＞
削除した機能を有する手段がｄｌｌを使用している場合（機能を有する手段dll使用／非使用判断手段による判断に依る）、
機能を有する手段が使用しているdll関数のアドレスを検索するdll関数アドレス検索手段と、
機能を有する手段が使用しているdll関数のアドレスをコード内の他の箇所で使用しているかどうかを検索する他の箇所使用dll関数アドレス使用／非使用検索手段と
を有し、
３．１．１．＜他の箇所使用dll関数を使用していない場合＞
コード内の他の箇所で使用dll関数を使用していると判断されなかった場合（他の箇所使用dll関数アドレス使用／非使用検索手段による判断に依る）、
インポートセクション内に、使用dll関数が属するdllの他のdll関数のアドレスを検索するインポートセクション内他のdll関数アドレス検索手段と
を有し、
３．１．１．１．＜インポートセクション内に他のdll関数が検索された場合＞
インポートセクション内に他のdll関数が検索された場合、
他のdll関数をコード内の他の箇所で使用しているかどうかを検索する他のdll関数アドレスコード内の他の箇所使用／非使用検索手段と
を有し、
３．１．１．１．１．＜他のdll関数アドレスを使用していない場合＞
他のdll関数アドレスを使用していると判断されなかった場合（他のdll関数アドレスコード内の他の箇所使用／非使用検索手段による判断に依る）、
dll関数,dll関数のdllに属する全ての他のdll関数,dllを削除し、dll，dll関数削除によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内のdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
３．１．１．１．２．＜他のdll関数アドレスを使用している場合＞
他のdll関数アドレスを使用していると判断された場合（他のdll関数アドレス使用／非使用検索手段による判断に依る）、
dll関数を削除し、dll関数削除によるアドレス変更分インポートセクション内のdllアドレス、dll関数アドレス、及び／又はインポートセクション内のそれ以外のアドレス参照アドレスを変更するインポートセクション内dll，dll関数アドレス変更手段と、
現コード内のdll関数アドレスをインポートセクション内dll，dll関数アドレス変更手段により変更されたアドレスに変更する現コード内dll関数アドレス変更手段と
を有し、
４．＜削除した機能を有する手段が(コード、インポート、データセクション以外の単数又は複数の)他のセクションの要素を使用している場合＞
４．０．  削除した機能を有する手段が他のセクションの要素を使用しているかどうかを判断する、機能を有する手段他のセクションの要素使用／非使用判断手段と
を有し、
４．１．＜削除した機能を有する手段の他のセクションの要素使用チェック＞
削除した機能を有する手段のコード内に他のセクションの要素を使用している場合（機能を有する手段他のセクションの要素使用／非使用判断手段による判断に依る）、コード内の他の箇所に他のセクションの要素を使用しているかどうかを判断するコード内他のセクションの要素存在／非存在検索手段と
を有し、
４．１．１．＜機能を有する手段を組み込んだ／組み込んでいないソフトウエアに他のセクションの要素非存在時＞
機能を有する手段を組み込んだ／組み込んでいないソフトウエアに他のセクションの要素が存在していない場合（コード内他のセクションの要素存在／非存在検索手段による判断に依る）、
他のセクションの要素を他のセクションから削除し、他のセクションの要素削除によるアドレス変更分他のセクション内の他のセクションの要素アドレスを変更する他のセクションの要素アドレス変更手段と、
現コード内に他のセクションの要素のアドレスを使用している場合、使用しているアドレスを他のセクションの要素アドレス変更手段により変更されたアドレスに変更する他のセクションの現コード内他の要素アドレス変更手段と
を有し、
４．２  上述した、４．の処理を、機能を有する手段が使用している、全ての他のセクション対して実行する、上述４．処理機能を有する手段使用全他のセクション実行手段と
を有し、
５．
５．０．  削除した機能を有する手段の削除により、コード内のアドレスを指定している箇所があるかどうかを判断する、機能を有する手段削除コード内アドレス指定／非指定判断手段と
を有し、
（コードの削除により、コード内のアドレスを指定していた箇所は、削除サイズ分全部ずらす）
（機能を有する手段削除コード内アドレス指定／非指定判断手段による判断に依り、指定していた箇所がある場合、）現コード内で、アドレスを参照する命令を検索し、コードセクション内のアドレスを参照しているアドレスを検索し、検索したアドレスを削除したコードサイズ分ずらす削除コード分アドレスずらし手段と
を有した処理を使用して、バイナリコード(機能を有する手段)が組み込まれたソフトウエアからバイナリコード(機能を有する手段)が削除される。
（組み込み削除の処理再度説明箇所終）
（非バイナリ組み込みソフトウエアの処理の説明終）
【０４５２】
なお、上記実施の形態及び実施例中において説明した処理を行うプログラムをプログラム実施者に供給若しくは配布する供給若しくは配布媒体としては、磁気テープ,光/磁気・半導体ディスク, フラッシュメモリ等を含む半導体メモリ,超伝導メモリ等の記録媒体の他、伝送媒体等を含み、プログラム実施者に供給若しくは配布可能な供給若しくは配布媒体であればどのようなものであってもよい（本明細書中、特許請求の範囲中、図面中、要約書中においても上記したことが同様に適用される）。
【図面の簡単な説明】
【０４５３】
【図１】本発明の１実施の形態を示す概念図である。
【図２】本発明の１実施の形態を示す概念図である。
【図３】本発明の１実施の形態を示す概念図である。
【図４】本発明の１実施の形態（実施例１）を示す概念図である。
【図５】本発明の１実施の形態の他の形態（実施例２）を示す概念図である。
【図６】本発明の１実施の形態の他の形態（実施例３）を示す概念図である。
【図７】本発明の１実施の形態の他の形態（実施例４）を示す概念図である。
【図８】本発明の１実施の形態の他の形態（実施例５）を示す概念図である。
【図９】本発明の１実施の形態の他の形態を示す概念図である。
【図１０】本発明の１実施の形態の他の形態を示す概念図である。
【図１１】本発明の１実施の形態の他の形態を示す概念図である。
【図１２】本発明の１実施の形態の他の形態を示す概念図である。
【符号の説明】
【０４５４】
０  １電子機器唯一動作許可ソフトウエア，  １  被生成ソフトウエア，  ２  １電子機器唯一動作許可被生成ソフトウエア生成ソフトウエア，５  １電子機器唯一動作許可被生成ソフトウエア生成ソフトウエア生成装置，  ６  被生成被管理ソフトウエア，７  １電子機器唯一動作許可ソフトウエア管理装置，  １６  ＭＡＣアドレス自身書込部，  １１  ＭＡＣアドレス格納領域，  １３  ＭＡＣアドレス比較判定部，  １８  起動時削除部，  １９  ＭＡＣアドレス取得部，  ２０  ソフトウエア管理装置格納領域，  ２１  ＭＡＣアドレス格納領域，  ２２  ＭＡＣアドレス組込部，２３  ＭＡＣアドレス比較判定部,  ２４  ソフトウエア管理装置生成部，  ２６  ＭＡＣアドレス自身組込部，  ２７  ソフトウエア起動部，  ２８  終了時削除部，  ２９  ＭＡＣアドレス取得部，  １００  ソフトウエア組込器，
１ａ  ソフトウエア，  ２ａ  インストーラ，  １１ａ  ＭＡＣアドレス格納領域，  １３ａ  ＭＡＣアドレス比較判定部，  １９ａ  ＭＡＣアドレス取得部，  ２０ａ  ソフトウエア管理装置格納領域，  ２１ａ  ＭＡＣアドレス格納領域，  ２２ａ  ＭＡＣアドレス組込部，  ２３ａ  ＭＡＣアドレス比較判定部，  ２４ａ  ソフトウエア管理装置生成部，  ２６ａ  ＭＡＣアドレス自身組込部，  ２９ａ  ＭＡＣアドレス取得部，  １００ａ  ソフトウエア組込器，
１ｂ  ソフトウエア，  ２ｂ  インストーラ，  ３ｂ  インストーラ管理装置，  ５ｂ  インストーラ生成装置，  １１ｂ  ＭＡＣアドレス格納領域，  １３ｂ  ＭＡＣアドレス比較判定部，  １９ｂ  ＭＡＣアドレス取得部，  ２０ｂ  ソフトウエア管理装置格納領域，  ２１ｂ  ＭＡＣアドレス格納領域，２３ｂ  ＭＡＣアドレス比較判定部,  ２４ｂ  ソフトウエア管理装置生成部，  ２７ｂ  起動時削除部，  ２９ｂ  ＭＡＣアドレス取得部，  ３０ｂ  インストーラ格納領域，  ３２ｂ  ＭＡＣアドレス組込部，  ３４ｂ  インストーラ生成部，  ３７ｂ  インストーラ起動部，３９ｂ  ＭＡＣアドレス取得部，  １００ｂ  ソフトウエア組込器，  １１０ｂ  インストーラ組込器，
１ｃ  ソフトウエア，  ２ｃ  インストーラ，  ４ｃ  ソフトウエア管理装置，  ５ｃ  インストーラ生成装置，  １１ｃ  ＭＡＣアドレス格納領域，  １３ｃ  ＭＡＣアドレス比較判定部，  １９ｃ  ＭＡＣアドレス取得部，  ２０ｃ  ソフトウエア管理装置格納領域，  ２１ｃ  ＭＡＣアドレス格納領域，  ２２ｃ  ＭＡＣアドレス組込部，２３ｃ  ＭＡＣアドレス比較判定部,  ２４ｃ  ソフトウエア管理装置生成部，  ２６ｃ  ＭＡＣアドレス自身組込部，  ２９ｃ  ＭＡＣアドレス取得部，  ４０ｃ  ソフトウエア格納領域，  ４１ｃ  ＭＡＣアドレス格納領域，  ４３ｃ  ＭＡＣアドレス比較判定部，  ４４ｃ  ソフトウエア生成部，  ４５ｃ  ソフトウエア起動部，  ４７ｃ  ソフトウエア比較判定部，  ４８ｃ  終了時削除部，  ４９ｃ  ＭＡＣアドレス取得部，  １００ｃ  ソフトウエア組込器，  １２０ｃ  ソフトウエア管理装置組込器，
１ｄ  ソフトウエア，  ２ｄ  インストーラ，  ３ｄ  インストーラ管理装置，  ４ｄ  ソフトウエア管理装置，  ５ｄ  インストーラ生成装置，  １１ｄ  ＭＡＣアドレス格納領域，  １３ｄ  ＭＡＣアドレス比較判定部，  １９ｄ  ＭＡＣアドレス取得部，  ２０ｄ  ソフトウエア管理装置格納領域，  ２１ｄ  ＭＡＣアドレス格納領域，  ２２ｄ  ＭＡＣアドレス組込部，２３ｄ  ＭＡＣアドレス比較判定部,  ２４ｄ  ソフトウエア管理装置生成部，  ２５ｄ  ソフトウエア管理装置復号部，  ２６ｄ  ＭＡＣアドレス自身組込部，  ２７ｄ  起動時削除部，  ２９ｄ  ＭＡＣアドレス取得部，  ３０ｄ  インストーラ格納領域，  ３１ｄ  ＭＡＣアドレス格納領域，  ３２ｄ  ＭＡＣアドレス組込部，  ３３ｄ  ＭＡＣアドレス比較判定部，  ３４ｄ  インストーラ生成部，３６ｄ  ＭＡＣアドレス自身組込部，  ３７ｄ  インストーラ起動部，  ３８ｄ  終了時削除部，  ３９ｄ  ＭＡＣアドレス取得部，  ４０ｄ  ソフトウエア格納領域，  ４１ｄ  ＭＡＣアドレス格納領域，  ４３ｄ  ＭＡＣアドレス比較判定部，  ４４ｄ  ソフトウエア生成部，４６ｄ  ソフトウエア起動部，  ４８ｄ  終了時削除部，  １００ｄ  ソフトウエア組込器，  １１０ｄ  インストーラ組込器，  １２０ｄ  ソフトウエア管理装置組込器，
１ｅ  ソフトウエア，  ２ｅ  インストーラ，  ３ｅ  インストーラ管理装置，  ４ｅ  ソフトウエア管理装置，  ５ｅ  インストーラ生成装置，  １１ｅ  ＭＡＣアドレス格納領域，  １３ｅ  ＭＡＣアドレス比較判定部，  １９ｅ  ＭＡＣアドレス取得部，  ２０ｅ  ソフトウエア管理装置格納領域，  ２１ｅ  ＭＡＣアドレス格納領域，２３ｅ  ＭＡＣアドレス比較判定部,  ２４ｅ  ソフトウエア管理装置生成部，  ２５ｅ  ソフトウエア管理装置復号部，  ２９ｅ  ＭＡＣアドレス取得部，  ３０ｅ  インストーラ格納領域，  ３１ｅ  ＭＡＣアドレス格納領域，  ３２ｅ  ＭＡＣアドレス組込部，  ３３ｅ  ＭＡＣアドレス比較判定部，  ３４ｅ  インストーラ生成部，３５ｅ  インストーラ復号部，３６ｅ  ＭＡＣアドレス自身組込部，  ３７ｅ  インストーラ起動部，  ３８ｅ  終了時削除部，  ４０ｅ  ソフトウエア格納領域，  ４１ｅ  ＭＡＣアドレス格納領域，  ４３ｅ  ＭＡＣアドレス比較判定部，  ４４ｅ  ソフトウエア生成部，  ４５ｅ  ソフトウエア起動部，  ４７ｅ  ソフトウエア起動部，  ４８ｅ  終了時削除部，  ４９ｅ  ＭＡＣアドレス取得部，  １００ｅ  ソフトウエア組込器，  １１０ｅ  インストーラ組込器，  １２０ｅ  ソフトウエア管理装置組込器，
１０００a，１０００ｂ，１０００ｃ，  機械語コード組込(削除(解除))装置（電子機器），  １０１１a，１０１１ｂ，１０１１c  ＣＰＵ，  １０１２a，１０１２ｂ，１０１２c  ＲＯＭ，  １０１３a，１０１３ｂ，１０１３c  ＲＡＭ，  １０１４a，１０１４ｂ，１０１４c  内部バス，  １０１５a，１０１５ｂ，１０１５c  入出力インターフェイス，  １０１６a，１０１６ｂ，１０１６c  各種媒体入出力（挿入口），  １０１７a，１０１７ｂ，１０１７c  組込状態表示釦，  １０１８ｂ  各種釦，  １０２０ｂ  表示部，  １０２１a（１０２１a−１〜１０２１a−N），１０２１ｂ（１０２１ｂ−１〜１０２１ｂ−N），１０２１ｃ（１０２１ｃ−１〜１０２１ｃ−N）  各種処理開始用釦，  １０２２a，１０２２ｂ，１０２２c  各種媒体入出力，  １０２３a，１０２３ｃ  （選択）操作機（コンピュータ）入出力（挿入口），１０２４a，１０２４ｃ  （選択）操作機（コンピュータ），
１２００，１２００a，１２００ｂ  機械語コード組込(削除(解除))システム集積回路，  １２００−１  機械語コード組込(削除(解除))システム供給若しくは配布媒体，  １２２１a，１２２１ｂ  ＣＰＵ，  １２１２a，１２１２ｂ  ＲＯＭ，  １２１３a，１２１３ｂ  ＲＡＭ，  １２１４a，１２１４ｂ  内部バス，  １２１５a，１２１５ｂ  入出力インターフェイス，  １２１６a，１２１６ｂ  各種媒体入出力（挿入口），  １２１８a，１２１８ｂ  キーボード，  １２１９a，１２１９ｂ  マウス，  １２２０a，１２２０ｂ  ディスプレイ，  １２２２a，１２２２ｂ，１２２２c  各種媒体入出力，  １２２５a  電子機器各要素入出力，１２２８ｂ  （選択）操作機（コンピュータ）各要素入出力，１２２７a，１２２７ｂ  （選択）操作機  
【図１】
2010073218.tif 000003
【図２】
2010073218.tif 000004
【図３】
2010073218.tif 000005
【図４】
2010073218.tif 000006
【図５】
2010073218.tif 000007
【図６】
2010073218.tif 000008
【図７】
2010073218.tif 000009
【図８】
2010073218.tif 000010
【図９】
2010073218.tif 000011
【図１０】
2010073218.tif 000012
【図１１】
2010073218.tif 000013
【図１２】
2010073218.tif 000014