JP2004504668A - コンピュータ・ソフトウエアのインストレーション - Google Patents

コンピュータ・ソフトウエアのインストレーション Download PDF

Info

Publication number
JP2004504668A
JP2004504668A JP2002512798A JP2002512798A JP2004504668A JP 2004504668 A JP2004504668 A JP 2004504668A JP 2002512798 A JP2002512798 A JP 2002512798A JP 2002512798 A JP2002512798 A JP 2002512798A JP 2004504668 A JP2004504668 A JP 2004504668A
Authority
JP
Japan
Prior art keywords
subroutine
executable program
operable
software
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2002512798A
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 JP2004504668A publication Critical patent/JP2004504668A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

実行可能プログラムがRAM(10)内にロードされるとき、RAMは、当初、ローダ・モジュール(12a)、プログラム(10)、エンジン(22)、および暗号化されたリソース(24)、たとえば暗号化された.DLLファイルを含んでいる。プログラム(14)が実行されるとき、ローダ・モジュール(12a)がエンジン(22)を呼び出し、それがプログラム(14)によって要求されるサブルーチン・リソースにアクセスし、システム内においてすでに要求に応じられる状態にあるリソースを識別し、すでに要求に応じられる状態にあるリソースはロードし、かつ要求に応じられる状態にないリソースは暗号解除してロードする。これは、プログラム(14)が実行されるごとに、要求されたサブルーチンがプログラム(14)に対して要求に応じられる状態となることを保証する。
【選択図】図3

Description

