JP2013041598A - プログラムコードの生成方法、プログラム開発システム、携帯用データキャリア、及びプログラム - Google Patents
プログラムコードの生成方法、プログラム開発システム、携帯用データキャリア、及びプログラム Download PDFInfo
- Publication number
- JP2013041598A JP2013041598A JP2012222975A JP2012222975A JP2013041598A JP 2013041598 A JP2013041598 A JP 2013041598A JP 2012222975 A JP2012222975 A JP 2012222975A JP 2012222975 A JP2012222975 A JP 2012222975A JP 2013041598 A JP2013041598 A JP 2013041598A
- Authority
- JP
- Japan
- Prior art keywords
- data carrier
- program code
- program
- library
- pseudo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000006870 function Effects 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000003245 working effect Effects 0.000 abstract 1
- 239000000969 carrier Substances 0.000 description 10
- 230000001419 dependent effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【課題】携帯用データキャリア(12)のプログラムコード(24、30)をロードフォーマットで生成でき、かつ携帯用データキャリア(12)に実行可能プログラムコード(40)を提供できる、安全でプライバシーを保護する技術を提供する。
【解決手段】携帯用データキャリア(12)のためのプログラムコード(24、30)をロードフォーマットで生成する方法において、データキャリア(12)に配置されるライブラリ(38)の内部の仕組みの少なくともいくらかが擬似ライブラリにない、隠されている、またはマスクされるという点で、データキャリア(12)に配置されるライブラリ(38)と異なる擬似ライブラリ(20)が使用される。携帯用データキャリア(12)に実行可能プログラムコード(40)を提供する方法において、ロードフォーマットのプログラムコード(24、30)が、データキャリア(12)に配置されるライブラリ(38)にリンクされる。
【選択図】図1
【解決手段】携帯用データキャリア(12)のためのプログラムコード(24、30)をロードフォーマットで生成する方法において、データキャリア(12)に配置されるライブラリ(38)の内部の仕組みの少なくともいくらかが擬似ライブラリにない、隠されている、またはマスクされるという点で、データキャリア(12)に配置されるライブラリ(38)と異なる擬似ライブラリ(20)が使用される。携帯用データキャリア(12)に実行可能プログラムコード(40)を提供する方法において、ロードフォーマットのプログラムコード(24、30)が、データキャリア(12)に配置されるライブラリ(38)にリンクされる。
【選択図】図1
Description
本発明は、一般に携帯用データキャリアおよびこのようなデータキャリアのソフトウェア作成の分野に関する。特に、本発明は、携帯用データキャリアのプログラムコードの生成、プログラムコードのデータキャリアへのロード、およびデータキャリアのプロセッサによる実行のためのプログラムコードの提供の分野に関する。本明細書では、携帯用データキャリアはチップカード(スマートカード)またはコンパクトチップモジュールの形態をとることができ、本発明のいくつかの実施形態では、他の種類の構造のリソースの限られたシステムの形態をとることもできる。
近年、携帯用データキャリアは、絶え間ない技術進歩の中でますます強力になった。これは、ハードウェアおよび記憶域によって提供される計算能力ならびにオペレーティングシステムによって提供される機能の両方に対して言える。近代の携帯用データキャリアでは、プログラムコードの事後ロード(post−load)、すなわちデータキャリアの動作中でのプログラムコードのロードを可能にする機能もみられる。アプリケーションプログラムを事後ロードできるデータキャリアは以前からすでに知られていたが、現在は、オペレーティングシステムの部分、たとえばドライバ、ライブラリ、または機能モジュールを事後ロードできるデータキャリアも開発中である。この事後ロードオプションが、将来、携帯用データキャリアの柔軟なオペレーティングシステムの重要部になるものと予想される。
一般に、携帯用データキャリアに関連する重要な要素は、セキュリティおよびスパイ保護の側面である。これは、携帯用データキャリアが、多くの場合、セキュリティが極めて重要なアプリケーションに使用され、不正使用またはスパイにより多大な損害が発生する恐れがあるためである。プログラムコードを事後ロードできるデータキャリアに固有の問題は、データキャリアの内部の仕組みを可能な限り露出してはいけないことである。特に、事後ロードされるプログラムコードの外部開発者が、データキャリアの内部構造および内部プログラム構造についての情報を取得できないことを保証しなければならない。したがって、たとえば、データキャリアのプラットフォームに依存する関数は、事後ロードされるプログラムコードが最終的にこういった関数を利用する場合であっても、可能な限り隠されていなければならない。
本発明の目的は、上記問題を完全に、または部分的に解消することである。特に、本発明は、プログラムコードを携帯用データキャリアのロードフォーマットで生成でき、かつ携帯用データキャリアに実行可能プログラムコードを提供できる、安全でプライバシーを保護する技術を提供することを意図する。
本発明によれば、この目的は、請求項1または4に記載の特徴を有する方法、請求項16の特徴を有する装置、および請求項17または18の特徴を有するコンピュータプログラム製品によって完全に、または部分的に達成される。従属請求項は本発明の好ましい実施形態を規定する。
本発明の基底を成す本発明の基本原理は、擬似ライブラリのみをデータキャリア外に設けることであり、この擬似ライブラリは、データキャリアに配置されるライブラリの内部の仕組みの少なくともいくらかが擬似ライブラリにない、隠される、またはマスクされるという点でデータキャリアに配置されるライブラリと異なる。外部プログラム開発者がアクセスできるようにする必要があるのは、擬似ライブラリ、およびオプションとして関連するドキュメンテーションのみである。このようにして、第3者がデータキャリアの内部の仕組みについて望ましくない結論を導き出す恐れのある情報の機密性が保たれる。このようにして、本発明は、第三者、たとえば、独立したソフトウェアハウスまたはデータキャリアの業界ユーザであっても、事後ロード可能なプログラムコードを安全に開発できるようにする。
オブジェクトコードフォーマットのプログラムコードは、少なくとも部分的に擬似ライブラリにリンクされる。これは、特に、本発明のいくつかの実施形態では、ロードフォーマットのプログラムコードが依然として、従来のオブジェクトコードフォーマットで含まれていたタイプのシンボル情報を含むことができることを意味する。他の実施形態では、これとは対照的に、擬似ライブラリに完全にリンクされたプログラムコードがロードフォーマットで生成される。
さらなるリンキングプロセスがデータキャリアに対して行われ、これは、好ましい実施形態では、ダイナミックリンキングプロセスの形態をとる。このリンキングプロセスは、別の実施形態では、ロード時、実行時、またはロード時に一部、実行時に一部、行うことができる。データキャリアで行われるリンキングプロセスは、データキャリアに配置されるプライベートライブラリに対して行われる。
好ましい実施形態では、データキャリア外で行われるリンキングは、擬似ライブラリの仮想関数に対する仮想リンキングである。したがって、いくつかの実施形態では、ロードフォーマットのプログラムコード中の仮想関数呼び出しは、データキャリア内で、データキャリアに配置されるライブラリの実際の関数呼び出しで置き換えることができる。
本発明は、ロードフォーマットのプログラムコードが、データキャリアでリンキングされる場合のみ実際のライブラリを参照するエントリが入った分岐テーブルまたはリファレンステーブルを有する実施形態も提供する。このような実施形態では、特に、仮想関数呼び出しはデータキャリアに配置されるライブラリにおいて解決することができるが、これに限定されない。これは、ロード時、実行時、またはロード時に一部、実行時に一部、行うことができる。
本発明の好ましい実施形態では、擬似ライブラリは、データキャリアに配置されるライブラリの呼び出しインタフェースと異なる呼び出しインタフェースを提供する。特に、擬似ライブラリによって提供される呼び出しインタフェースは仮想呼び出しインタフェースであることができる。
プログラムコードの破損および許可されていないプログラムコードの望ましくない事後ロードに対する高水準のセキュリティを実現するために、好ましい実施形態では、認証データが作成され、プログラムコードのロード時にチェックされる。
好ましい実施形態では、プログラムコードによって提供される関数がデータキャリアの管理ユニットに入力され、データキャリアのオペレーティングシステムおよび/またはアプリケーションプログラムにより事後ロードされるプログラムコードの柔軟で自動的な検出が可能になる。
生成されてデータキャリアにロードされるプログラムコードは、たとえば、アプリケーションプログラムまたはカーネルモジュールであることができる。好ましい実施形態では、プログラムコードはネイティブプログラムコードであってよい。特にバイナリコードは、ネイティブプログラムコードであるものとする。バイナリコードは、翻訳の介在なく、かつ仮想マシンなしでデータキャリアのプロセッサによって実行可能なコードである。
本発明によるコンピュータプログラム製品は、本発明による方法を実施するプログラムコマンドまたは本発明による方法によって生成されたプログラムコマンドを備える。このようなコンピュータプログラム製品は、物理的な媒体、たとえば半導体メモリ、フロッピー(登録商標)ディスク、またはCD−ROMであってよい。しかし、コンピュータプログラム製品は、非物理的な媒体、たとえばコンピュータネットワークを介して伝送される信号であってもよい。特に、コンピュータプログラム製品は、プログラム開発システムまたは携帯用データキャリアのソフトウェアを含んでいてもよいし、携帯用データキャリアの生成、初期化、パーソナライズ、もしくは動作と併せて使用されるものでもよい。
本発明による装置は、特に、プログラム開発システムまたは携帯用データキャリアであることができる。さらなる好ましい実施形態では、コンピュータプログラム製品および/または装置は、本説明および/または従属方法請求項に記載の特徴に対応する特徴を備える。
本発明のさらなる特徴、目的、および利点が、例示的な実施形態および複数の代替の実施形態の以下の説明から明らかになる。
図1は、プログラム開発システム10および携帯用データキャリア12の概略図である。プログラム開発システム10は、適したソフトウェアを有する従来のパーソナルコンピュータまたはワークステーションの形態をとることができる。例示的な本実施形態では、データキャリア12は、それ自体既知のハードウェアを有するチップカードまたはチップモジュールである。詳細には、データキャリア12は、プロセッサ、異なる技術に向けて構成された複数のメモリフィールド、および有線または無線での通信のためのインタフェース回路を有する単一チップマイクロコントローラを含んでいる。
図1に示す例示的な実施形態では、プログラムコードの生成はソーステキスト14から始まり、これがコンパイラ16によってオブジェクトコードフォーマットの対応するプログラムコード18に翻訳される。プログラム開発システム10では、擬似ライブラリ20が利用可能であり、これについて以下においてより詳細に考察する。オブジェクトコードフォーマットで存在するプログラムコード18および擬似ライブラリ20から、リンカ22がロードフォーマットの、少なくとも部分的にリンクされたプログラムコード24を生成する。
プログラムコード24を不注意による、または悪意のある破損から保護するために、認証データ28、たとえばプログラムコード24に適したチェックサムを生成する認証データ生成器26が使用される。認証データ28によって保護されたロードフォーマットのプログラムコード30は、プログラム開発システム10の助けにより開発プロセスの結果を形成する。このプログラムコード30は、後で使用するために記憶される。
プログラムコード30は、データキャリア12の動作中にデータキャリア12にロードすることができる。ロードプロセスは、たとえば、末端顧客の構内機器で、またはデータキャリア12の生成、初期化、またはパーソナライズと併せて行うことができる。プログラムコード30は、この場合では、プログラム開発システム10内、初期化装置、パーソナライズ装置、または末端顧客の端末内にあり、データキャリア12に転送される。ロードプロセス中、データキャリア12は動作している。
これは、データキャリア12のプロセッサにより、そのロードプロセス中にプログラムコード30がアクティブに処理され変更されることを意味するものと理解されたい。
図1の破線矢印は、ロードフォーマットの安全なプログラムコード30が、ロードプログラム32により、オプションとして上記中間ステーションの1つを介してデータキャリア12に受信されることを示している。認証チェッカ34は、プログラムコード30が破損していないこと、および認証データ28が許可を受けたステーションによって提供されたことを確かめる。チェックをパスした場合、ロードフォーマットのプログラムコード24が、リンカ36によって、データキャリア12に記憶されているライブラリ38にリンクされる。ダイナミックリンカによって行われるこの手順について、以下においてより詳細に考察する。
リンカ36は実行可能プログラムコード40を生成し、これは次いで、データキャリア12のプロセッサによる実行に提供される。いくつかの実施形態では、実行可能プログラムコード40は、データキャリア12のアプリケーションプログラム(アプリケーション)である。これとは対照的に、本明細書において述べる例示的な実施形態では、実行可能プログラムコード40は、データキャリア12のカーネルモジュール、すなわち、たとえばオペレーティングシステムの部分であるドライバ、またはライブラリである。カーネルモジュールは、たとえば、メモリ管理ドライバ、擬似ライブラリ、または各種インタフェース、たとえばUSB、無線、TCP/IPと通信するための機能を提供する。
実行可能プログラムコード40の関数は、データキャリア12のオペレーティングシステムおよびデータキャリア12に記憶されたアプリケーションプログラムに提供される。いくつかの実施形態では、ロードされた関数の柔軟な検出が行われる。このために、実行可能プログラムコード40は、特にカーネルモジュールである場合、予め指定されたインタフェースを利用できるようにする。さらに、本明細書において述べる例示的な実施形態は、提供される関数と共にデータキャリア12の管理ユニット内のレジストレーションプログラム42により、プログラムコード40のためのエントリを提供する。この管理ユニットは、たとえば、データキャリア12のレジストレーションファイル(レジストリ)または別のデータ構造であることができる。
図2に、プログラム開発システム10での方法シーケンスを再び示す。ステップ50において、プログラムコード18がオブジェクトコードフォーマットで生成される。ステップ52は、擬似ライブラリ20へのプログラムコード18のリンキングに関連し、それによってロードフォーマットの非セキュアプログラムコード24が得られる。ステップ54において、認証データ28およびロードフォーマットのセキュアプログラムコード30が最終的に生成される。
図3に示すフローチャートは、データキャリア12において行われる方法ステップをまとめたものである。ステップ56におけるセキュアプログラムコード30の入力およびステップ58における認証チェックの後に、ステップ60におけるデータキャリア12に記憶されているライブラリ38へのプログラムコード24のリンキングが続き、それによって実行可能プログラムコード40が得られる。実行可能プログラムコード40が、ステップ62において提供されて実行され、オプションとして、データキャリア12の管理ユニットに入力される。
本明細書において述べる例示的な実施形態の本質的な部分は、ステップ52および60での2つのリンキングプロセスである。リンカ22によって行われるステップ52での最初のリンキングプロセスでは、擬似ライブラリ20(ダミーライブラリ)が使用される。擬似ライブラリ20は、特に、データキャリア12に記憶されるライブラリ38の実際の関数を含まず、単に本明細書で「仮想関数」と称される関数を含むだけであるという点でデータキャリア12に記憶されるライブラリ38と異なる。
したがって、データキャリア12外のリンキングプロセスは仮想的に、すなわちデータキャリア12に含まれるライブラリ38の実際の関数ではなく擬似ライブラリ20の仮想関数に対して行われる。換言すれば、リンキングは、データキャリア12内のライブラリ38の実際の呼び出しインタフェースに対してではなく、擬似ライブラリ20の仮想呼び出しインタフェースに対して行われる。したがって、データキャリア12の内部の仕組み、すなわち特にライブラリ38の内部関数および内部機能は、隠されたままである。こういった内部関数および内部機能は、擬似ライブラリ20を解析した場合であっても求めることができない。
今述べた、擬似ライブラリ20とデータキャリア12に含まれるライブラリ38との関係を、例を参照して図4において説明する。擬似ライブラリ20は、たとえば、関数VirtFunc1、VirtFunc2、およびVirtFunc3を有する仮想呼び出しインタフェースを提供する。データキャリア12の実際の関数を有するライブラリ38の呼び出しインタフェースは、データキャリア12にのみ記憶される。
データキャリア12に含まれるライブラリ38の実際の呼び出しインタフェースは、仮想関数呼び出しを解決して、たとえば、内部関数Func1、Func2、Func3、およびFunc4を提供する。リンカ22によるステップ52でのプログラムコード18のリンキングは擬似ライブラリ20に対して行われ、これにより利用できるようになるのは呼び出しインタフェースのみである。これとは対照的に、データキャリア12での参照の実際の解決は、ステップ60まで行われない。このプロセス中、仮想関数VirtFunc1〜VirtFunc3が実際の関数Func1〜Func4で置き換えられる。これを図4に破線矢印で示す。
全般的に、こうして、データキャリア12で実行されるプログラムコード40がプラットフォーム依存および/またはプライベート関数を使用できることが保証される。しかし、擬似ライブラリ20の使用を通して、プログラム開発者に既知の外部関数のプラットフォーム依存関数への変換(データキャリア12内のみで行われる変換)を明らかにする必要がない。この手段により、データキャリア12でネイティブプログラムコード、たとえばアプリケーションプログラムおよびドライバのロードが可能な場合であっても、データキャリア12のセキュリティが大幅に向上する。
上記説明の詳細は単に本発明の可能な実施形態の例として意図されることは言うまでもない。特にデータキャリア12の内外で行われるリンキングプロセス52、60ならびに擬似ライブラリ20およびデータキャリア12内に配置されるライブラリ38の各内容に関するさらなる変更が可能であり、当業者にとって自明である。
Claims (18)
- 携帯用データキャリア(12)外のプログラム開発装置(10)においてロードフォーマットのプログラムコード(24、30)を生成する方法であって、前記プログラムコードは、携帯用データキャリア(12)の動作中に該携帯用データキャリア(12)にロードされて、前記データキャリア(12)のプロセッサによって実行され、該実行中に、前記データキャリア(12)に配置されたプライベートライブラリ(38)の関数を使用することを意図され、該方法は、以下のステップ:
前記プログラム開発装置(10)のコンパイラ(16)が、オブジェクトコードフォーマットのプログラムコード(18)を生成するステップと、
前記プログラム開発装置(10)が、前記オブジェクトコードフォーマットのプログラムコード(18)を少なくとも部分的に、擬似ライブラリ(20)にリンクするステップであって、それによってロードフォーマットのプログラムコード(24、30)を取得し、前記擬似ライブラリ(20)は、前記データキャリア(12)に配置されるプライベートライブラリ(38)の内部の仕組みの少なくともいくらかが前記擬似ライブラリ(20)にない、隠される、またはマスクされるという点で前記データキャリア(12)に配置される前記プライベートライブラリ(38)と異なる、ステップとを有し、
前記疑似ライブラリ(20)は前記プログラム開発装置(10)で利用可能であるが、前記プライベートライブラリ(38)は前記プログラム開発装置(10)では利用できないことを特徴とする方法。 - 前記リンクするステップは、前記擬似ライブラリ(20)の仮想関数に仮想的にリンクするステップであることを特徴とする、請求項1記載の方法。
- 認証データ(28)が作成され、それによって前記ロードフォーマットのプログラムコード(24、30)を破損から保護することを特徴とする、請求項1または2記載の方法。
- 携帯用データキャリア(12)に実行可能プログラムコード(40)を提供する方法であって、前記実行可能プログラムコード(40)は、前記データキャリア(12)のプロセッサによる実行中に、前記データキャリア(12)に配置されるプライベートライブラリ(38)の関数を使用するようにセットアップされ、該方法は、以下のステップ:
前記携帯用データキャリアが、該データキャリア(12)の動作中にロードフォーマットのプログラムコード(24、30)をロードするステップであって、前記ロードフォーマットのプログラムコード(24、30)は少なくとも部分的に擬似ライブラリ(20)にリンクされており、前記擬似ライブラリ(20)は、前記データキャリア(12)に配置されるプライベートライブラリ(38)の内部の仕組みの少なくともいくらかが前記擬似ライブラリ(20)にない、隠される、またはマスクされるという点で前記データキャリア(12)に配置されるプライベートライブラリ(38)と異なる、ステップと、
前記携帯用データキャリア(12)が、前記ロードフォーマットのプログラムコード(24、30)を前記データキャリア(12)に配置される前記プライベートライブラリ(38)にリンクするステップであって、それによって実行可能プログラムコード(40)を取得するステップとを有し、
前記携帯用データキャリア(12)のプロセッサは、ロード処理を行っている間に前記プログラムコード(24、30)を変換することを特徴とする方法。 - 前記リンクするステップはダイナミックリンクするステップであることを特徴とする、請求項4記載の方法。
- リンク中、前記ロードフォーマットのプログラムコード(24、30)での仮想関数呼び出しは、前記データキャリア(12)に配置される前記プライベートライブラリ(38)の実際の関数呼び出しで置き換えられることを特徴とする、請求項4または5記載の方法。
- 前記ロードフォーマットのプログラムコード(24、30)は認証データ(28)によって保護され、前記実行可能プログラムコード(40)は、認証チェックが成功した後でのみ実行のために提供されることを特徴とする、請求項4から6のいずれか一項に記載の方法。
- 前記実行可能プログラムコード(40)によって提供される関数は、前記データキャリア(12)の管理ユニットに入力されることを特徴とする、請求項4から7のいずれか一項に記載の方法。
- 前記擬似ライブラリ(20)は、前記データキャリアに配置される前記プライベートライブラリ(38)の呼び出しインタフェースと異なる呼び出しインタフェースを提供することを特徴とする、請求項1から8のいずれか一項に記載の方法。
- 前記擬似ライブラリ(20)によって提供される前記呼び出しインタフェースは仮想呼び出しインタフェースであることを特徴とする、請求項9に記載の方法。
- 仮想関数呼び出しは、前記データキャリア(12)に配置される前記プライベートライブラリ(38)において解決されることを特徴とする、請求項1から10のいずれか一項に記載の方法。
- 前記プログラムコード(24、30、40)はアプリケーションプログラムであることを特徴とする、請求項1から11のいずれか一項に記載の方法。
- 前記プログラムコード(24、30、40)はカーネルモジュールであることを特徴とする、請求項1から11のいずれか一項に記載の方法。
- 前記プログラムコード(24、30、40)はネイティブプログラムコードであることを特徴とする、請求項1から13のいずれか一項に記載の方法。
- プログラム開発システム(10)であって、請求項1から3のいずれか一項に記載の方法を実行するようにセットアップされることを特徴とするプログラム開発システム(10)。
- 携帯用データキャリア(12)であって、請求項4から8のいずれか一項に記載の方法を実行するようにセットアップされることを特徴とする携帯用データキャリア(12)。
- プログラム開発システム(10)を制御する複数のプログラムコマンドを備えるコンピュータプログラムであって、前記プログラムコマンドは、前記プログラム開発システム(10)に請求項1から3のいずれか一項に記載の方法を実行させるようにセットアップされることを特徴とするコンピュータプログラム。
- 携帯用データキャリア(12)を制御する複数のプログラムコマンドを備えるコンピュータプログラムであって、前記プログラムコマンドは、前記携帯用データキャリア(12)に請求項4から8のいずれか一項に記載の方法を実行させるようにセットアップされることを特徴とするコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102004058882.1 | 2004-12-06 | ||
DE102004058882A DE102004058882A1 (de) | 2004-12-06 | 2004-12-06 | Erzeugen von Programmcode in einem Ladeformat und Bereitstellen von ausführbarem Programmcode |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007544782A Division JP2008523480A (ja) | 2004-12-06 | 2005-12-01 | ロードフォーマットのプログラムコードの生成および実行可能プログラムコードの提供 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013041598A true JP2013041598A (ja) | 2013-02-28 |
Family
ID=35788755
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007544782A Pending JP2008523480A (ja) | 2004-12-06 | 2005-12-01 | ロードフォーマットのプログラムコードの生成および実行可能プログラムコードの提供 |
JP2012222975A Pending JP2013041598A (ja) | 2004-12-06 | 2012-10-05 | プログラムコードの生成方法、プログラム開発システム、携帯用データキャリア、及びプログラム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007544782A Pending JP2008523480A (ja) | 2004-12-06 | 2005-12-01 | ロードフォーマットのプログラムコードの生成および実行可能プログラムコードの提供 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8332834B2 (ja) |
EP (1) | EP1839136A1 (ja) |
JP (2) | JP2008523480A (ja) |
CN (1) | CN101073054B (ja) |
DE (1) | DE102004058882A1 (ja) |
WO (1) | WO2006061141A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452981B1 (en) * | 2006-03-01 | 2013-05-28 | Nvidia Corporation | Method for author verification and software authorization |
US20120023483A1 (en) * | 2010-07-20 | 2012-01-26 | Dan Welchman | System and method for use in indicating execution of application code |
DE102012024250B4 (de) | 2012-08-02 | 2023-04-13 | Masktech International Gmbh | Verfahren zur Bereitstellung von Chips mit hoher Kopierschutzfunktion, insbesondere für digitale Authentifizierungssysteme, wie Chipkarten oder dergleichen, sowie danach hergestellte Chips |
WO2019148470A1 (zh) * | 2018-02-02 | 2019-08-08 | 深圳配天智能技术研究院有限公司 | 一种可编程逻辑芯片的保护电路及控制系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08339296A (ja) * | 1995-02-27 | 1996-12-24 | Internatl Business Mach Corp <Ibm> | 動的リンク・ライブラリをプログラムにリンクする方法 |
JPH09258969A (ja) * | 1996-03-21 | 1997-10-03 | Toshiba Corp | プログラム開発装置及びプログラム開発方法 |
JPH09269898A (ja) * | 1996-03-15 | 1997-10-14 | Internatl Business Mach Corp <Ibm> | 実行可能ファイルの実行効率を改善するための方法及びシステム |
US20010047512A1 (en) * | 2000-03-23 | 2001-11-29 | Leland Szewerenko | Method and system for linking multiple processors having shared memory |
JP2002132364A (ja) * | 2000-10-19 | 2002-05-10 | Yutaka Iizuka | プログラムを内部解析から保護する方法、コンピュータ読み取り可能な記録媒体及びプログラムの配布方法 |
JP2003140758A (ja) * | 2001-11-07 | 2003-05-16 | Hitachi Ltd | プログラム暗号化方法、復号化方法および実行方法 |
EP1335281A1 (en) * | 2002-01-31 | 2003-08-13 | Chess Embedded Technology B.V. | System and method for loading program code into a device |
JP2003337629A (ja) * | 2002-05-18 | 2003-11-28 | Mitsuko Miyaji | プログラム難読化方法及び装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141698A (en) * | 1997-01-29 | 2000-10-31 | Network Commerce Inc. | Method and system for injecting new code into existing application code |
WO1999001815A1 (en) * | 1997-06-09 | 1999-01-14 | Intertrust, Incorporated | Obfuscation techniques for enhancing software security |
HUP0101368A3 (en) * | 1998-03-23 | 2004-04-28 | Ibm | Java runtime system with modified constant pool |
DE19840029C1 (de) * | 1998-09-02 | 2000-04-20 | Siemens Ag | Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte |
GB9920676D0 (en) * | 1999-09-01 | 1999-11-03 | Tao Group Ltd | Translating and executing object-oriented computer programs |
GB9921720D0 (en) * | 1999-09-14 | 1999-11-17 | Tao Group Ltd | Loading object-oriented computer programs |
CN1373418A (zh) * | 2001-02-28 | 2002-10-09 | 无敌科技(西安)有限公司 | 抽换可携式执行文件格式文件资料的方法 |
ATE481677T1 (de) * | 2001-05-30 | 2010-10-15 | Research In Motion Ltd | System zur verarbeitung einer anwendung für ein mobiles kommunikationsgerät |
US7099663B2 (en) * | 2001-05-31 | 2006-08-29 | Qualcomm Inc. | Safe application distribution and execution in a wireless environment |
JP4115759B2 (ja) * | 2002-07-01 | 2008-07-09 | 株式会社東芝 | 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム |
-
2004
- 2004-12-06 DE DE102004058882A patent/DE102004058882A1/de not_active Withdrawn
-
2005
- 2005-12-01 JP JP2007544782A patent/JP2008523480A/ja active Pending
- 2005-12-01 CN CN2005800419175A patent/CN101073054B/zh not_active Expired - Fee Related
- 2005-12-01 WO PCT/EP2005/012854 patent/WO2006061141A1/de active Application Filing
- 2005-12-01 EP EP05818331A patent/EP1839136A1/de not_active Ceased
- 2005-12-01 US US11/792,517 patent/US8332834B2/en not_active Expired - Fee Related
-
2012
- 2012-10-05 JP JP2012222975A patent/JP2013041598A/ja active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08339296A (ja) * | 1995-02-27 | 1996-12-24 | Internatl Business Mach Corp <Ibm> | 動的リンク・ライブラリをプログラムにリンクする方法 |
JPH09269898A (ja) * | 1996-03-15 | 1997-10-14 | Internatl Business Mach Corp <Ibm> | 実行可能ファイルの実行効率を改善するための方法及びシステム |
JPH09258969A (ja) * | 1996-03-21 | 1997-10-03 | Toshiba Corp | プログラム開発装置及びプログラム開発方法 |
US20010047512A1 (en) * | 2000-03-23 | 2001-11-29 | Leland Szewerenko | Method and system for linking multiple processors having shared memory |
JP2002132364A (ja) * | 2000-10-19 | 2002-05-10 | Yutaka Iizuka | プログラムを内部解析から保護する方法、コンピュータ読み取り可能な記録媒体及びプログラムの配布方法 |
JP2003140758A (ja) * | 2001-11-07 | 2003-05-16 | Hitachi Ltd | プログラム暗号化方法、復号化方法および実行方法 |
EP1335281A1 (en) * | 2002-01-31 | 2003-08-13 | Chess Embedded Technology B.V. | System and method for loading program code into a device |
JP2003337629A (ja) * | 2002-05-18 | 2003-11-28 | Mitsuko Miyaji | プログラム難読化方法及び装置 |
Non-Patent Citations (2)
Title |
---|
CSNH199900060005; 斎藤 悦生、吉田 和樹: 'C SolutionTM アプリケーションフレームワーク' 東芝レビュー 第54巻、第1号, 19990101, 第45-48頁, 株式会社東芝 * |
JPN6013039817; 斎藤 悦生、吉田 和樹: 'C SolutionTM アプリケーションフレームワーク' 東芝レビュー 第54巻、第1号, 19990101, 第45-48頁, 株式会社東芝 * |
Also Published As
Publication number | Publication date |
---|---|
EP1839136A1 (de) | 2007-10-03 |
CN101073054A (zh) | 2007-11-14 |
US20090044172A1 (en) | 2009-02-12 |
DE102004058882A1 (de) | 2006-06-08 |
CN101073054B (zh) | 2011-01-26 |
WO2006061141A1 (de) | 2006-06-15 |
US8332834B2 (en) | 2012-12-11 |
JP2008523480A (ja) | 2008-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3807797B1 (en) | Pointer authentication and dynamic switching between pointer authentication regimes | |
US8090959B2 (en) | Method and apparatus for protecting .net programs | |
WO2015026091A1 (ko) | 공통 중간 언어 기반 프로그램을 위한 보안 제공 방법 | |
JP6227772B2 (ja) | 動的ライブラリを保護する方法及び装置 | |
CN105068932B (zh) | 一种Android应用程序加壳的检测方法 | |
US20090271867A1 (en) | Virtual machine to detect malicious code | |
US20080216071A1 (en) | Software Protection | |
US20170024230A1 (en) | Method, apparatus, and computer-readable medium for ofuscating execution of an application on a virtual machine | |
JP2007535761A (ja) | 抗タンパーコードを生成するシステム及び方法 | |
EP3924848A1 (en) | Securing virtual-machine software applications | |
CN107430650B (zh) | 保护计算机程序以抵御逆向工程 | |
AU2004322201A1 (en) | Java applet, jar file creating method, jar file creating program, and jar file creating device | |
JP2013041598A (ja) | プログラムコードの生成方法、プログラム開発システム、携帯用データキャリア、及びプログラム | |
CN117150515B (zh) | Eda二次开发源代码的安全保护方法、电子设备及存储介质 | |
CN112559980B (zh) | 一种可内嵌众多任意app的小程序运行时 | |
CN116910712A (zh) | 代码保护方法、系统、电子设备及存储介质 | |
CN110597496A (zh) | 应用程序的字节码文件获取方法及装置 | |
Metula | Managed code rootkits: hooking into runtime environments | |
JP2018005915A (ja) | アプリケーションパッケージを提供する方法およびシステム、アプリケーションを実行する方法およびシステム | |
US20150052514A1 (en) | Method and computer system of distributing a computer program product | |
CN114461992A (zh) | 一种java程序代码保护方法、装置、设备及存储介质 | |
Lu et al. | Method And Apparatus For Protecting .NET Programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130813 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140128 |