JP2007535761A - 抗タンパーコードを生成するシステム及び方法 - Google Patents
抗タンパーコードを生成するシステム及び方法 Download PDFInfo
- Publication number
- JP2007535761A JP2007535761A JP2007510781A JP2007510781A JP2007535761A JP 2007535761 A JP2007535761 A JP 2007535761A JP 2007510781 A JP2007510781 A JP 2007510781A JP 2007510781 A JP2007510781 A JP 2007510781A JP 2007535761 A JP2007535761 A JP 2007535761A
- Authority
- JP
- Japan
- Prior art keywords
- object code
- machine
- block
- code block
- tamper
- 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 90
- 238000013519 translation Methods 0.000 claims abstract description 49
- 230000003068 static effect Effects 0.000 claims description 6
- 238000009434 installation Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Storage Device Security (AREA)
- Radar Systems Or Details Thereof (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【選択図】図1
Description
なお、この記述では、「一実施形態」又は「実施形態」という用語は、その言及されている構成が本発明の少なくとも1つの実施形態に含まれているということを意味している。更に、この記述における「一実施形態」という個々の用語は、必ずしも同一の実施形態を意味するのではなく、しかし、いずれも相互に相容れないものでもなく、このことはもしそのように述べられていなくとも当業者には極めて明らかなことである。従って、本発明は、ここに記載された実施形態の各種の組み合わせ及び/又は統合を含むものであってもよい。更に、この記述において、「模範的な実施形態」という語句は、その言及されている実施形態が1つの例又は例示であることを意味している。
このセクションでは、本発明の模範的な実施形態のシステム構成を提供する。図1〜2は、抗タンパーコードを生成するための、選択可能な2つのシステムを示す。図1〜2の各機能部の動作は、後に続くセクションで記述されている。以下では、コードを不明瞭化するための技術を含む、幾つかの抗タンパー技術について議論する。このコード不明瞭化の技術は、単独で、又は、システムコールを限定したり補助結果を確認するような他のコード不明瞭化技術や抗タンパー技術と組み合わせて、使用可能である。
このシステム100の動作を、以下に記す。
このセクションでは、上述したシステムによって行なわれる模範的な動作について説明する。このセクションでは、図3〜7が示される。以下の議論において、図3は、抗タンパーコードをコンパイルし、翻訳し、実行する一般的な動作を記載している。図4及び図5は、オブジェクトコードを抗タンパーオブジェクトコードに動的及び静的に翻訳する方法を記載している。図6はランタイムサポート動作を記載しており、図7はオブジェクトコードを不明瞭化する方法を記載している。
2から始まる。
ブジェクトコードブロックに翻訳し、また、この抗タンパーオブジェクトコードブロックを証明する手段を使用する。例えば、翻訳器110が抗タンパーオブジェクトコードブロックのチェックサムを計算して格納する。或いは、翻訳器110が抗タンパーオブジェクトコードブロックにディジタル署名を行なう。抗タンパーオブジェクトコードブロックを実行する前に、実行部112が、チェックサムを確認するか、又はディジタル署名を証明して、抗タンパーオブジェクトコードブロックが変更されていないことを確かめてもよい。その他には、実行部112が、元のオブジェクトコードに追加された命令によって或る補助結果が生成されたことを確認するようにしてもよい。チェックサム、ディジタル署名、及び補助結果の確認のみを記したが、本発明の実施形態では、抗タンパーオブジェクトコードブロックを証明するための何らかの適当な技術を使用可能である。フローはブロック408へと続く。
を抗タンパーオブジェクトコードプログラムに翻訳する。一実施形態では、これは最初のオブジェクトプログラムを不明瞭化することを含み、これについては後に更に詳しく説明する(図7を参照のこと)。上述したように、一実施形態においては、翻訳器206が抗タンパーオブジェクトコードプログラムのチェックサム又はディジタル署名を決定する。チェックサムが実行ユニット210によって使用されることで、抗タンパーオブジェクトコードプログラムが変更されているかどうかを決定することが可能である。フローはブロック506へ続く。
ト116内に格納されたデータ構造で表され得る。ランタイムサポート部116は上記データ構造を調べて、抗タンパーポリシーがシステムコールをサービスすることを考慮に入れているかどうかを決定する。ランタイムサポート部116がシステムコールをサービスすることを許可されていれば、フローはブロック608へと続く。そうでなければ、フローはブロック606へと続く。
このセクションでは、本発明の実施形態によって遂行される方法を説明する。或る実施形態では、この方法はマシン読み取り可能な媒体に格納された命令(例えばソフトウェア)によって遂行され、一方、他の実施形態では、この方法はハードウェア又は他のロジック(例えばディジタルロジック)によって遂行される。
このセクションでは、本発明の実施形態が実施され得る模範的なハードウェア及び動作環境の概要を提供する。
す図である。図11に示されるように、コンピュータシステム1100は1つ以上のプロセッサ1102を備えている。コンピュータシステム1100はまた、メモリ部1130、プロセッサバス1122、及び入力/出力コントローラ(IOC)1124を含んでいる。プロセッサ1102、メモリ部1130、及びIOC1124はプロセッサバス1122に接続されている。プロセッサ1102は、何らかの適当なプロセッサ構造を備えていてもよい。コンピュータシステム1100は1つ、2つ、3つ、又はそれ以上のプロセッサを備えていてもよく、それらのいずれかが本発明の実施形態に従った一連の命令を実行してもよい。
Claims (72)
- 第1のオブジェクトコードブロックを受け取ることと、
前記第1のオブジェクトコードブロックを第2のオブジェクトコードブロックに翻訳することと、
前記第2のオブジェクトコードブロックを実行することと、を備え、
前記翻訳は、前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックに抗タンパー技術を適用することを含む、
ことを特徴とする方法。 - 前記抗タンパー技術は、マシン属性又はユーザ属性に基づく識別名を決定することと、前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックに追加のコードを挿入することとを含み、前記識別名がない場合は前記第2のオブジェクトコードブロックを実行しない、ことを特徴とする請求項1記載の方法。
- 前記抗タンパー技術は、補助結果を生成するオブジェクトコードを前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックに追加することを含み、前記補助結果がない場合は前記第2のオブジェクトコードブロックを実行しない、ことを特徴とする請求項1記載の方法。
- 前記第1のオブジェクトコードブロックは、第1のマシン上での実行に適したフォーマットのバイトコードを含むことを特徴とする請求項1記載の方法。
- 前記第1のマシンは仮想のマシンであることを特徴とする請求項4記載の方法。
- 前記第2のオブジェクトコードブロックは第2のマシン上での実行に適したフォーマットであることを特徴とする請求項4記載の方法。
- 前記抗タンパー技術は、前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックを不明瞭化することを含むことを特徴とする請求項1記載の方法。
- 前記第2のマシンは仮想のマシンであることを特徴とする請求項1記載の方法。
- 前記翻訳は、前記第2のオブジェクトコードブロックに基づくチェックサム又はディジタル署名を決定することを含み、該チェックサム又はディジタル署名は前記第2のオブジェクトコードの実行前又は実行中に確認されることを特徴とする請求項1記載の方法。
- 1つ以上のマシン属性又はユーザ属性に基づく識別名を決定することと、
ランタイムに、第1のオブジェクトコードブロックを第2のオブジェクトコードブロックに翻訳することと、
前記第2のオブジェクトコードブロックを後から実行するために格納することと、を備え、
前記翻訳は、前記第2のオブジェクトコードブロックを不明瞭化することを含み、該不明瞭化は前記識別名に基づく、
ことを特徴とする方法。 - 前記識別名が異なる場合には前記第2のオブジェクトブロックを後から実行しないことにより、前記抗タンパー技術が適用されることを特徴とする請求項10記載の方法。
- 前記マシン属性はハードウェアのアドレス又はリードオンリメモリのシリアル番号を含むことを特徴とする請求項11記載の方法。
- 前記ユーザ属性は、ユーザ識別名、ユーザパスワード、ユーザアカウント名、及びユーザアカウント番号からなる集合の中から選択されることを特徴とする請求項11記載の方法。
- 前記不明瞭化は、前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックに追加のコードを挿入することを含むことを特徴とする請
求項10記載の方法。 - 前記抗タンパー技術は、補助結果を生成するオブジェクトコードを前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックに追加することを含み、前記補助結果がない場合は前記第2のオブジェクトコードブロックを実行しない、ことを特徴とする請求項10記載の方法。
- 前記マシン属性はクロックに基づくことを特徴とする請求項10記載の方法。
- 前記マシン属性はハードウェアのアドレス又はリードオンリメモリのシリアル番号を含むことを特徴とする請求項10記載の方法。
- 前記ユーザ属性は、ユーザ識別名、ユーザパスワード、ユーザアカウント名、及びユーザアカウント番号からなる集合の中から選択されることを特徴とする請求項10記載の方法。
- 前記第1のマシンは仮想のマシンであることを特徴とする請求項10記載の方法。
- 第1のオペレーティングシステムからのサービスを要求するようにフォーマット化されたシステムコールであって、第2のオブジェクトコードブロックのランタイムの翻訳である第1のオブジェクトコードブロックに含まれるシステムコールを受け取ることと、
前記サービスを提供するのに第2のオペレーティングシステムのどのシステムコールサービスが必要とされるのかを決定することと、
前記システムコールをサービスするためのシステムコールサービスが不能であるかどうかを抗タンパーポリシーに基づき決定することと、
前記システムコールをサービスするためのシステムコールサービスが不能でない場合、前記システムコールをサービスすることと、
を含むことを特徴とする方法。 - 前記抗タンパーポリシーは、システムリソースにアクセスするシステムコールサービスを不能にすることを特徴とする請求項20記載の方法。
- 前記第1のオペレーティングシステムは、Mac OS X、Linux、及びMicrosoft Windows(登録商標)からなる集合の中から選択されることを特徴とする請求項20記載の方法。
- 前記第2のオペレーティングシステムは、Mac OS X、Linux、及びMicrosoft Windows(登録商標) からなる集合の中から選択されることを特徴とする請求項20記載の方法。
- 第1のオブジェクトコードプログラムをインストールすることと、
マシンによる実行のために第2のオブジェクトコードプログラムを格納することと、を備え、
前記インストールは、前記第1のオブジェクトコードプログラムを、前記マシン上で実行可能な前記第2のオブジェクトコードプログラムに静的に翻訳することを含み、
該静的な翻訳は、
前記マシンの状態又はユーザ属性に基づき識別名を決定することと、
前記第1のオブジェクトコードプログラム又は前記第2のオブジェクトコードプログラムを前記識別名に基づき不明瞭化することと、
を含むことを特徴とする方法。 - 前記不明瞭化は、前記第1のオブジェクトコードプログラム又は前記第2のオブジェクトコードプログラムに追加のコードを挿入することを含むことを特徴とする請求項24記載の方法。
- 前記挿入された追加のコードは補助結果を生成することを特徴とする請求項25記載の方法。
- 前記第1のオブジェクトコードプログラムは前記マシン上で実行可能でないことを特徴とする請求項24記載の方法。
- 前記静的な翻訳はネットワークサーバ上で行われ、前記第2のオブジェクトコードプログラムはネットワークのクライアント上に格納されることを特徴とする請求項24記載の方法。
- 前記マシンは、Microsoft Windows(登録商標)、Linux、及び Mac OS X からなる集合の中から選択されたオペレーティングシステムを含むことを特徴とする請求項24記載の方法。
- 前記第1のオブジェクトコードプログラム又は前記第2のオブジェクトコードプログラムはネットワーク接続を介して受け取られることを特徴とする請求項24記載の方法。
- 前記マシンは、Apple Macintosh 及び Windows(登録商標) PC からなる集合の中から選択されることを特徴とする請求項24記載の方法。
- 前記マシンの状態は、クロック、ROMのシリアル番号、及びハードウェアのアドレスからなるグループの中から選択された、マシンに特有の属性に基づいていることを特徴とする請求項24記載の方法。
- ランタイムに第1のオブジェクトコードプログラムのブロックを第2のオブジェクトコードプログラムのブロックに翻訳する翻訳部であって、前記第2のオブジェクトコードプログラムのブロックが前記翻訳の結果として不明瞭化され、前記第2のオブジェクトコードプログラムのブロックがシステムコールを含んでいる翻訳部と、
前記システムコールのいくつかのためのサービスを提供し、前記システムコールのその他のためのサービスを抗タンパーポリシーに基づいて拒否するランタイムサポート部と、
を備えることを特徴とする装置。 - 前記第1のオブジェクトコードプログラムはバイトコードを含むことを特徴とする請求項33記載の装置。
- 前記第2のオブジェクトコードプログラムはApple Macintosh 又は Windows(登録商標) PC 上で実行可能であることを特徴とする請求項33記載の装置。
- 前記第1のオブジェクトコードは仮想のマシン上で実行可能であることを特徴とする請求項33記載の装置。
- 第1のオブジェクトコードプログラムを第2のオブジェクトコードプログラムに翻訳する翻訳部であって、前記第2のオブジェクトコードプログラムが第1のオペレーティングシステムへのシステムコールを含み、前記第2のオブジェクトコードブロックが前記翻訳の結果として不明瞭化されたオブジェクトコードを含んでいる翻訳部と、
前記第2のオブジェクトコードプログラムを実行し、前記システムコールを送信する実行部と、
前記実行部から前記システムコールを受け取り、第2のオペレーティングシステムのシステムコールサービスルーティンを有するシステムコールをサービスするランタイムサポート部と、
を備えることを特徴とする装置。 - 前記不明瞭化されたオブジェクトコードはマシン属性に基づいていることを特徴とする請求項37記載の装置。
- 前記マシン属性は、クロック、リードオンリメモリのシリアル番号、及びハードウェアアドレスからなるグループの中から選択されることを特徴とする請求項38記載の装置。
- 前記不明瞭化されたコードはユーザ属性に基づいており、該ユーザ属性は、ユーザ識別名、ユーザパスワード、ユーザアカウント番号、及びユーザアカウント名からなる集合の中から選択されることを特徴とする請求項37記載の装置。
- 前記第2のオペレーティングシステムは、Apple Macintosh オペレーティングシステム及び Windows(登録商標) オペレーティングシステムからなる集合の中から選択されることを特徴とする請求項37記載の装置。
- プロセッサと、該プロセッサに接続されたメモリ部とを備えるシステムであって、
前記メモリ部は、
ランタイムに第1のオブジェクトコードプログラムのブロックを第2のオブジェクトコードプログラムのブロックに翻訳する翻訳部であって、前記第2のオブジェクトコードプログラムのブロックが前記翻訳の結果として不明瞭化され、前記第2のオブジェクトコードプログラムのブロックがシステムコールを含んでいる翻訳部と、
前記システムコールのいくつかのためのサービスを提供し、前記システムコールのその他のためのサービスを抗タンパーポリシーに基づいて拒否するランタイムサポート部と、
を備えることを特徴とするシステム。 - 前記第1のオブジェクトコードプログラムはバイトコードを含むことを特徴とする請求項42記載のシステム。
- 前記第2のオブジェクトコードプログラムは、Apple Macintosh 及び Windows(登録商標)PC からなる集合の中から選択されたコンピュータ上で実行可能であることを特徴とする請求項42記載のシステム。
- 前記第1のオブジェクトコードは仮想のマシン上で実行可能であることを特徴とする請求項42記載のシステム。
- マシンによって実行される時に該マシンに動作を行わせる命令を提供するマシン読み取り可能な媒体であって、前記動作は、
第1のオブジェクトコードブロックを受け取ることと、
前記第1のオブジェクトコードブロックを第2のオブジェクトコードブロックに翻訳することと、
前記第2のオブジェクトコードブロックを実行することと、を備え、
前記翻訳は、前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックに抗タンパー技術を適用することを含む、
ことを特徴とするマシン読み取り可能な媒体。 - 前記抗タンパー技術は、マシン属性又はユーザ属性に基づく識別名を決定することと、前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックに追加のコードを挿入することとを含み、前記識別名がない場合は前記第2のオブジェクトコードブロックを実行しない、ことを特徴とする請求項46記載の方法。
- 前記抗タンパー技術は、補助結果を生成するオブジェクトコードを前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックに追加することを含み、前記補助結果がない場合は前記第2のオブジェクトコードブロックを実行しない、ことを特徴とする請求項48記載の方法。
- 前記第1のオブジェクトコードブロックは、第1のマシン上での実行に適したフォーマットのバイトコードを含むことを特徴とする請求項46記載のマシン読み取り可能な媒体。
- 前記第1のマシンは仮想のマシンであることを特徴とする請求項46記載のマシン読み取り可能な媒体。
- 前記第2のオブジェクトコードブロックは第2のマシン上での実行に適したフォーマットであることを特徴とする請求項49記載のマシン読み取り可能な媒体。
- 前記抗タンパー技術は、前記オブジェクトコードブロックを不明瞭化することを含むことを特徴とする請求項46記載のマシン読み取り可能な媒体。
- 前記第2のマシンは仮想のマシンであることを特徴とする請求項46記載のマシン読み取り可能な媒体。
- 前記翻訳は、前記第2のオブジェクトコードブロックに基づくチェックサム又はディジタル署名を決定することを含み、該チェックサム又はディジタル署名は前記第2のオブジェクトコードを実行する前に確認されることを特徴とする請求項46記載のマシン読み取り可能な媒体。
- マシンによって実行される時に該マシンに動作を行わせる命令を提供するマシン読み取り可能な媒体であって、前記動作は、
1つ以上のマシン属性又はユーザ属性に基づく識別名を決定することと、
ランタイムに、第1のオブジェクトコードブロックを第2のオブジェクトコードブロックに翻訳することと、
前記第2のオブジェクトコードブロックを後から実行するために格納することと、を備え、
前記翻訳は、前記第2のオブジェクトコードブロックを不明瞭化することを含み、該不明瞭化は前記識別名に基づく、
ことを特徴とするマシン読み取り可能な媒体。 - 前記識別名が異なる場合には前記第2のオブジェクトブロックを後から実行しないことにより、前記抗タンパー技術が適用されることを特徴とする請求項55記載の方法。
- 前記マシン属性はハードウェアアドレス又はリードオンリメモリのシリアル番号を含むことを特徴とする請求項56記載の方法。
- 前記ユーザ属性は、ユーザ識別名、ユーザパスワード、ユーザアカウント名、及びユーザアカウント番号からなる集合の中から選択されることを特徴とする請求項56記載の方法。
- 前記マシン属性はクロックに基づくことを特徴とする請求項55記載のマシン読み取り可能な媒体。
- 前記マシン属性はマシンに特有の情報に基づくことを特徴とする請求項55記載のマシン読み取り可能な媒体。
- 前記マシンに特有の情報はハードウェアアドレス又はリードオンリメモリのシリアル番号を含むことを特徴とする請求項60記載のマシン読み取り可能な媒体。
- 前記第1のマシンは仮想のマシンであることを特徴とする請求項55記載のマシン読み取り可能な媒体。
- 前記ユーザ属性は、ユーザ識別名、パスワード、ユーザアカウント番号、及びユーザアカウント名からなる集合の中から選択されることを特徴とする請求項55記載のマシン読み取り可能な媒体。
- マシンによって実行される時に該マシンに動作を行わせる命令を提供するマシン読み取り可能な媒体であって、前記動作は、
第1のオペレーティングシステムからのサービスを要求するようにフォーマット化されたシステムコールであって、第2のオブジェクトコードブロックのランタイムの翻訳である第1のオブジェクトコードブロックに含まれるシステムコールを受け取ることと、
前記サービスを提供するのに第2のオペレーティングシステムのどのシステムコールサービスが必要とされるのかを決定することと、
前記システムコールをサービスするためのシステムコールサービスが不能であるかどうかを抗タンパーポリシーに基づき決定することと、
前記システムコールをサービスするためのシステムコールサービスが不能でない場合、前記システムコールをサービスすることと、
を含むことを特徴とするマシン読み取り可能な媒体。 - 前記抗タンパーポリシーは、システムリソースにアクセスするシステムコールサービスを不能にすることを特徴とする請求項64記載のマシン読み取り可能な媒体。
- 前記第1のオペレーティングシステムは、Microsoft Window(登録商標)、Linux、及び Mac OS Xからなる集合の中から選択されることを特徴とする請求項64記載のマシン読み取り可能な媒体。
- 前記第2のオペレーティングシステムは、Apple Macintosh オペレーティングシステム、Linux、及び Microsoft Windows(登録商標)からなる集合の中から選択されることを特徴とする請求項64記載のマシン読み取り可能な媒体。
- マシンによって実行される時に該マシンに動作を行わせる命令を提供するマシン読み取り可能な媒体であって、前記動作は、
第1のオブジェクトコードプログラムをインストールすることと、
マシンによる実行のために第2のオブジェクトコードプログラムを格納することと、を備え、
前記インストールは、前記第1のオブジェクトコードプログラムを、前記マシン上で実行可能な前記第2のオブジェクトコードプログラムに静的に翻訳することを含み、
該静的な翻訳は、
前記マシンの状態又はユーザ属性に基づき識別名を決定することと、
前記第1のオブジェクトコードプログラム又は前記第2のオブジェクトコードプログラムを前記識別名に基づき不明瞭化することと、
を含むことを特徴とするマシン読み取り可能な媒体。 - 前記第1のオブジェクトコードプログラムは前記マシン上で実行可能でないことを特徴とする請求項68記載のマシン読み取り可能な媒体。
- 前記静的な翻訳はネットワークサーバ上で行われ、前記第2のオブジェクトコードプログラムはネットワークのクライアント上に格納されることを特徴とする請求項68記載のマシン読み取り可能な媒体。
- 前記第1のオブジェクトコードプログラム又は前記第2のオブジェクトコードプログラムはネットワーク接続を介して受け取られることを特徴とする請求項68記載のマシン読み取り可能な媒体。
- 前記マシンは、Apple Macintosh 及び Windows(登録商標) PC からなる集合の中から選択されることを特徴とする請求項68記載のマシン読み取り可能な媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/837,413 US8694802B2 (en) | 2004-04-30 | 2004-04-30 | System and method for creating tamper-resistant code |
PCT/US2005/012835 WO2005111761A2 (en) | 2004-04-30 | 2005-04-14 | System and method for creating tamper-resistant code |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007535761A true JP2007535761A (ja) | 2007-12-06 |
JP2007535761A5 JP2007535761A5 (ja) | 2009-03-05 |
Family
ID=34965637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007510781A Pending JP2007535761A (ja) | 2004-04-30 | 2005-04-14 | 抗タンパーコードを生成するシステム及び方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8694802B2 (ja) |
EP (1) | EP1751647A2 (ja) |
JP (1) | JP2007535761A (ja) |
AU (1) | AU2005242865A1 (ja) |
CA (1) | CA2562749A1 (ja) |
WO (1) | WO2005111761A2 (ja) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7362775B1 (en) | 1996-07-02 | 2008-04-22 | Wistaria Trading, Inc. | Exchange mechanisms for digital information packages with bandwidth securitization, multichannel digital watermarks, and key management |
US5613004A (en) | 1995-06-07 | 1997-03-18 | The Dice Company | Steganographic method and device |
US6205249B1 (en) | 1998-04-02 | 2001-03-20 | Scott A. Moskowitz | Multiple transform utilization and applications for secure digital watermarking |
US7664263B2 (en) | 1998-03-24 | 2010-02-16 | Moskowitz Scott A | Method for combining transfer functions with predetermined key creation |
US7346472B1 (en) | 2000-09-07 | 2008-03-18 | Blue Spike, Inc. | Method and device for monitoring and analyzing signals |
US7159116B2 (en) | 1999-12-07 | 2007-01-02 | Blue Spike, Inc. | Systems, methods and devices for trusted transactions |
US7457962B2 (en) | 1996-07-02 | 2008-11-25 | Wistaria Trading, Inc | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US5889868A (en) | 1996-07-02 | 1999-03-30 | The Dice Company | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7095874B2 (en) | 1996-07-02 | 2006-08-22 | Wistaria Trading, Inc. | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7177429B2 (en) | 2000-12-07 | 2007-02-13 | Blue Spike, Inc. | System and methods for permitting open access to data objects and for securing data within the data objects |
US7730317B2 (en) | 1996-12-20 | 2010-06-01 | Wistaria Trading, Inc. | Linear predictive coding implementation of digital watermarks |
US7664264B2 (en) | 1999-03-24 | 2010-02-16 | Blue Spike, Inc. | Utilizing data reduction in steganographic and cryptographic systems |
US7475246B1 (en) | 1999-08-04 | 2009-01-06 | Blue Spike, Inc. | Secure personal content server |
US7127615B2 (en) | 2000-09-20 | 2006-10-24 | Blue Spike, Inc. | Security based on subliminal and supraliminal channels for data objects |
US7287275B2 (en) | 2002-04-17 | 2007-10-23 | Moskowitz Scott A | Methods, systems and devices for packet watermarking and efficient provisioning of bandwidth |
US8694802B2 (en) | 2004-04-30 | 2014-04-08 | Apple Inc. | System and method for creating tamper-resistant code |
US7617501B2 (en) | 2004-07-09 | 2009-11-10 | Quest Software, Inc. | Apparatus, system, and method for managing policies on a computer having a foreign operating system |
US20080216071A1 (en) * | 2005-04-07 | 2008-09-04 | Koninklijke Philips Electronics, N.V. | Software Protection |
US7853018B2 (en) * | 2005-11-10 | 2010-12-14 | Atallah Mikhail J | Method and apparatus for hiding a private key |
US7904949B2 (en) | 2005-12-19 | 2011-03-08 | Quest Software, Inc. | Apparatus, systems and methods to provide authentication services to a legacy application |
US7913092B1 (en) * | 2005-12-29 | 2011-03-22 | At&T Intellectual Property Ii, L.P. | System and method for enforcing application security policies using authenticated system calls |
US8087075B2 (en) | 2006-02-13 | 2011-12-27 | Quest Software, Inc. | Disconnected credential validation using pre-fetched service tickets |
US8429712B2 (en) | 2006-06-08 | 2013-04-23 | Quest Software, Inc. | Centralized user authentication system apparatus and method |
FR2903508B1 (fr) * | 2006-07-10 | 2008-10-17 | Sagem Defense Securite | Protection d'un programme interprete par une machine virtuelle |
US8086710B2 (en) | 2006-10-30 | 2011-12-27 | Quest Software, Inc. | Identity migration apparatus and method |
US20080163375A1 (en) * | 2006-12-28 | 2008-07-03 | Savagaonkar Uday R | Embedding and patching integrity information in a program file having relocatable file sections |
US8176473B2 (en) * | 2007-05-14 | 2012-05-08 | Microsoft Corporation | Transformations for software obfuscation and individualization |
US20090106540A1 (en) * | 2007-10-18 | 2009-04-23 | Infineon Technologies Ag | Apparatus and method for remanipulating instructions |
EP2240857A4 (en) * | 2007-12-21 | 2013-12-25 | Univ Virginia Patent Found | SYSTEM, METHOD AND COMPUTER PROGRAM FOR PROTECTING SOFTWARE THROUGH ANTI-FALSIFICATION AND OBSCURING TRANSFORMATIONS |
US8856500B2 (en) * | 2008-02-06 | 2014-10-07 | Nxp B.V. | Obfuscating program by scattering sequential instructions into memory regions such that jumps occur with steps of both signs in equal frequency |
CN101939749A (zh) * | 2008-02-11 | 2011-01-05 | Nxp股份有限公司 | 程序模糊方法和用于执行模糊程序的处理设备 |
US20090247124A1 (en) * | 2008-03-04 | 2009-10-01 | Apple Inc. | Provisioning mobile devices based on a carrier profile |
AU2009222006B2 (en) * | 2008-03-04 | 2013-01-24 | Apple Inc. | System and method of authorizing execution of software code based on at least one installed profile |
US20090228704A1 (en) * | 2008-03-04 | 2009-09-10 | Apple Inc. | Providing developer access in secure operating environments |
CN102016865A (zh) * | 2008-03-04 | 2011-04-13 | 苹果公司 | 基于可用权利来授权执行软件代码的系统和方法 |
AU2009222082A1 (en) * | 2008-03-04 | 2009-09-11 | Apple Inc. | Managing code entitlements for software developers in secure operating environments |
KR101252921B1 (ko) * | 2008-03-04 | 2013-04-09 | 애플 인크. | 사업자에게 부여된 자격들에 기초하여 장치 내의 소프트웨어 코드의 실행을 인가하는 시스템 및 방법 |
WO2009111405A1 (en) * | 2008-03-04 | 2009-09-11 | Apple Inc. | System and method of authorizing execution of software code based on a trusted cache |
US8176337B2 (en) * | 2008-03-12 | 2012-05-08 | Apple Inc. | Computer object code obfuscation using boot installation |
US8255984B1 (en) | 2009-07-01 | 2012-08-28 | Quest Software, Inc. | Single sign-on system for shared resource environments |
EP2876593B1 (en) * | 2013-11-21 | 2018-09-26 | Nxp B.V. | Method of generating a structure and corresponding structure |
US12007908B2 (en) * | 2017-12-14 | 2024-06-11 | Arris Enterprises Llc | Method and apparatus to dynamically encode data at runtime |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08263382A (ja) * | 1995-03-24 | 1996-10-11 | Nec Corp | 機密保護管理システム |
JP2002132364A (ja) * | 2000-10-19 | 2002-05-10 | Yutaka Iizuka | プログラムを内部解析から保護する方法、コンピュータ読み取り可能な記録媒体及びプログラムの配布方法 |
JP2003067191A (ja) * | 2001-06-26 | 2003-03-07 | Aladdin Knowledge Systems Gmbh & Co Kg | インストールプログラムを用いてインストールされるアプリケーションを機能に関して拡張するための方法とコンピュータソフトウェア製品 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0799497B2 (ja) | 1990-12-14 | 1995-10-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | ソフトウェアの使用を管理するための装置及び方法 |
AU7957998A (en) | 1997-06-09 | 1999-01-25 | Intertrust, Incorporated | Obfuscation techniques for enhancing software security |
DE69942011D1 (de) | 1998-10-10 | 2010-03-25 | Ibm | Programmkodekonvertierung mit verringerter Übersetzung |
DE19900980C1 (de) | 1999-01-13 | 2000-05-11 | Siemens Ag | Verfahren und Anordnung zur Verifikation eines Layouts einer integrierten Schaltung mit Hilfe eines Rechners sowie dessen Anwendung zur Herstellung einer integrierten Schaltung |
ATE316218T1 (de) | 1999-07-14 | 2006-02-15 | Luxembourg Patent Co | Sicherheitsventil für druckbehälter |
US6779114B1 (en) * | 1999-08-19 | 2004-08-17 | Cloakware Corporation | Tamper resistant software-control flow encoding |
US7287166B1 (en) * | 1999-09-03 | 2007-10-23 | Purdue Research Foundation | Guards for application in software tamperproofing |
US6650254B1 (en) | 2000-03-13 | 2003-11-18 | Ergodex | Computer input device with individually positionable and programmable switches |
US6829710B1 (en) | 2000-03-14 | 2004-12-07 | Microsoft Corporation | Technique for producing, through watermarking, highly tamper-resistant executable code and resulting “watermarked” code so formed |
AU2001269354A1 (en) | 2000-05-12 | 2001-11-20 | Xtreamlok Pty. Ltd. | Information security method and system |
US7539875B1 (en) | 2000-06-27 | 2009-05-26 | Microsoft Corporation | Secure repository with layers of tamper resistance and system and method for providing same |
US6694435B2 (en) | 2001-07-25 | 2004-02-17 | Apple Computer, Inc. | Method of obfuscating computer instruction streams |
JP2003280754A (ja) | 2002-03-25 | 2003-10-02 | Nec Corp | 隠蔽化ソースプログラム、ソースプログラム変換方法及び装置並びにソース変換プログラム |
US20030217280A1 (en) | 2002-05-17 | 2003-11-20 | Keaton Thomas S. | Software watermarking for anti-tamper protection |
US7383443B2 (en) | 2002-06-27 | 2008-06-03 | Microsoft Corporation | System and method for obfuscating code using instruction replacement scheme |
GB0225649D0 (en) | 2002-11-04 | 2002-12-11 | Transitive Technologies Ltd | Incremental validation |
US8694802B2 (en) | 2004-04-30 | 2014-04-08 | Apple Inc. | System and method for creating tamper-resistant code |
-
2004
- 2004-04-30 US US10/837,413 patent/US8694802B2/en active Active
-
2005
- 2005-04-14 EP EP05735415A patent/EP1751647A2/en not_active Withdrawn
- 2005-04-14 WO PCT/US2005/012835 patent/WO2005111761A2/en active Application Filing
- 2005-04-14 JP JP2007510781A patent/JP2007535761A/ja active Pending
- 2005-04-14 AU AU2005242865A patent/AU2005242865A1/en not_active Abandoned
- 2005-04-14 CA CA002562749A patent/CA2562749A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08263382A (ja) * | 1995-03-24 | 1996-10-11 | Nec Corp | 機密保護管理システム |
JP2002132364A (ja) * | 2000-10-19 | 2002-05-10 | Yutaka Iizuka | プログラムを内部解析から保護する方法、コンピュータ読み取り可能な記録媒体及びプログラムの配布方法 |
JP2003067191A (ja) * | 2001-06-26 | 2003-03-07 | Aladdin Knowledge Systems Gmbh & Co Kg | インストールプログラムを用いてインストールされるアプリケーションを機能に関して拡張するための方法とコンピュータソフトウェア製品 |
Also Published As
Publication number | Publication date |
---|---|
CA2562749A1 (en) | 2005-11-24 |
WO2005111761A3 (en) | 2006-04-13 |
AU2005242865A1 (en) | 2005-11-24 |
WO2005111761A2 (en) | 2005-11-24 |
US20050246554A1 (en) | 2005-11-03 |
US8694802B2 (en) | 2014-04-08 |
EP1751647A2 (en) | 2007-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007535761A (ja) | 抗タンパーコードを生成するシステム及び方法 | |
KR101966754B1 (ko) | 소프트웨어 코드의 생성 및 캐싱 기법 | |
JP6815385B2 (ja) | アプリケーションのコード難読化のためのシステムおよび方法 | |
US7444621B2 (en) | Method and system for providing a common operating system | |
US10528363B2 (en) | Conservative class preloading for real time java execution | |
US6978018B2 (en) | Technique to support co-location and certification of executable content from a pre-boot space into an operating system runtime environment | |
US8661420B2 (en) | System and method for runtime interface versioning | |
US8271995B1 (en) | System services for native code modules | |
JP2005149495A (ja) | 非プラットフォーム固有の一意の識別子の生成 | |
KR20140016380A (ko) | 샌드박스에 참조들을 유지하는 시스템 및 방법 | |
TW200937188A (en) | Contract programming for code error reduction | |
WO2017026738A1 (ko) | 어플리케이션의 코드를 보호하기 위한 시스템 및 방법 | |
KR102002143B1 (ko) | 네이티브 클라이언트로의 이진 변환 | |
JP6935617B2 (ja) | 中間言語ファイルのロード速度改善のための方法およびシステム | |
US5838911A (en) | Method and apparatus for obtaining network information by using a dynamic link library | |
JP2013041598A (ja) | プログラムコードの生成方法、プログラム開発システム、携帯用データキャリア、及びプログラム | |
US7934214B2 (en) | Computer implemented method, system and computer program product for controlling software entitlement | |
WO2004114528A2 (en) | Method and system for operating system anti-tampering | |
JP7015120B2 (ja) | アプリケーションパッケージを提供する方法およびシステム、アプリケーションを実行する方法およびシステム | |
Faupel | Status of Industry Work on Signed Mobile Code | |
US20240119656A1 (en) | Method of Operating Shared GPU Resource and a Shared GPU Device | |
WO2022044021A1 (en) | Exploit prevention based on generation of random chaotic execution context | |
CN115185634A (zh) | 一种子系统实现方法及计算设备 | |
CN115934123A (zh) | 一种客户端逻辑更新方法、装置、电子设备及存储介质 | |
CN113282371A (zh) | 虚拟化网络设备的性能管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20071225 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20071225 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080115 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080414 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080414 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101213 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110627 |