【0001】
本発明は、コンピュータ・ソフトウエアに関し、より詳細には、コンピュータ・ソフトウエアのインストレーションのための構成に関する。
【0002】
最近のコンピュータ・ソフトウエア、特にスプレッドシートおよびワード・プロセッサ等のアプリケーションは、高度に複雑化しており、メイン実行可能プログラムによって必要時に呼び出されるサブルーチンを多用する。多くの場合、これらのサブルーチンは、ほかのアプリケーションによっても必要になることがある。たとえば、プリント・サブルーチン、あるいはファイルを開く、ファイルを閉じるといったことに関するサブルーチンは、各種の異なるアプリケーションによる使用が可能になっていることがある。したがって、システム・メモリ内のスペースを節約するために、これらのサブルーチンを、可能な場合には共有することが提案されている。つまり、新しいアプリケーションをインストールするとき、その新しいアプリケーションがシステム内にすでに要求に応じられる状態にあるリソースをチェックし、使用可能な場合にはそれらを使用することが提案されている。また、新しいアプリケーションが、システム内に要求に応じられると見つけたものより新しいバージョンのサブルーチンを必要とする場合には、その新しいアプリケーションのインストール時に、より新しいバージョンがインストールされることになる。
【0003】
これは、アプリケーション間にコンフリクトをもたらす。すでにシステム上にあるアプリケーションが、そのサブルーチンの、より古いバージョン、つまり新しいアプリケーションによって要求されたそれより新しいバージョンによって今上書きされてしまったバージョンを必要とすることがある。これによって、現存するアプリケーションの動作が予測不能、もしくは動作不能になる可能性がある。
【0004】
本発明は、これらの困難の解決を求める。
【0005】
本発明は、実行の間に少なくとも1つのサブルーチンに対するアクセスを必要とする実行可能プログラムを含むコンピュータ・ソフトウエアを提供し、当該ソフトウエアは、さらにそのサブルーチンもしくは各サブルーチンを暗号化された形式で含み、さらに暗号化されたサブルーチンを、少なくともアクセスが要求されたときに実行可能形式に変換する暗号解除ルーチンを含むものとする。
【0006】
好ましくは暗号解除ルーチンが、プログラムの実行時に常に実行され、それによってそれぞれの機会ごとにサブルーチンが実行可能形式で再形成されるものとする。好ましくは暗号解除ルーチンが、サブルーチンをロケートしてアクセスするために、プログラムによってアクセス可能であるアドレス・テーブルを生成する。暗号解除ルーチンは、好ましくはソフトウエアを実行するシステム内にすでに要求に応じられる状態にあるサブルーチンの存在を検出し、サブルーチンがすでに要求に応じられる状態にあるときには実行可能プログラムにそれを使用させるべく動作可能であるものとする。暗号解除ルーチンは、すでに要求に応じられる状態にあるサブルーチンに関するアドレスをアドレス・テーブル内に組み込むべく動作可能であるとしてもよく、それによってサブルーチンの別のコピーを暗号解除する必要をなくすことができる。
【0007】
暗号解除ルーチンは、好ましくはサブルーチンの各種バージョンの間を弁別し、それによってシステム内に異なるバージョンのみが要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除するべく動作可能であるとする。
【0008】
このソフトウエアは、好ましくはさらに、実行可能プログラムの暗号化されたコピーを組み込んでおり、暗号解除ルーチンは、プログラムの実行可能コピーを暗号解除するべく動作可能であるとする。好ましくは暗号解除ルーチンが、ソフトウエア内に含まれている暗号化されていないコピーが改ざんされているとして検出された場合に、実行可能プログラムのコピーを暗号解除するべく動作可能であるとする。
【0009】
好ましくは暗号化および暗号解除が、圧縮または伸張テクニックを含むか、それからなるものとする。
【0010】
本発明は、上記のコンピュータ・ソフトウエアを含むデータ・ストレージ・デバイスも提供する。
【0011】
また本発明は、ソフトウエアを実行するべく動作可能なプロセッシング手段、および上記のコンピュータ・ソフトウエアの少なくとも一部品を包含するコンピュータ・システムも提供する。
【0012】
さらに本発明は、実行可能プログラムを実行するべく動作可能なコンピュータ・システムを提供し、当該システムは:
実行可能プログラムを表すコンピュータ可読コードを含む第1のストア手段;
実行のためのコードをロードするべく動作可能なローディング手段;
実行可能プログラムによって、その実行間に要求されるサブルーチンを識別するべく動作可能な識別手段;
識別手段によって識別された前述のサブルーチンまたは各サブルーチンを表すコンピュータ可読コードを含む第2のストア手段;および、
サブルーチンがシステム内のどこにも要求に応じられる状態にない場合に、前述のサブルーチンまたは各サブルーチンを第2のストア手段からロードするべく動作可能な第2のローディング手段;を備える。
【0013】
好ましくは識別手段および第2のローディング手段が、実行可能プログラムの実行が開始されるごとに動作され、それによってそれぞれの機会ごとにサブルーチンを要求に応じられる状態にするものとする。第2のローディング手段は、要求に応じられる状態にされたサブルーチンのロケーションを識別するエントリをアドレス・テーブル内に作成することが可能であり、このアドレス・テーブルは、必要時にサブルーチンをロケートしてアクセスするために、実行可能プログラムによるアクセスが可能である。好ましくは第2のローディング手段が、システム内にすでに要求に応じられる状態にあるサブルーチンの存在を検出し、かつサブルーチンがすでに要求に応じられる状態にあるときには、実行可能プログラムにそれを使用させるべく動作可能であるとする。第2のローディング手段は、システム内のどこかにおいて要求に応じられる状態にあるサブルーチンに関するアドレスをアドレス・テーブル内に組み込むべく動作可能であるとすることができる。第2のローディング手段は、好ましくはサブルーチンの各種バージョンの間を弁別し、それによってシステム内のどこかに異なるバージョンのみが要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除するべく動作可能であるとする。
【0014】
第2のストア手段は、さらに、実行可能プログラムを表すコンピュータ可読コードを含むことが可能であり、第2のローディング手段は、システム内のどこにも実行可能プログラムが要求に応じられる状態にない場合に、第2のストア手段から実行可能プログラムをロードするべく動作可能である。この実行可能プログラムは、第2のストア手段内に暗号化された形式で保持することができ、第2のローディング手段は、システム内のどこかにおいて要求に応じられる状態にある実行可能プログラムのコピーが改ざんされているとして検出された場合に、コピーを暗号解除するべく動作可能である。
【0015】
暗号化および暗号解除が、圧縮または伸張テクニックを含むか、それからなるものとすることができる。
【0016】
さらに本発明は、コンピュータ・ソフトウエアの部品をインストールする方法を提供し、当該方法は:
1. 実行間に少なくとも1つのサブルーチンに対するアクセスを必要とするタイプの実行可能プログラムをインストールすること;
2. サブルーチンの暗号化されたコピーを暗号解除すること;および、
3. 実行可能プログラムによるアクセスのために暗号解除されたコピーをインストールすること;を包含する。
【0017】
暗号解除するステップおよびインストールするステップは、好ましくは実行可能プログラムの実行が必要とされるごとに実行されるものとする。
【0018】
さらにこの方法は、すでにインストールされており、実行可能プログラムに対して要求に応じられる状態にあるサブルーチンを識別するステップ、およびそのように要求に応じられる状態にない前述の、またはほかの必要とされるサブルーチンのみを暗号解除し、インストールするステップを包含する。この、すでに要求に応じられる状態にあるサブルーチンを識別するステップは、好ましくはサブルーチンの各種バージョンの間を弁別し、それによって異なるバージョンのみがすでに要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除することを含む。
【0019】
この方法は、さらに、改ざんに関して実行可能プログラムを評価するステップ、および改ざんが検出された場合に、実行可能プログラムの別のコピーを使用のために暗号解除をし、インストールするステップを包含することができる。
【0020】
好ましくは暗号化および暗号解除は、圧縮または伸張テクニックを含むか、それからなるものとする。
【0021】
以下、図面を参照し、例示のみを目的として本発明の例についてより詳細に説明する。
【0022】
ソフトウエアのインストールのための構成を説明する前に、本発明を実施することができるデータ・プロセッシング・システムの基本的コンポーネントについて述べておくことはまず有用である。図1は、入力/出力デバイス3が接続されたプロセッサ2を含むコンピュータ・システム1を示している。プロセッサ2には、プロセッシングの間に使用するためのランダム・アクセス・メモリ(RAM)4も備えられている。5には、追加のメモリ容量が提供されており、たとえばハード・ドライブによって提供される。このコンピュータ・システムは、たとえばIBM PCタイプ、あるいはその等価物のコンピュータとすることができる。
【0023】
ソフトウエア・アプリケーションを、必要になるまでドライブ5上にストアしておき、その後、その使用が必要となったときにRAM4にインストールすることは広く実践されている。これは、プロセッサ2によるソフトウエアへのアクセス速度を改善し、したがってプロセッサ2による、より高速なプロセッシングが可能になる。図2は、図1に示されているタイプのデバイスのプロセッサによる使用のためにアプリケーション(ワード・プロセッサ・アプリケーション等)がインストールされたRAM10のセクションを表している。この図は、アプリケーションの各種コンポーネントを高度に簡略化し、略図形式で示している。そこに含まれているローダ12は、アプリケーションが最初に開かれたときのその初期オペレーションを実施するコードのブロックである。プログラムの本体は、RAM10内の14にインストールされる。このプログラム14は、前述したように、サブルーチンを含むファイルに対するアクセスを必要とする。それらは、一般に.DLLファイルと呼ばれており、各種のアプリケーションによって共有されている。そのため.DLLファイル16は、RAM10内のほかの場所にあるものとして図に示されている。プログラム14と.DLLファイル16の間の領域18は、別のアプリケーションのインストールといった、ほかの使用のために空いている。
【0024】
RAM10には、インポート・アドレス・テーブル(IAT)20も含まれている。これは、.DLLファイル16のロケーションを識別するテーブルであり、それによりプログラム14からこれらのファイル16が要求されたとき、プロセッサ2は、IAT20内のこれらのファイルのロケーションをルックアップすることによってそれらのファイル16にアクセスすることができる。IATは、ハード・ドライブからRAM10にアプリケーションがコピーされ、その後、最初に実行がローダ12に渡されたとき、ローダ12によって作成される。ローダ12は、いずれの.DLLファイルがアプリケーションによって要求されているかをチェックし、それらをハード・ドライブ上において見つけ出し、それらをRAM10にロードして、各.DLLおよびRAM内のそのロケーションを識別するIAT20を作成する。
【0025】
図3a、3b、および3cは、本発明に従ってアプリケーションのロードが可能になる方法を示している。これらについては、アプリケーションがロードされるときに実行されるステップのシーケンスを示した図4のフローチャートに関連して理解することができる。図示されているステップは、本発明に関連する部分だけである。ここで理解する必要があるが、本発明に関連していないそのほかのステップが、ロードの一部として図示のステップの前、間、あるいは後に実行されることもある。
【0026】
RAM10の初期ロードの結果は、図3aに示されている状態になる。ローダ・モジュール12aが適正な位置に収められ(図4のステップ100)、概略でそれは図2のローダ12に対応している。またプログラム14も、図2のインストレーションに対応する位置にインストールされる(ステップ102)。しかしながら、図3aで注意を要することは、図2においてIAT20に関して使用されているメモリの領域が、図3aにおいては空となっていることである。
【0027】
本発明によれば、初期ロードの一部として、エンジン22と呼ばれる追加の実行可能コードのブロックがRAM10内のプログラム14の下、つまり領域18の一部にインストールされる(ステップ104)。ほかのファイル24は、エンジン22に関連付けされており、それとともにロードされる(ステップ106)。これらのファイルは、図1の.DLLファイル16の暗号化されたバージョンである。暗号化は、圧縮もしくはより安全な暗号化テクニックによるものとすることができる。これらのファイル24は、図3aにおいてカッコ内に識別されており、暗号化されているそれらの特性を略図的に示している。
【0028】
前述した初期ロードの後、実行がローダ・モジュール12aに渡される(ステップ108)。つまり、プロセッサ2のプログラム・ポインタがローダ・モジュール12aの先頭のメモリアドレスをポイントする。図3bは、その後、RAM10内に生じる変化を図示している。アプリケーションの初期化の一部として、ローダ12が、エンジン22を起動する(ステップ110)。エンジン22は、2つの機能を提供する。第1においては、エンジン22がアプリケーションによって要求されるリソース(つまり、この例の場合であれば.DLLファイル)を識別し(ステップ112)、かつシステム内においてすでに要求に応じられる状態のリソースを識別する(ステップ114)。デフォルトにより、このステップ114は、要求に応じられる状態にないリソースについての識別も行う。この単純な例においては、サブルーチン.DLL1が要求されており、かつハード・ドライブ5上において要求に応じられる状態にあるが、サブルーチン.DLL2は、要求されているがハード・ドライブ上において要求に応じられる状態にないものと仮定する。したがってエンジン22は、ハード・ドライブ上において.DLL1をロケートし、それをRAM10上にコピーし(ステップ116)、サブルーチン.DLL1ならびにそのロケーションを識別する適切なエントリをIAT20内に作成する(ステップ118)ことによって、IAT20の構築を開始することが可能になる。この結果、図3bに示されている状態になる。
【0029】
このプロセスの一部として、エンジン22は、必要とされているサブルーチンであって、すでにハード・ドライブから要求に応じられる状態となっていないか、適切なバージョンが要求に応じられる状態にないサブルーチンの識別を行う(ステップ114)。この単純な例においては、当初サブルーチン.DLL2が、要求に応じられる状態にない。したがってエンジン22は、(.DLL2)として示された暗号化されたファイルにアクセスし(ステップ120)、.DLL2のコピーを暗号解除するべく動作する(ステップ122)。暗号解除したコピーは、続いてインストールされ(ステップ124)、プログラム14の要求に応じられる状態になる。これにおいても、エンジン22が、ファイル.DLL2の存在ならびにロケーションを識別する適切なエントリをIAT20内に作成する(ステップ126)。
【0030】
したがって、上記のようにエンジン22が完全に実行された後は、RAM10が図3cに示されている状態になる。このアプリケーションのインストレーションは、図2に示されているインストレーションに等価となり、ローダ12a、プログラム14、プログラムをサブルーチンに向けるためのIAT20、およびDLLサブルーチン16の完全なセットが存在する。それに加えて、この時点においては、図2の空のエリア18の一部がエンジン22および暗号化された(.DLL)ファイルによって満たされているが、これらは、プログラム14の実行が開始した後は呼び出されない。以上により、この時点で16において入手可能であり、IAT20内に識別されている、プログラム14が必要とするリソースを用いて、今やプログラム14の実行を開始することが可能になる(ステップ128)。
【0031】
エンジン22および暗号化された(.DLL)ファイルを、最初にRAM10内にインストールされるソフトウエアに組み込むことによって、次のような有用な技術的効果を達成することができる。すなわち、アプリケーションが、そのオペレーションに必要なサブルーチンの完全なセットを伴うという意味において独立言語型になる。これらは、好ましくはスペースを節約するために圧縮された形式とし、さらにセキュリティのために暗号化されるものとすることができる。それらがすでに要求に応じられる状態となっていない場合、あるいは適正なバージョンが要求に応じられる状態にない場合には、上記と同様にそれらのインストールが可能である。さらに、アプリケーションの実行ごとに、ローダ・モジュールが実行されてエンジン22を呼び出すとき、必要に応じてインストールされることになる。つまり、アプリケーションの適正なオペレーションは、ほかのアプリケーションが共有.DLLファイルの修正、置換または上書きをいかに積極的に行ったとしても、異なるアプリケーションのインストレーションまたはオペレーションによって影響されることはない。別のアプリケーションのアクティビティの結果として、あるいはそのほかの理由により、要求に応じられなくなった共有ファイルは、アプリケーションが次に実行されるとき、暗号化された(.DLL)ファイルから復元される。
【0032】
エンジン22および暗号化された(.DLL)ファイルのオペレーションは、ウィルス攻撃またはそのほかの改ざんに対するある程度の保護も提供する。エンジン22は、ハード・ドライブから見たところ要求に応じられる状態のサブルーチンの改ざんを評価し、改ざんが見つかるか疑われる場合には、まあたらしい、暗号化されていないコピーを(.DLL)ファイルからインストールするべくプログラムすることができる。
【0033】
本発明をさらに拡張すると、メイン・プログラム14内において改ざんが見つかるか疑われる場合に、プログラム14の完全でまあたらしいコピーが暗号解除され、インストールされることを意図して、エンジン22を、再びメイン・プログラム14の暗号化されたコピーとともに提供することができる。
【0034】
これらの説明から明らかになろうが、本発明の範囲から逸脱することなく上記の構成に対して多くの変形ならびに修正を行うことが可能である。詳細に述べれば、当業者にとっては、このテクニックが非常に広範な言語において、各種広範な暗号化、暗号解除、圧縮、または伸張テクニックを使用して実施可能なことが明らかであろう。
【0035】
以上の明細においては、特に重要であると思われる本発明の特徴に注意が注がれるべく努めているが、出願人が、特定の強調が置かれているか否かによらず、図面を参照した、および/またはそれに示されている上記のあらゆる特許性のある特徴、もしくは特徴の組み合わせに関する保護を主張していることが理解されるものとする。
【図面の簡単な説明】
【図1】本発明が実施されると見られるデータ・プロセッシング・デバイスの簡略化した概略図である。
【図2】先行する提案に従ってインストールされるアプリケーションを伴うRAMを示している。
【図3】(a)、(b)および(c)は、本発明に従ったRAM内へのアプリケーションのインストラクションに関するステップを示している。
【図4】アプリケーションがロードされるときに実行されるステップのシーケンスを示したフローチャートである。

