JP2009505275A - モジュール内の実行アプリケーション・プログラムの安全性を検査するシステム、方法、及びコンピュータプログラム - Google Patents

モジュール内の実行アプリケーション・プログラムの安全性を検査するシステム、方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP2009505275A
JP2009505275A JP2008526922A JP2008526922A JP2009505275A JP 2009505275 A JP2009505275 A JP 2009505275A JP 2008526922 A JP2008526922 A JP 2008526922A JP 2008526922 A JP2008526922 A JP 2008526922A JP 2009505275 A JP2009505275 A JP 2009505275A
Authority
JP
Japan
Prior art keywords
application program
computer module
code
execution
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008526922A
Other languages
English (en)
Inventor
ウィリアム レノン,
オイステイン ダルスヴェーン,
Original Assignee
ソニー エリクソン モバイル コミュニケーションズ, エービー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー エリクソン モバイル コミュニケーションズ, エービー filed Critical ソニー エリクソン モバイル コミュニケーションズ, エービー
Publication of JP2009505275A publication Critical patent/JP2009505275A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

コンピュータ・モジュールの中央演算処理ユニット向けのアプリケーション・プログラムが開発される。アプリケーション用のソースコードが書かれ、デバッグされる。そして、アプリケーション・プログラム用のソースファイルはコンパイル及びアセンブルされ、実行アプリケーション・プログラムが提供される。実行アプリケーション・プログラムはコンピュータ・モジュールに読み出される。実行アプリケーション・プログラムによるコンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプを防ぐため、コンピュータ・モジュールに読み出されたアプリケーション・プログラムに安全性検査実行コードが挿入される。挿入された安全性検査コード付きの実行アプリケーション・プログラムはコンピュータ・モジュールに記憶される。
【選択図】図1

Description