Claims (27)

  1. 実行の間に少なくとも1つのサブルーチンに対するアクセスを必要とする実行可能プログラムを含むコンピュータ・ソフトウエアであって、さらに前記サブルーチンもしくは各サブルーチンを暗号化された形式で含み、さらに前記暗号化されたサブルーチンを、少なくともアクセスが要求されたときに実行可能形式に変換する暗号解除ルーチンを含むものとするソフトウエア。
  2. 前記暗号解除ルーチンが、前記プログラムの実行時に常に実行され、それによって前記サブルーチンがそれぞれの機会ごとに実行可能形式で再形成されるものとする請求項1記載のソフトウエア。
  3. 前記暗号解除ルーチンが、再形成したサブルーチンのロケーションを識別するエントリをアドレス・テーブル内に作成し、前記アドレス・テーブルが、必要時にサブルーチンをロケートしてアクセスするために、前記プログラムによってアクセス可能であるものとする請求項1または2記載のソフトウエア。
  4. 前記暗号解除ルーチンが、前記ソフトウエアを実行するシステム内においてすでに要求に応じられる状態にあるサブルーチンの存在を検出し、サブルーチンがすでに要求に応じられる状態にあるときには前記実行可能プログラムにそれを使用させるべく動作可能であるとする先行するいずれかの請求項に記載のソフトウエア。
  5. 前記暗号解除ルーチンが、すでに要求に応じられる状態にあるサブルーチンに関するアドレスを前記アドレス・テーブル内に組み込むべく動作可能であり、それによって前記サブルーチンの別のコピーを暗号解除する必要がなくなるものとする請求項4および5記載のソフトウエア。
  6. 前記暗号解除ルーチンが、サブルーチンの各種バージョンの間を弁別し、それによって前記システム内に異なるバージョンのみが要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除するべく動作可能であるとする先行するいずれかの請求項に記載のソフトウエア。
  7. さらに、前記実行可能プログラムの暗号化されたコピーを組み込んでおり、前記暗号解除ルーチンが、前記プログラムの実行可能コピーを暗号解除するべく動作可能であるとする先行するいずれかの請求項に記載のソフトウエア。
  8. 前記暗号解除ルーチンが、前記ソフトウエア内に含まれている暗号化されていないコピーが改ざんされているとして検出された場合に、前記実行可能プログラムのコピーを暗号解除するべく動作可能であるとする請求項7記載のソフトウエア。
  9. 暗号化および暗号解除が、圧縮または伸張テクニックを含むかそれからなるものとする先行するいずれかの請求項に記載のソフトウエア。
  10. プログラムが記録されたコンピュータ可読メディアであって、前記プログラムが、先行するいずれかの請求項に従ったコンピュータ・ソフトウエアを包含するものとするコンピュータ可読メディア。
  11. ソフトウエアを実行するべく動作可能なプロセッシング手段、および請求項1〜9のいずれかに従ったコンピュータ・ソフトウエアの少なくとも一部品を包含するものとするコンピュータ・システム。
  12. 実行可能プログラムを実行するべく動作可能なコンピュータ・システムであって:
    前記実行可能プログラムを表すコンピュータ可読コードを含む第1のストア手段;
    実行のためのコードをロードするべく動作可能なローディング手段;
    前記実行可能プログラムによって、その実行間に要求されるサブルーチンを識別するべく動作可能な識別手段;
    前記識別手段によって識別された前記サブルーチンまたは各サブルーチンを表すコンピュータ可読コードを含む第2のストア手段;および、
    前記サブルーチンが前記システム内のどこにも要求に応じられる状態にない場合に、前記サブルーチンまたは各サブルーチンを前記第2のストア手段からロードするべく動作可能な第2のローディング手段;
    を備えるコンピュータ・システム。
  13. 前記識別手段および第2のローディング手段が、前記実行可能プログラムの実行が開始されるごとに動作され、それによってそれぞれの機会ごとに前記サブルーチンを要求に応じられる状態にするものとする請求項12記載のシステム。
  14. 前記第2のローディング手段が、要求に応じられる状態にされたサブルーチンのロケーションを識別するエントリをアドレス・テーブル内に作成し、前記アドレス・テーブルが、必要時にサブルーチンをロケートしてアクセスするために、前記実行可能プログラムによってアクセス可能であるものとする請求項12または13記載のシステム。
  15. 前記第2のローディング手段が、前記システム内にすでに要求に応じられる状態にあるサブルーチンの存在を検出し、かつサブルーチンがすでに要求に応じられる状態にあるときには前記実行可能プログラムにそれを使用させるべく動作可能であるとする請求項12〜14のいずれかに記載のシステム。
  16. 前記第2のローディング手段が、前記システム内のどこかにおいて要求に応じられる状態にあるサブルーチンに関するアドレスを前記アドレス・テーブル内に組み込むべく動作可能であるとする請求項15および14に記載のシステム。
  17. 前記第2のローディング手段が、サブルーチンの各種バージョンの間を弁別し、それによって前記システム内のどこかに異なるバージョンのみが要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除するべく動作可能であるとする請求項12〜16のいずれかに記載のシステム。
  18. 前記第2のストア手段が、さらに、実行可能プログラムを表すコンピュータ可読コードを含んでおり、前記第2のローディング手段が、前記システム内のどこにも前記実行可能プログラムが要求に応じられる状態にない場合には、前記第2のストア手段から前記実行可能プログラムをロードするべく動作可能であるとする請求項12〜17のいずれかに記載のシステム。
  19. 前記実行可能プログラムが、前記第2のストア手段内に暗号化された形式で保持されており、前記システム内のどこかにおいて要求に応じられる状態にある前記実行可能プログラムのコピーが改ざんされているとして検出された場合に、前記第2のローディング手段が、前記コピーを暗号解除するべく動作可能であるとする請求項18記載のシステム。
  20. 暗号化および暗号解除が、圧縮または伸張テクニックを含むかそれからなるものとする請求項12〜19のいずれかに記載のシステム。
  21. コンピュータ・ソフトウエアの部品をインストールする方法であって:
    1. 実行間に少なくとも1つのサブルーチンに対するアクセスを必要とするタイプの実行可能プログラムをインストールすること;
    2. 前記サブルーチンの暗号化されたコピーを暗号解除すること;および、
    3. 前記実行可能プログラムによるアクセスのために前記暗号解除されたコピーをインストールすること;
    を包含する方法。
  22. 前記暗号解除するステップおよび前記インストールするステップが、前記実行可能プログラムの実行が必要とされるごとに実行されるものとする前記請求項21記載の方法。
  23. さらに、すでにインストールされており、前記実行可能プログラムに対して要求に応じられる状態にあるサブルーチンを識別するステップ、およびそのように要求に応じられる状態にない前記サブルーチンまたはほかの必要とされるサブルーチンのみを暗号解除し、インストールするステップを包含するものとする前記請求項21または22記載の方法。
  24. 前記すでに要求に応じられる状態にあるサブルーチンを識別するステップが、サブルーチンの各種バージョンの間を弁別し、それによって異なるバージョンのみがすでに要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除することを含むものとする前記請求項23記載の方法。
  25. さらに、改ざんに関して前記実行可能プログラムを評価するステップ、および改ざんが検出された場合に、前記実行可能プログラムの別のコピーを使用のために暗号解除をしてインストールするステップを包含するものとする請求項21〜24のいずれかに記載の方法。
  26. 暗号化および暗号解除が、圧縮または伸張テクニックを含むかそれからなるものとする請求項21〜25のいずれかに記載の方法。
  27. 実質的にこの明細書に、添付図面の参照を伴って記載されているようなコンピュータ・ソフトウエア・プロダクト。
JP2002512798A 2000-07-18 2001-07-12 コンピュータ・ソフトウエアのインストレーション Withdrawn JP2004504668A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0017478.9A GB0017478D0 (en) 2000-07-18 2000-07-18 Computer software installation
PCT/GB2001/003134 WO2002006951A2 (en) 2000-07-18 2001-07-12 Computer software installation

Publications (1)

Publication Number Publication Date
JP2004504668A true JP2004504668A (ja) 2004-02-12

Family

ID=9895780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002512798A Withdrawn JP2004504668A (ja) 2000-07-18 2001-07-12 コンピュータ・ソフトウエアのインストレーション

Country Status (7)

Country Link
US (1) US20020023224A1 (ja)
EP (1) EP1303808A2 (ja)
JP (1) JP2004504668A (ja)
CN (1) CN100470473C (ja)
AU (1) AU2001269332A1 (ja)
GB (2) GB0017478D0 (ja)
WO (1) WO2002006951A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2381090B (en) 2001-10-17 2005-02-02 Bitarts Ltd Software loading
EP1398948B1 (en) 2002-09-13 2013-11-06 Ricoh Company, Ltd. Image forming apparatus, methods used therein and a computer readable storage medium
JP4676977B2 (ja) * 2002-09-14 2011-04-27 株式会社リコー 画像形成装置、アプリケーション情報取得方法、及びプログラム
JP4677054B2 (ja) * 2002-09-14 2011-04-27 株式会社リコー 画像形成装置、プログラム、記録媒体、及び方法
WO2008035141A2 (en) * 2006-09-20 2008-03-27 Chan Kam-Fu From polymorphic executable to polymorphic operating system
US8918873B1 (en) * 2009-07-02 2014-12-23 Symantec Corporation Systems and methods for exonerating untrusted software components
CN101763269A (zh) * 2010-01-27 2010-06-30 中兴通讯股份有限公司 一种软件安装包的制作方法
CN101980160B (zh) * 2010-10-28 2013-02-13 飞天诚信科技股份有限公司 一种.net程序加密后的执行方法
CN102207866B (zh) * 2011-05-25 2014-07-09 上海盛轩网络科技有限公司 基于WebOS的应用程序开发、发布、安装、运行系统及方法
CN104978237B (zh) * 2014-04-11 2019-03-19 腾讯科技(深圳)有限公司 修复动态链接库文件的方法和装置
US9798537B2 (en) * 2015-09-14 2017-10-24 Mastercard International Incorporated Isolating applications with a segmented architecture
CN110414217B (zh) * 2019-07-31 2023-03-24 广东小天才科技有限公司 应用程序的安全运行方法、装置、电子设备和存储介质

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4930073A (en) * 1987-06-26 1990-05-29 International Business Machines Corporation Method to prevent use of incorrect program version in a computer system
US5479512A (en) * 1991-06-07 1995-12-26 Security Dynamics Technologies, Inc. Method and apparatus for performing concryption
US5584023A (en) * 1993-12-27 1996-12-10 Hsu; Mike S. C. Computer system including a transparent and secure file transform mechanism
US5530752A (en) * 1994-02-22 1996-06-25 Convex Computer Corporation Systems and methods for protecting software from unlicensed copying and use
US5548759A (en) * 1994-07-05 1996-08-20 Microsoft Corporation System for storing executable code within a resource data section of an executable file
US5586328A (en) * 1994-10-21 1996-12-17 Microsoft Corporation Module dependency based incremental compiler and method
US5835749A (en) * 1995-05-05 1998-11-10 Apple Computer, Inc. Method and apparatus for providing dynamically linked libraries
US5727205A (en) * 1995-06-28 1998-03-10 Canon Information Systems, Inc. File installation system for displaying bitmaps during file installation
US5754646A (en) * 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
US6052780A (en) * 1996-09-12 2000-04-18 Open Security Solutions, Llc Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
EP0845438B1 (en) * 1996-11-28 2001-09-19 Kurita Water Industries Ltd. Oxygen scavenger and boiler water treatment chemical
US6141698A (en) * 1997-01-29 2000-10-31 Network Commerce Inc. Method and system for injecting new code into existing application code
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
JPH11134234A (ja) * 1997-08-26 1999-05-21 Reliatec Ltd バックアップ・リストア方法およびその制御装置,並びにバックアップ・リストアプログラムを記録したコンピュータ読み取り可能な記録媒体
US5974470A (en) * 1997-09-03 1999-10-26 Chicago-Soft, Ltd. System for reducing conflicts among dynamic link library modules by aliasing modules
GB2329490B (en) * 1997-09-19 2002-06-05 Ibm Remote application design
US6334213B1 (en) * 1998-01-20 2001-12-25 Preview Systems Merging of separate executable computer programs to form a single executable computer program
US7236610B1 (en) * 1998-04-30 2007-06-26 Fraunhofer Gesellschaft Authenticating executable code and executions thereof
GB2343022B (en) * 1998-10-19 2003-01-08 Ibm Encrypting of java methods
US6353928B1 (en) * 1999-01-04 2002-03-05 Microsoft Corporation First run installer
US6532488B1 (en) * 1999-01-25 2003-03-11 John J. Ciarlante Method and system for hosting applications
US6970924B1 (en) * 1999-02-23 2005-11-29 Visual Networks, Inc. Methods and apparatus for monitoring end-user experience in a distributed network
US6920567B1 (en) * 1999-04-07 2005-07-19 Viatech Technologies Inc. System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
US6308184B1 (en) * 1999-04-09 2001-10-23 Hewlett-Packard Company Delayed unloading of a dynamically loadable file
US6966002B1 (en) * 1999-04-30 2005-11-15 Trymedia Systems, Inc. Methods and apparatus for secure distribution of software
US6529992B1 (en) * 1999-07-26 2003-03-04 Iomega Corporation Self-contained application disk for automatically launching application software or starting devices and peripherals
US7171673B1 (en) * 1999-08-06 2007-01-30 Honeywell International Inc. System and method for validating interfaces of dynamically linkable components and real-time process control system incorporating the same
US6484276B1 (en) * 1999-10-25 2002-11-19 Lucent Technologies Inc. Method and apparatus for providing extensible object-oriented fault injection
US7047537B1 (en) * 2000-01-04 2006-05-16 Cisco Technology, Inc. Code linking system
US6976037B1 (en) * 2000-03-27 2005-12-13 Microsoft Corporation Method and systems for DLL/COM redirection
US6698015B1 (en) * 2000-06-13 2004-02-24 Cisco Technology, Inc. Apparatus and method for improving performance of critical code execution
US6922782B1 (en) * 2000-06-15 2005-07-26 International Business Machines Corporation Apparatus and method for ensuring data integrity of unauthenticated code
US6742026B1 (en) * 2000-06-19 2004-05-25 International Business Machines Corporation System and method for providing a distributable runtime
US7051211B1 (en) * 2000-08-21 2006-05-23 International Business Machines Corporation Secure software distribution and installation
US7131122B1 (en) * 2000-08-24 2006-10-31 International Business Machines Corporation Apparatus, system and method for detecting old version of an applet in a client brower's JVM
US7308717B2 (en) * 2001-02-23 2007-12-11 International Business Machines Corporation System and method for supporting digital rights management in an enhanced Java™ 2 runtime environment
US7055146B1 (en) * 2001-03-08 2006-05-30 Microsoft Corporation Method and system for dynamically inserting modifications for identified programs