本発明はデータ処理システム、方法、及びコンピュータプログラムに関し、とりわけコンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムの開発及び実行をするためのシステム、方法、及びコンピュータプログラムに関する。
コンピュータ・モジュールは消費者用及び産業用の多くの用途で広く使用される。これらで使用される場合に、コンピュータ・モジュールは、コンピュータプログラムを実行するように構成された中央演算処理ユニット(CPU)、1以上の分類のメモリ装置を含んでもよく、コンピュータプログラム及び/又はデータを記憶するように構成されたメモリ、及びコンピュータ・モジュールの所望の機能を実行するのに使用されるであろう入力/出力(I/O)装置及び/又は無線周波装置のような1以上の周辺装置を含む。コンピュータ・モジュールは多岐にわたる物理的な大きさ及び/又は複雑性を示すであろう。
比較的小型なコンピュータ・モジュールの一例は、本特許出願の承継人であるソニー エリクソン モバイル コミュニケーションズ, エービーによって販売されているGR47/48モジュールである。「ソニー エリクソン GR47/48 増加した柔軟性 単純化されたアプリケーション開発」というタイトルの暫定データシートに記載の通り、ソニー エリクソン GR47/48は一連のGSM/GPRSの音声及びデータ機能を小型なユニット(ちょうど50×33×7.2mm)にフル搭載した非常に進歩した無線装置である。GR47/48はマシン・ツー・マシン(M2M)通信に最適化され、開発者がGPRSを活用することを可能とする組み込みTCP/IPプロトコルスタックを有することを特色とする。開発者のM2Mソリューションに容易に適応するように、提供された広範囲の入力/出力ピンを最適に使用するためにGR47/48を設定可能である。組み込みコントローラはアラーム、メータ示度、販売アプリケーションなどの分野のホスティング・アプリケーションに利用できる。
暫定データシートに記載の通り、M2Mパワー・パッケージを使用すると、GR47/48はスタンドアロン製品として又はM2Mパワー・ビジネス・ソリューションと連動して使用できる。M2Mパワー・パッケージは、開発者がGR47/48上で直接アプリケーションを開発し、組み込むことを可能とする支援環境を提供する。アプリケーションをGR47/48に組み込むことで、開発者にとって効率的な開発、販売までの時間の短縮、及び総ソリューション・コストの軽減が可能となる。M2Mパワー・パッケージは開発ツール、文書、研修及びサポートを含む。M2Mパワー・パッケージについては「ソニー エリクソン M2Mパワー・パッケージ 短時間で費用効果的なアプリケーション開発」というタイトルの冊子に記載されている。
前述したM2Mパワー・パッケージは、コンピュータ・モジュール上で実行されるであろうアプリケーションをサード・パーティの開発者が開発することを可能とするカスタマイズされたコンピュータ・モジュール用統合開発環境(IDE)の一例である。M2Mパワー・パッケージのようなカスタマイズされた統合開発環境が所定のコンピュータ・モジュール向けに提供されるであろう。不都合なことに、カスタマイズされた統合開発環境の開発及び保守には費用がかかるであろう。さらに、コンピュータ・モジュールにおいてプログラムの保管領域には限りがあるだろう。そこで、統合開発環境によって使用されるモジュールの保管領域を軽減し又は最小化する統合開発環境が提供されることが望まれるであろう。
本発明の好適な実施形態は、コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発する方法を提供する。アプリケーション用のソースコードが記述及びデバッグされる。そして、実行アプリケーション・プログラムを提供するために、アプリケーション・プログラム用のソースファイルはコンパイル及びアセンブルされる。実行アプリケーション・プログラムはコンピュータ・モジュール内に読み出される。実行アプリケーション・プログラムによるコンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及び/又はジャンプを防止するため、コンピュータ・モジュール内に読み出された実行アプリケーション・プログラムに安全性検査実行コードが挿入される。ある実施形態では、安全性検査実行コードは実行アプリケーション・プログラムによるコンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及び/又はジャンプを防止する。安全性検査コードを挿入された実行アプリケーション・プログラムはコンピュータ・モジュールに記憶される。
ある実施形態では、コンパイル及びアセンブルがされたときに、ソースコードはアプリケーション・プログラムが利用可能なコンピュータ・モジュールの組み込み関数の対応表にリンクされる。さらに、ある実施形態では、安全性検査実行コードが挿入されたとき、安全性検査コードを挿入された実行アプリケーション・プログラムは再リンクされるであろう。また、ある実施形態では、安全性検査実行コードを挿入された実行アプリケーション・プログラムを記憶した後に、安全性検査実行コードを挿入された実行アプリケーション・プログラムはコンピュータ・モジュールの中央演算処理ユニット上で実行されるであろう。
ある実施形態では、安全性検査実行コードの挿入は、コンピュータ・モジュール内のマシンコード安全化ツールを提供することで実行されるであろう。ここで、マシンコード安全化ツールはコンピュータ・モジュール内に読み出されたプログラムに安全性検査実行コードを挿入するように構成される。コンピュータ・モジュール内に読み出された実行アプリケーション・プログラムに安全性検査実行コードを挿入するために、マシンコード安全化ツールはコンピュータ・モジュール内に読み出された実行アプリケーション・プログラムを処理する。
ある実施形態では、コンピュータ・モジュールは揮発性メモリ及び不揮発性メモリを含むであろう。実行アプリケーション・プログラムによる揮発性メモリの指定メモリ領域外への読み出し及び/又は書き込み、及び/又は不揮発性メモリの指定領域外へのジャンプを安全性検査実行コードは制御及び/又は実行できる。さらに、ある実施形態では、コンピュータ・モジュールは中央演算処理ユニットにより制御される無線周波部を含むことができ、アプリケーション・プログラムは無線周波部のための機能を提供するように構成されるであろう。
本発明のその他の実施形態では、マシンコード・アプリケーション・プログラムによるコンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及び/又はジャンプを制御するために、実行時にマシンコード・アプリケーション・プログラムの検査を伴う読み出し、書き込み、及び/又はジャンプにより、コンピュータ・モジュールの中央演算処理ユニット上でアプリケーション・プログラムを直接実行することが可能となる。実行中に検査を伴う読み出し、書き込み、及び/又はジャンプの処理に先立って、上述した任意の実施形態において安全性検査実行コードが実行アプリケーション・プログラムに挿入されるであろう。
上述した本発明の実施形態はアプリケーション・プログラムの開発及び/又は実行の方法に関連して説明されたことを当業者は理解するだろう。しかしながら、統合開発環境のような類似のシステムや類似のコンピュータプログラムも本発明の様々な実施形態において提供されるであろう。
本発明のある実施形態におけるコンピュータ・モジュールは、中央演算処理ユニット、中央演算処理ユニット上で実行されるプログラムを記憶するメモリ、及び中央演算処理ユニット上で直接実行するように構成されたメモリ内のマシンコード・アプリケーション・プログラムを含む。これらの実施形態は、中央演算処理ユニット上で直接実行され、マシンコード・アプリケーション・プログラムによるメモリの指定領域外への読み出し、書き込み、及び/又はジャンプを制御及び/又は防止するように構成されたメモリ内のマシンコード安全化ツールを含むであろう。
本発明のその他の実施形態におけるコンピュータ・モジュールは、中央演算処理ユニット上で直接実行され、アプリケーション・プログラムに安全性検査マシンコードを挿入され、マシンコード・アプリケーション・プログラムによるコンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及び/又はジャンプを制御及び/又は防止するように構成されたメモリ内のマシンコード安全化ツールを含むであろう。メモリ内の少なくとも一つのアプリケーション・プログラムは、中央演算処理ユニット上で直接実行されるように構成され、安全性検査実行コードを含む。また、類似の方法とコンピュータプログラムとが提供されるであろう。
ここで、本発明の実施形態を示す添付の図面を参照しつつ、以下に本発明をさらに十分に説明する。しかしながら、本発明は多くの異なる形態で具現化されるだろうし、以下に説明する実施形態に本発明が制限されると解釈されるべきではない。正確には、これらの実施形態は、発明の開示が詳細で完全なものとなり、当業者に発明の範囲を十分に伝えるために提供される。
要素が他の要素と「結合する」、「接続する」、又は「応答する」と言及した場合は、その要素は他の要素と直接結合、接続又は応答できるし、介在する要素が存在してもよいことが理解されるだろう。それに対して、要素が他の要素と「直接結合する」、「直接接続する」、又は「直接応答する」と言及した場合は、介在する要素は存在しない。明細書を通して同様の番号は同様の要素を参照する。以下に使用する「及び/又は」という用語は関連するリスト上の1以上の項目のすべてかつ任意の組み合わせを含み、「/」のように省略してもよい。
第1、第2などの用語が以下で様々な要素を説明するのに使用されるであろうが、これらの要素はこれらの用語に制限されるべきではないこととも理解されるだろう。これらの用語は単にある要素を別の要素から区別するために使用される。
以下で使用される専門用語は特定の実施形態を説明する目的にだけ使用され、発明を制限する意図はない。以下で使用される単数形は、そうではないと明確に示す文脈以外では、複数形も含むことを意図する。さらに、「備える」、「備えている」、「含む」、及び/又は「含んでいる」という用語が以下で使用される場合には、規定の機能、工程、操作、要素、及び/又は部分が存在することを明確にするが、1以上のその他の機能、工程、操作、要素、部分、及び/又はこれらのグループの存在又は付加を除外するわけではない。
異なる定義をしない限り、以下で使用される(技術用語と科学用語とを含む)すべての用語は本発明の属する当業者の1人によって一般的に理解されるものと同じ意味を有する。さらに、以下で明確に定義されない限り、一般的に辞書で定義されるような用語は、従来技術の文脈における意味と一致する意味を有するように解釈されるべきであり、理想的な又は過度に正式な意味に解釈されるべきではないことが理解されるだろう。
発明の実施形態における方法、システム、及びコンピュータプログラムについてのブロック図とフローチャートとを参照して本発明を以下に説明する。ブロック図又はフローチャートのブロック、及びブロック図又はフローチャートのブロックの組み合わせは、コンピュータプログラム命令により少なくとも一部は実装されるであろうことが理解されるだろう。コンピュータシステムによって実行される命令がブロック図のブロック又はブロック群で規定される機能/動作を実装するための方法、モジュール、デバイス、又はメソッドを作成するように、1以上のエンタープライズ・コンピュータシステム、業務用コンピュータシステム、パーソナル・コンピュータシステム、パーベイシブ・コンピュータシステム、及び/又は組み込みコンピュータシステムに対してコンピュータプログラム命令が提供されるであろう。汎用コンピュータシステム及び/又は専用ハードウェアの組み合わせも他の実施形態で使用されるであろう。
コンピュータプログラム命令はコンピュータシステムが機能するように特定の様式で指示することができるコンピュータシステムのメモリに記憶され、メモリに記憶された命令は、ブロック又はブロック群で規定される機能/動作を実装するコンピュータ読み取り可能なプログラム・コードを含む製品を生み出す。また、プロセッサ上で実行される命令がブロック又はブロック群で規定される機能/動作を実装する工程を提供するようなプロセスを実装したコンピュータを製造する一連の操作工程を行うために、コンピュータプログラム命令がコンピュータシステムに読み出されるであろう。さらに、ブロック図及び/又はフローチャートの与えられたブロック又はブロック群は方法、コンピュータプログラム、及び/又は製品のサポートを(構造的に及び/又は機能的に)提供する。
また、実装の代替において、フローチャートの機能/動作はフローチャートに示される順番以外の順番で発生してもよい。例えば、係る機能/動作によって、連続して現れる二つのブロックは実質的には同時に実行されるか、時にはブロックは逆の順番で実行されてもよい。最後に、一つ以上のブロックの機能は分割されるか、及び/又は他のブロックの機能との組み合わせとなってもよい。
図1は本発明の好適な実施形態におけるコンピュータ・モジュールのブロック図の一例である。図1に示すように、コンピュータ・モジュール100は、中央演算処理ユニット(CPU)110とCPU110で実行されるプログラムを記憶するように構成されたメモリ120とを含む。メモリ120は単一型のメモリ装置であってもよいし、揮発性、不揮発性、固体、磁気、及び/又は光学メモリ装置を含む階層型メモリ装置を表現するものであってもよい。
1以上のマシンコード・アプリケーション・プログラム124がメモリ120上に存在する。マシンコード・アプリケーション・プログラム124はCPU110上で直接実行されるように構成される。マシンコード安全化ツール122もメモリ120上に存在し、CPU110上で直接実行され、マシンコード・アプリケーション・プログラム124によるメモリ120の指定領域外への読み出し、書き込み、及び/又はジャンプを制御するように構成される。指定領域はメモリの連続した領域及び/又は複数の不連続な領域でよいことが理解されるだろう。ある実施形態では、実行アプリケーション・プログラム124によるコンピュータ・モジュールの指定領域外への読み出し、書き込み、及び/又はジャンプを防止するために、安全性検査実行コードをアプリケーション・プログラム124に挿入するようにマシンコード安全化ツール122は構成される。これらの実施形態において、アプリケーション・プログラム124は安全性検査実行コード126を自身に含んでいても良い。
さらに図1を参照して、例えばマン・マシン・インターフェイス、マシン・ツー・マシン(M2M)インターフェイス、無線周波(RF)部、及び/又は標準的なハードウェア・コンポーネントを提供するために、その他のハードウェア130がモジュール110内に含まれるであろう。ある実施形態では、アプリケーション・プログラム124はその他のハードウェア130の機能を提供及び/又は補完するように構成される。
本発明のある実施形態では、アプリケーション・プログラムを生成するのに標準的なコンパイラやアセンブラを使用することが可能かもしれないが、安全性検査実行コードを実行アプリケーション・プログラムに挿入することによって、アプリケーション・プログラムがコンピュータ・モジュールの操作を妨げることを軽減又は防止することができる。さらに、実行アプリケーション・プログラムをコンピュータ・モジュール内に読み出すことが可能であるため、コンピュータ・モジュールの統合開発環境により占められる容量を減少又は最小化することができる。
さらに、本発明のある実施形態では、サード・パーティが組み込みコンピュータ・モジュール向けのアプリケーション・プログラムを提供することを可能とする。本発明のある実施形態では特に、サード・パーティのユーザがアプリケーション・プログラムを生成し、セキュリティーについての過度の心配をすることなしに組み込みコンピュータ・モジュール上でそのアプリケーション・プログラムを実行することを可能とする。オープン・オペレーティング・システムを搭載した標準的なパーソナル・コンピュータでは、アプリケーション・プログラムがセキュリティー面での心配を生み出さないことを保証するか、パーソナル・コンピュータをクラッシュさせるかはユーザ次第であろう。対照的に、組み込みモジュールでは、サード・パーティの開発者がモジュールに読み出したアプリケーション・プログラムがあるにもかかわらず、モジュールが適切に機能し続けることをモジュール提供者が保証する必要があるだろう。
図2は、本発明の好ましい実施形態において、コンピュータ・モジュール内の1以上のアプリケーション・プログラムを実行するために処理されるであろう操作のフローチャートの一例である。これらの操作は図1のマシンコード安全化ツール122及び/又はアプリケーション・プログラム124に関する安全性検査実行コード126によって処理されるであろう。
特に、図2に示すブロック200で、マシンコード・アプリケーション・プログラム124によるコンピュータ・モジュール110の指定メモリ領域外への読み出し、書き込み、及び/又はジャンプを制御するために、CPU110上で直接実行されるときにマシンコード・アプリケーション・プログラム124の読み出し検査、書き込み検査、及び/又はジャンプ検査をすることによって、コンピュータ・モジュール100のCPU110上でマシンコード・アプリケーション・プログラム124が直接実行されるであろう。ある実施形態では、指定領域外への読み出し、書き込み、及び/又はジャンプは防がれるであろう。
図3は、本発明の様々な実施形態における検査を伴う読み出し、書き込み、及び/又はジャンプのために処理されるであろう操作のフローチャートの一例であり、図2のブロック200に対応するであろう。特に、図3に示すように、ブロック310で、1以上のマシンコード・アプリケーション・プログラム124がコンピュータ・モジュール100に読み出される。マシンコード・アプリケーション・プログラム124の読み出しは、後続する操作が始まる前に全体が行われても良いし、一部が行われても良いし、及び/又は後続する操作と連動して1行ずつ処理されても良いことが理解されるだろう。
ブロック320を参照して、アプリケーション・プログラムのよるコンピュータ・モジュール100の指定メモリ領域外への読み出し、書き込み、及び/又はジャンプを制御及び/又は防止をするために、図1の安全性検査実行コード126のような安全性検査実行コードはブロック310で少なくとも部分的にコンピュータ・モジュール100内に読み出されたアプリケーション・プログラム124に挿入される。本発明のある実施形態では、コンピュータ・モジュール100はランダム・アクセス・メモリ(RAM)のような揮発性メモリとフラッシュ・メモリのような不揮発性メモリとを含んでいても良い。安全性検査実行コード126は実行アプリケーション・コード124によるRAMの指定領域外への読み出し及び/又は書き込み、及び/又はフラッシュ・メモリの指定領域外へのジャンプを制御及び/又は防止するであろう。
さらに図3を参照して、ブロック330で、ブロック320において挿入され追加された安全性検査実行コード126のために、アプリケーション・プログラム124が再リンクされることが望ましいだろう。最後に、ブロック340で、安全性検査実行コード126を挿入されたアプリケーション・プログラム124はCPU上で実行される。開発の間及び/又は実際の使用の間、実行が処理されるであろう。
図4は、本発明のある実施形態において、図1におけるコンピュータ・モジュール100の中央演算処理ユニット110向けのアプリケーション・プログラム124のような、コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムの開発で処理されるであろう操作のフローチャートの一例である。本発明のある実施形態では、これらの操作は統合開発環境を提供するだろう。図4のブロック410に示すように、アプリケーション・プログラム用のソースコードが記述及びデバックされる。ある実施形態では、標準的なソースコード・オーサリングツール及びデバッグツールとともに、C言語のような標準的なソースコード言語が使用されるであろう。独自開発の及び/又はカスタマイズされたソースコード言語及び/又はツールを使用する必要はない。C言語以外のソースコード言語を使用してもよいことを当業者は理解できるであろう。これらのソースコード言語は、中央演算処理ユニット110上で実行できるネイティブ・マシン命令にソースコードを翻訳するコンパイラを含むべきである。したがって、ある実施形態では、例えばBasic、Java(登録商標)、ADA、Pascal、アセンブリ言語などが使用されるであろう。
次に、ブロック420で、実行アプリケーション・プログラムを提供するために、ソースコードはコンパイル及びアセンブルされる。ある実施形態では、フリーウェアのGNUコンパイラ・コレクション(GCC)のような標準的なコンパイラ/アセンブラが使用されるであろう。カスタマイズされたコンパイラ及び/又はアセンブラを提供する必要はないし、保守する必要もない。ブロック310で、図3においてすでに説明したように実行アプリケーション・プログラムはコンピュータ・モジュール内に読み出され、ブロック320で、図3においてすでに説明したように安全性検査実行コードが実行アプリケーション・プログラムに挿入される。そしてブロック430で、安全性検査コードを挿入された実行アプリケーション・プログラムがモジュールに記憶される。最後に、ブロック340で、図3において説明したように安全性検査コードを含む実行アプリケーション・プログラムは開発環境で及び/又は運用環境で実行される。
図5は、安全性検査実行コードの挿入を処理するであろう操作のフローチャートの一例であり、図3及び/又は4のブロック320に対応するであろう。図5に示すとおり、ブロック510で、図1のマシンコード安全化ツール122のようなマシンコード安全化ツールはコンピュータ・モジュール100内に読み出される。マシンコード安全化ツールはコンピュータ・モジュール内に読み出されたプログラムに安全性検査実行コードを挿入するように構成される。そしてブロック520で、コンピュータ・モジュール100内に読み出された実行アプリケーション・プログラム124に安全性検査実行コード126のような安全性実行コードを挿入するために、マシンコード安全化ツールによってコンピュータ・モジュール内に読み出された実行アプリケーション・プログラムが処理される。
ここで、図3から図5の操作についてさらに説明する。特に、ブロック420を再び参照して、コンパイル及びアセンブルの間に、ソースコードはアプリケーション・プログラムが利用できるコンピュータ・モジュール100の組み込み関数の対応表に再リンクされるであろう。開発者が利用できる組み込み関数を含む対応表ファイルの一例を表1に図示する。アプリケーションが関数を呼び出したときにどこにジャンプするかをリンカに教えることによって、対応表ファイルは開発者のアプリケーション・プログラムが正しくリンクされることを可能とする。表1に示すとおり、ある実施形態では、プリント、送信、ダイヤル、応答、ハングアップ、ショート・メッセージ・サービス(SMS)、及び/又はPIN有効化の関数が提供される。
表1
組み込み関数対応表
*(.text)
.text
0x02000000 _m2m_printf
0x02000004 _m2m_sendAT
0x02000008 _m2m_dial
0x0200000c _m2m_answer
0x02000010 _m2m_hangup
0x02000014 _m2m_sms_send
0x02000018 _m2m_sms_read
0x020000Ic _m2m_sms_delete
0x02000020 _m2m_pin1
0x02000024 _m2m_pin2
0x02000028 _m2m_pin3
0x0200002C _m2m_pin4
さらに、ブロック320で、安全性検査実行コードが挿入された場合に、安全性検査コードを挿入された実行プログラムは、挿入され追加された安全性検査コードを補完するために再リンクされるであろう。
本発明の様々な実施形態をさらに説明する。特に、上述したソニー エリクソン GR47/48のようなコンピュータ・モジュールのユーザの多くは、自己のモジュール/コントローラ・ハードウェアを設計し、構築するためのリソースを有していないかもしれない。さらに、GR47/48のようなモジュールは、開発者にモジュール上で直接動作する1以上の組み込みアプリケーションを記述することを可能とするであろうため、別個のハードウェア・コントローラを使用する必要はないであろう。あいにく、組み込みアプリケーションは比較的処理が遅いインタプリタ言語で実行されるかもしれない。モジュールにテキスト・ソースコードで組み込みアプリケーションがアップロードされ、過度のメモリを消費するかもしれないし、例えばコメントを含まない正に簡潔なソースコードであるために開発者に余計な負担を強いるかもしれない。ソースコードは例えば「C言語もどき」な特製の言語で書かれているかもしれないが、これには本物のC言語が含む豊富な機能が欠けているかもしれないし、保守する必要があるかもしれない。
Java(登録商標)のような商用の代替は、たとえJava(登録商標)仮想マシンを小さいサイズに縮小したとしても、モジュールのメモリ内のリソースを過度に消費するであろうため、実用的ではないであろう。さらに、Java(登録商標)のような商用の代替に変更することは、独自仕様の「C言語もどき」でコーディング済みの既存の開発者にとって望ましくないであろう。
本発明のある実施形態は、モジュール上に直接読み出されたマシンコード・アプリケーション・プログラムをコンパイルするために、標準的なエディタ、アセンブラ、及びコンパイラを標準的な言語とともに使用することを可能とする。本発明のある実施形態における安全化ツールは読み出されたアプリケーション・プログラム向けのセキュリティーを提供できる。
図6は、本発明の様々な実施形態におけるアプリケーション・プログラム開発環境を機能的に説明する。開発者は標準的なC言語エディタを用いてC言語コード・ソースファイル610を記述する。前述の表1で説明したように、組み込みライブラリ・ジャンプ・テーブルの対応表630が提供されるであろう。組み込みライブラリ・ジャンプ・テーブル630は、GNUコンパイラ、GNUアセンブラ、及びGNUリンカ620のような標準的な統合開発環境を用いて開発者がコードをコンパイルし、コードをデバッグするためにローカル・ホスト上で開発者がコードをステップ・スルーすることを可能とする。商用統合開発環境のすべての能力を開発者は利用できるであろう。コンピュータ・モジュールの特性がどの統合開発環境をユーザが使用するかを指定する必要はないし、カスタマイズされた統合開発環境を保守し又はサポートする必要もない。
コンパイルする際に、コンパイルされた実行ファイル作成するために開発者はGNUコンパイラ620を実行するであろう。コンパイラ620はGNUのフリーウェアのコンパイラ、アセンブラ及びリンカ、組み込み関数ジャンプ・テーブル630とリンクするリンカ対応ファイル、並びにコンパイラがコンパイルされた実行コードを生成するのに使用する構成情報を含んでもよい。対応表ファイル630は組み込みライブラリ関数で表される静的フラッシュ・ジャンプ・テーブルのメモリアドレスを含んでもよい。ユーザは対応表630で与えられるその他の関数呼出しの知識がないかもしれないので、ユーザは他の関数呼出しをリンクすることができないかもしれない。
コンパイラ620の操作の結果として、実行ファイルが生成される。しかしながら、この実行ファイルは、指定メモリ領域外への読み出し、書き込み、及び/又はジャンプをしてモジュールの他の操作を間違わせるかもしれないため、潜在的に安全でない実行ファイル640である。
ローダ・ツール650は安全でない実行ファイル640のイメージをモジュール100′上にアップロードするのに使用される。ブロック310に関連して上述したように、イメージは全体が読み出されるかもしれないし、セクションごとかもしれないし、行ごとかもしれない。実行ファイルをネイティブ・コードとして安全に実行するためにモジュール100′は安全化ツール122′を実行し、図1の安全性検査実行コード126を挿入されたのアプリケーション・プログラム124に対応する安全な実行ファイル124′を生成する。安全な実行ファイル124′はブロック660で示すフラッシュ・メモリに記憶されるかもしれない。
本発明の様々な実施形態におけるマシンコード安全化ツール122、122′についてさらに説明する。特に、どの組み込みアプリケーションも安全であることが保証されること、つまりアプリケーションが自身のリソース・サンドボックスから逃れられないことが望ましいであろう。組み込みアプリケーションには自身の存在場所であるフラッシュ・メモリの占有区画が与えられる。組み込みアプリケーションはこのフラッシュ・メモリの位置から実行される。プログラム変数に使用されるであろうRAMの占有区画を組み込みアプリケーションに提供してもよい。組み込みアプリケーションに占有タスクを提供してもよく、タスクのためのレジスタ・スタックがRAM領域に存在しても良い。
本発明のある実施形態では、安全化ツール122、122′は開発者の安全でないマシンコード実行ファイル640を取得し、読み出し検査、書き込み検査、及び分岐検査のルーチンの呼出しを挿入する。すべての読み出し命令、保存命令、及び分岐命令は割り当て領域内で実行することを保証するように修正されるであろう。例えば、保存(書き込み)命令はすべて割り当てRAM領域内のメモリをポイントすることが保証されるであろう。さらに、すべての分岐命令及びジャンプ命令がフラッシュ領域内のメモリをポイントすることを検証することができる。
本発明の様々な生実施形態において、潜在的に安全でない実行コード640の一例と、安全でないコードの実行をマシンコード安全化ツール122/122′がどのように防止するかと、を説明する。安全でない保存命令又は書き込み命令の一例を説明する。しかしながら、同様の例を読み出し命令及びジャンプ命令に適用しても良い。以下の例は単なる例示とみなされるべきであり、発明を制限するものと解釈されるべきではない。
特に、潜在的にメモリの外側を壊すかもしれないため、以下のC言語コードは安全でないとみなされるであろう。
char* ptr = 0x00080000; // EA領域の終末をポイント
* (ptr + 0x10000 ) = OxBB; // メモリの外側を破壊
このC言語コードは図6のC言語ソースファイル610に含まれるかもしれない。コンパイラ/アセンブラ/リンカ620はソースコードを以下のアセンブリコードにコンパイルするであろう。
LDR r0, OxBB // 書き込む値をr0に読み出し
LDR r2, 0x00080000 // r2がメモリの終末をポイント
STR r0, [r2 + #10000] // [r2+10000]番地に保存
ある実施形態では、安全化ツール122/122′は上記STR(保存)命令を以下に置き換えるだろう。
LDR r0, OxBB // 書き込む値をr0に読み出し
LDR r12, [r2 + #10000] // [r2 + #10000]番地をr12に読み出し
BR write_check // 書き込み検査機能を呼出し
STR r0, rl2 // 関数から戻ったら、アドレスを書き込み
ここで、書き込み検査機能は以下のようなものであろう。
CMP r12, write_ea_start
BLE write_exception // r12が妥当な範囲を下回る場合は停止
CMP r12, write_ea_end
BGE write_exception // r12が妥当な範囲を上回る場合は停止
ここからわかるように、書き込み検査機能は書き込みアドレスを妥当な書き込み始点アドレス及び書き込み終点アドレスと比較し、書き込みアドレスの範囲外である場合は例外を生成する。そして、書き込み検査サブルーチンが範囲外のポインタを検知した場合、アプリケーション・タスクは停止し、及び/又はエラー・メッセージが通知されるであろう。同様の機能が読み出し命令及びジャンプ命令にも提供されるであろう。組み込みアプリケーションは安全性検査のためにわずかに操作が遅くなるかもしれないが、それでもインタプリタを使用した場合よりもはるかに処理速度が早いだろう。
ブロック330に関連して一般的に説明したとおり、安全化ツール122、122′はバイナリ実行ファイル上で操作できるため、安全性検査コードを挿入した場合には目的となる新たなメモリアドレスを反映するために分岐命令及びジャンプ命令を修正する必要があるであろう。この再リンクは当初のアドレスと新しいオフセットとを含むテーブルを作成することで達成されるであろう。再リンクは各分岐命令に到達したときにオフセット算術することで実行できる。例えば、以下の表2のような分岐オフセット・テーブルが提供されるであろう。
表2
当初のアドレス オフセット
0x00080000 0x00
0x00080010 0x08
0x00080024 0x10
0x0008003C 0x18
安全化ツール122、122′が以下の行に到達したとする。
BR 0x00080018
ツールは表2を参照して、0x00080010番地から0x00080024番地までのすべてのコードは8バイト分ずれることを判定する。その後、分岐命令は以下に置き換わるであろう。
BR 0x00080020
実行時に、モジュール100、100′は、RAM全体の0値化、すべての静的及び不変変数の正しいRAMアドレスへのコピー、スタック及びヒープ・ポインタの初期化を含むC言語の開始プロセスを処理するであろう。モジュール110、110′は専用の優先度の低い組み込みアプリケーション・タスクを開始し、組み込みアプリケーションのメイン機能をポイントし、そして組み込みアプリケーションを実行することを可能とする。第2のタスクは組み込みアプリケーションのタスクを監視でき、十分なスタック領域とその他の潜在的な問題を検査する。問題はユーザに報告されるであろう。
本発明のある実施形態では、インタプリタ・ソースコードよりも一般的に容量が小さいマシンコードとしてアプリケーションをモジュールに記憶できるため、アプリケーションを大きくすることが可能となる。したがって、アプリケーションが大きくなったとしても、割り当てられたメモリ領域に適合する。さらに、アプリケーションをネイティブ・コードとして実行するため、インタプリタを使用したスクリプトよりも早く実行できる。開発者は完全なC言語及び/又は他の言語を利用できるであろうため、及び/又は商用統合開発環境を利用できるであろうため、開発者はより強力なアプリケーションを生み出すことができるであろう。商用統合開発環境のコーディング機能を使用できるであろうため、コーディングもより簡単になるであろう。さらに、カスタマイズされた言語及び統合開発活動をモジュールの販売者がサポートする必要はないであろう。
図と説明とを用いて、本発明の実施形態が開示されたが、明細書の用語は一般的かつ記述的な意味でのみ使用され、制限を目的としたものではなく、本発明の範囲は特許請求の範囲で設定される。
本発明の好適な実施形態におけるコンピュータ・モジュールのブロック図の一例である。 本発明の好適な実施形態におけるアプリケーション・プログラムの実行のために処理されるであろう操作のフローチャートの一例である。 本発明の好適な実施形態における実行時にアプリケーション・プログラムの検査を伴う読み出し、書き込み、及びジャンプで処理されるであろう操作のフローチャートの一例である。 本発明の好適な実施形態におけるアプリケーション開発のために処理されるであろう操作のフローチャートの一例である。 本発明の好適な実施形態における安全性検査実行コードを挿入するために処理されるであろう操作のフローチャートの一例である。 本発明の好適な実施形態におけるアプリケーション・プログラム開発環境の機能ブロック図の一例である。

Claims (26)

  1. コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラム開発方法であって、
    コンパイル及びアセンブルされた実行アプリケーション・プログラムを前記コンピュータ・モジュール内に読み出す工程と、
    実行アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するために、該コンピュータ・モジュール内に読み出された該実行アプリケーション・プログラムに安全性検査実行コードを挿入する工程と、
    前記安全性検査実行コードを挿入された前記実行アプリケーション・プログラムを前記コンピュータ・モジュール内に記憶する工程と
    を備えるアプリケーション・プログラム開発方法。
  2. 前記アプリケーション・プログラム用のソースコードを記述及びデバッグする工程と、
    前記コンパイル及びアセンブルされた実行アプリケーション・プログラムを提供するために前記アプリケーション・プログラム用の前記ソースコードをコンパイル及びアセンブルする工程と
    が、コンパイル及びアセンブルされた実行アプリケーション・プログラムを前記コンピュータ・モジュール内に読み出す前記工程に先行することを特徴とする請求項1に記載の方法。
  3. コンパイル及びアセンブルする前記工程は、前記アプリケーション・プログラムが利用できる前記コンピュータ・モジュールの組み込み関数の対応表に前記ソースコードをリンクする工程をさらに含むことを特徴とする請求項2に記載の方法。
  4. 安全性検査実行コードを挿入する前記工程は、前記安全性検査コードを挿入された前記実行アプリケーション・プログラムを再リンクする工程をさらに含むことを特徴とする請求項3に記載の方法。
  5. 前記安全性検査実行コードが挿入された前記実行アプリケーション・プログラムを記憶する前記工程の後に、
    前記安全性検査実行コードが挿入された前記実行アプリケーション・プログラムを前記中央演算処理ユニット上で実行する工程
    が処理されることを特徴とする請求項1に記載の方法。
  6. 安全性検査実行コードを挿入する前記工程は、
    前記アプリケーション・プログラムによる前記コンピュータ・モジュールの前記指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを防止するために、前記コンピュータ・モジュール内に読み出された前記実行アプリケーション・プログラムに安全性検査実行コードを挿入する工程をさらに含むことを特徴とする請求項1に記載の方法。
  7. 安全性検査実行コードを挿入する前記工程は、
    前記コンピュータ・モジュール内に読み出されたプログラムに前記安全性検査実行コードを挿入するように構成された前記コンピュータ・モジュール内のマシンコード安全化ツールを提供する工程と、
    前記コンピュータ・モジュール内に読み出された前記実行アプリケーション・プログラムに前記安全性検査実行コードを挿入するために、前記マシンコード安全化ツールを用いて該コンピュータ・モジュール内に読み出された該実行アプリケーション・プログラムを処理する工程と
    を含むことを特徴とする請求項1に記載の方法。
  8. 前記コンピュータ・モジュールは揮発性メモリ及び不揮発性メモリを含み、
    安全性検査実行コードを挿入する前記工程は、
    前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、前記コンピュータ・モジュール内に読み出された該実行アプリケーション・プログラムに安全性検査実行コードを挿入する工程
    を含むことを特徴とする請求項1に記載の方法。
  9. 前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部を含み、
    前記コンピュータ・モジュールは前記無線周波部のための機能を提供するように構成される
    ことを特徴とする請求項1に記載の方法。
  10. 請求項1に記載の方法を実行するように構成された、コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
  11. 請求項1に記載の方法を実行するように構成されたアプリケーション開発環境システム。
  12. コンピュータ・モジュールの中央演算処理ユニット上でマシンコード・アプリケーション・プログラムを直接実行する方法であって、
    前記マシンコード・アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するために、該マシンコード・アプリケーション・プログラムを前記中央演算処理ユニット上で直接実行するのに伴い、該マシンコード・アプリケーション・プログラムの検査を伴う読み出し、書き込み、及びジャンプのうち少なくとも何れかを行う工程
    を備えるマシンコード・アプリケーション・プログラムの実行方法。
  13. 前記マシンコード・アプリケーション・プログラムを前記コンピュータ・モジュール内に読み出す工程が、
    検査を伴う読み出し、書き込み、及びジャンプのうち少なくとも何れかを行う前記工程に先行し、
    検査を伴う読み出し、書き込み、及びジャンプのうち少なくとも何れかを行う前記工程は、
    前記マシンコード・アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するために、該コンピュータ・モジュール内に読み出された該マシンコード・アプリケーション・プログラムへ安全性検査実行コードを挿入する工程を含む
    ことを特徴とする請求項12に記載の方法。
  14. 安全性検査実行コードを挿入する前記工程は、前記安全性検査コードを挿入された前記マシンコード・アプリケーション・プログラムを再リンクする工程をさらに含むことを特徴とする請求項13に記載の方法。
  15. 前記コンピュータ・モジュールは揮発性メモリ及び不揮発性メモリを含み、
    安全性検査実行コードを挿入する前記工程は、
    前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、該マシンコード・アプリケーション・プログラムを前記中央演算処理ユニット上で直接実行するのに伴い、該マシンコード・アプリケーション・プログラムの検査を伴う読み出し、書き込み、及びジャンプのうち少なくとも何れかを行う工程
    を含むことを特徴とする請求項12に記載の方法。
  16. 前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部を含み、
    前記マシンコード・アプリケーション・プログラムは前記無線周波部のための機能を提供するように構成される
    ことを特徴とする請求項12に記載の方法。
  17. 請求項12に記載の方法を実行するように構成された、
    コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
  18. 請求項12に記載の方法を実行するように構成されたコンピュータ・モジュール。
  19. コンピュータ・モジュールであって、
    中央演算処理ユニットと、
    前記中央演算処理ユニット上で実行されるプログラムを記憶するように構成されたメモリと、
    前記中央演算処理ユニット上で直接実行されるように構成されたメモリ内のマシンコード・アプリケーション・プログラムと、
    前記中央演算処理ユニット上で直接実行され、前記マシンコード・アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するように構成された前記メモリ内のマシンコード安全化ツールと
    を備えるコンピュータ・モジュール。
  20. 前記メモリは揮発性メモリ及び不揮発性メモリを含み、
    前記マシンコード安全化ツールは、
    前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、前記コンピュータ・モジュール内に読み出された該マシンコード・アプリケーション・プログラムに安全性検査実行コードを挿入するように構成される
    ことを特徴とする請求項19に記載のコンピュータ・モジュール。
  21. 前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部をさらに備え、
    前記アプリケーション・プログラムは前記無線周波部のための機能を提供するように構成される
    ことを特徴とする請求項19に記載のコンピュータ・モジュール。
  22. 請求項17に記載のマシンコード安全化ツールを提供するように構成された、
    コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
  23. コンピュータ・モジュールであって、
    中央演算処理ユニットと、
    前記中央演算処理ユニット上で実行されるプログラムを記憶するように構成されたメモリと、
    前記中央演算処理ユニット上で直接実行されるように構成されたメモリ内のマシンコード・アプリケーション・プログラムと、
    前記中央演算処理ユニット上で直接実行し、
    前記マシンコード・アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するために、アプリケーション・プログラムに安全性検査実行コードを挿入する
    ように構成された前記メモリ内のマシンコード安全化ツールと、
    前記中央演算処理ユニット上で直接実行するように構成され、前記安全性検査実行コードを含む、メモリ内の1以上のアプリケーション・プログラム
    を備えるコンピュータ・モジュール。
  24. 前記メモリは揮発性メモリ及び不揮発性メモリを含み、
    前記マシンコード安全化ツールは、
    前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、前記アプリケーション・プログラムに前記安全性検査実行コードを挿入するように構成される
    ことを特徴とする請求項23に記載のコンピュータ・モジュール。
  25. 前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部をさらに備え、
    前記アプリケーション・プログラムは前記無線周波部のための機能を提供するように構成される
    ことを特徴とする請求項23に記載のコンピュータ・モジュール。
  26. 請求項23に記載のマシンコード安全化ツールを提供するように構成された、
    コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
JP2008526922A 2005-08-15 2006-03-29 モジュール内の実行アプリケーション・プログラムの安全性を検査するシステム、方法、及びコンピュータプログラム Pending JP2009505275A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/203,689 US8381198B2 (en) 2005-08-15 2005-08-15 Systems, methods and computer program products for safety checking executable application programs in a module
PCT/US2006/011440 WO2007021320A2 (en) 2005-08-15 2006-03-29 Systems, methods and computer program products for safety checking executable application programs in a module

Publications (1)

Publication Number Publication Date
JP2009505275A true JP2009505275A (ja) 2009-02-05

Family

ID=37654868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008526922A Pending JP2009505275A (ja) 2005-08-15 2006-03-29 モジュール内の実行アプリケーション・プログラムの安全性を検査するシステム、方法、及びコンピュータプログラム

Country Status (5)

Country Link
US (1) US8381198B2 (ja)
EP (1) EP1915692A2 (ja)
JP (1) JP2009505275A (ja)
CN (1) CN101243412B (ja)
WO (1) WO2007021320A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016162460A (ja) * 2015-03-05 2016-09-05 富士通株式会社 未知のバイナリプログラムに対する有効入力シーケンスの判定
JP2021082256A (ja) * 2019-11-20 2021-05-27 ▲広▼州大学 動的ステイン分析に基づくメモリ分析方法及び装置
JP2022052542A (ja) * 2020-09-23 2022-04-04 東芝情報システム株式会社 Ffu検査装置及びffu検査用プログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7561930B2 (en) * 2006-10-02 2009-07-14 Fisher-Rosemount Systems, Inc. Dynamic modifier function blocks for use in a process control system
US8495607B2 (en) * 2010-03-01 2013-07-23 International Business Machines Corporation Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations
CN102023884A (zh) * 2010-11-25 2011-04-20 深圳市科陆电子科技股份有限公司 一种嵌入式系统开发程序校验码自动生成的方法
CN102750157A (zh) * 2011-04-20 2012-10-24 中兴通讯股份有限公司 一种应用程序加载的方法及装置
KR101438979B1 (ko) * 2012-12-31 2014-09-11 현대자동차주식회사 소프트웨어 검사 방법 및 시스템
US10671038B2 (en) 2016-07-15 2020-06-02 Fisher-Rosemount Systems, Inc. Architecture-independent process control
US10628167B2 (en) 2018-02-21 2020-04-21 International Business Machines Corporation Runtime detection of code modification
CN111766797A (zh) * 2019-04-02 2020-10-13 海盗船存储器公司 微控制器、存储模块及用于更新微控制器的韧件的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147155A (ja) * 1994-11-22 1996-06-07 Sumitomo Metal Ind Ltd オブジェクトプログラムの命令の変更/挿入方法及びシステム
JP2001514411A (ja) * 1997-08-28 2001-09-11 マイクロソフト コーポレイション 信頼できない実行可能コードに関するセキュリティ向上
JP2002041170A (ja) * 2000-07-27 2002-02-08 Matsushita Electric Ind Co Ltd プログラム実行制御装置
JP2004258728A (ja) * 2003-02-24 2004-09-16 Nippon Telegr & Teleph Corp <Ntt> プログラム実行時間測定方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021272A (en) * 1995-10-04 2000-02-01 Platinum Technology, Inc. Transforming and manipulating program object code
US6151618A (en) * 1995-12-04 2000-11-21 Microsoft Corporation Safe general purpose virtual machine computing system
US6149318A (en) 1997-04-15 2000-11-21 Samuel C. Kendall Link-time and run-time error detection, and program instrumentation
US6014513A (en) * 1997-12-23 2000-01-11 University Of Washington Discovering code and data in a binary executable program
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US6470493B1 (en) * 1999-09-30 2002-10-22 Compaq Information Technologies Group, L.P. Computer method and apparatus for safe instrumentation of reverse executable program modules
JP2004013556A (ja) 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd プロセッサ装置、コンパイル装置及びその方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147155A (ja) * 1994-11-22 1996-06-07 Sumitomo Metal Ind Ltd オブジェクトプログラムの命令の変更/挿入方法及びシステム
JP2001514411A (ja) * 1997-08-28 2001-09-11 マイクロソフト コーポレイション 信頼できない実行可能コードに関するセキュリティ向上
JP2002041170A (ja) * 2000-07-27 2002-02-08 Matsushita Electric Ind Co Ltd プログラム実行制御装置
JP2004258728A (ja) * 2003-02-24 2004-09-16 Nippon Telegr & Teleph Corp <Ntt> プログラム実行時間測定方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND199700536003; 'ノービス・ネットサーファーは、もう卒業!インターネットを256倍使いこなすための34の秘訣' ASCII 第21巻、第11号, 19971101, pp.288-301, 株式会社アスキー *
CSND200200073008; 真島馨: 'ツールを使ってボトルネックを突き止めよう' 日経ソフトウェア 第3巻、第4号, 20000324, pp.98-105, 日経BP社 *
JPN6012004876; 真島馨: 'ツールを使ってボトルネックを突き止めよう' 日経ソフトウェア 第3巻、第4号, 20000324, pp.98-105, 日経BP社 *
JPN6012034109; 'ノービス・ネットサーファーは、もう卒業!インターネットを256倍使いこなすための34の秘訣' ASCII 第21巻、第11号, 19971101, pp.288-301, 株式会社アスキー

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016162460A (ja) * 2015-03-05 2016-09-05 富士通株式会社 未知のバイナリプログラムに対する有効入力シーケンスの判定
JP2021082256A (ja) * 2019-11-20 2021-05-27 ▲広▼州大学 動的ステイン分析に基づくメモリ分析方法及び装置
JP2022052542A (ja) * 2020-09-23 2022-04-04 東芝情報システム株式会社 Ffu検査装置及びffu検査用プログラム
JP7436848B2 (ja) 2020-09-23 2024-02-22 東芝情報システム株式会社 Ffu検査装置及びffu検査用プログラム

Also Published As

Publication number Publication date
US8381198B2 (en) 2013-02-19
WO2007021320A3 (en) 2007-05-10
CN101243412B (zh) 2012-05-16
WO2007021320A2 (en) 2007-02-22
CN101243412A (zh) 2008-08-13
US20070038975A1 (en) 2007-02-15
EP1915692A2 (en) 2008-04-30

Similar Documents

Publication Publication Date Title
JP2009505275A (ja) モジュール内の実行アプリケーション・プログラムの安全性を検査するシステム、方法、及びコンピュータプログラム
US7155381B2 (en) Module for developing wireless device applications using an integrated emulator
CN102053836B (zh) 一种Android应用开发的版本管理工具的实现方法
AU2008343555B2 (en) Contract programming for code error reduction
US9672133B2 (en) Systems and methods for debugging applications using dual code generation
CN100492387C (zh) 基于Keil C51的软件保护开发的方法和系统
CN101957766B (zh) 一种字节码织入方法、装置及系统
EP2378413B1 (en) Methods and systems to implement non-ABI conforming features across unseen interfaces
CN105164641A (zh) 扩展开发环境
CN101916223A (zh) 程序调试方法及系统
CN103631585A (zh) 一种用于开发应用程序的方法及系统
CN106021004A (zh) 用户行为模拟单元、测试系统、以及测试方法
KR20130020135A (ko) 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법
CN100403264C (zh) Ttcn测试用例执行方法
KR20020032256A (ko) 통합 임베디드 시스템 및 이의 구현 방법
JP2009258796A (ja) プログラム開発装置及びプログラム開発方法
CN113672238B (zh) 基于实时操作系统模块化管理的运行方法、装置及设备
Ebenhofer et al. Generic and reconfigurable IEC 61499 function blocks for advanced platform independent engineering
CN110018959B (zh) 一种嵌入式应用调试的方法以及系统
KR101019688B1 (ko) 고레벨 언어 기반 임베디드 시스템
JP2002259121A (ja) ソースラインデバッグ装置
KR100489900B1 (ko) 확장 바이너리 이미지 생성 방법
Dufour et al. X32-debug: A Remote Source-level Debugger for the X32 Soft Core (draft)
CN116166394A (zh) 任务执行方法、装置、系统、存储介质及处理器
KR100722233B1 (ko) 임베디드 시스템을 위한 분리된 실행 파일의 링크 방법 및장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110920

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120524

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120601

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120706