Also Published As

Publication number Publication date
AU2001269332A1 (en) 2002-01-30
CN100470473C (zh) 2009-03-18
WO2002006951A3 (en) 2002-12-05
EP1303808A2 (en) 2003-04-23
GB2382435A (en) 2003-05-28
GB0303288D0 (en) 2003-03-19
GB0017478D0 (en) 2000-08-30
WO2002006951A2 (en) 2002-01-24
CN1527972A (zh) 2004-09-08
US20020023224A1 (en) 2002-02-21

Similar Documents

Publication Publication Date Title
US11681535B2 (en) Linking virtualized application namespaces at runtime
JP6073482B2 (ja) セキュアディスクアクセス制御
US7451451B2 (en) Operating system abstraction and protection layer
US9405521B2 (en) Mapping of virtualized setup-free applications for a computing system
JP2001521654A (ja) ディジタル情報の自己解読システムおよび方法
US6698016B1 (en) Method for injecting code into another process
EP1031910A1 (en) Software program protection mechanism
US9766958B2 (en) Runtime emulating static thread local storage of portable executable software code
US20030005168A1 (en) System and method for auditing system call events with system call wrappers
US20030093401A1 (en) Method and apparatus for using a shared library mechanism to facilitate sharing of metadata
US20080216071A1 (en) Software Protection
US20060282827A1 (en) Operating system loader modification
US10783041B2 (en) Backup and recovery of data files using hard links
CN101297280B (zh) 隔离扩展和设备驱动程序的配置
US20080046709A1 (en) File manipulation during early boot time
JP2004504668A (ja) コンピュータ・ソフトウエアのインストレーション
US20110145596A1 (en) Secure Data Handling In A Computer System
CN107209815B (zh) 用于使用返回导向编程的代码混淆的方法
EP3769247B1 (en) System and method for preventing unwanted bundled software installation
JP2005149164A (ja) 共有ライブラリに格納された外部公開関数の呼び出し方法
US8042176B2 (en) Computer readable medium on which is stored a program for preventing the unauthorized use of program data
JP5863689B2 (ja) 不正使用防止機能付き共有ライブラリ
KR101095815B1 (ko) 소프트웨어 보안 장치 및 그 방법
CN113535278A (zh) 动态库调用方法、装置、电子设备及存储介质
CN112052463A (zh) 一种代码处理方法、终端及存储介质

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060309

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20081007