【手続補正書】
【提出日】平成20年12月16日(2008.12.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のマシンタイプでの実行に好適のフォーマットでオブジェクトコードブロックを受け取ることと、
第２のマシンタイプでの実行可能なフォーマットで前記第１のオブジェクトコードブロックを第２のオブジェクトコードブロックに翻訳することと、を備え、
前記翻訳は、前記第１のオブジェクトコードブロック又は前記第２のオブジェクトコードブロックに抗タンパー技術を適用することを含む、
ことを特徴とする方法。
【請求項２】
前記抗タンパー技術は、マシン属性又はユーザ属性に基づく識別名を決定することと、前記第１のオブジェクトコードブロック又は前記第２のオブジェクトコードブロックに追加のコードを挿入することとを含み、前記識別名がない場合は前記第２のオブジェクトコードブロックを実行しない、ことを特徴とする請求項１記載の方法。
【請求項３】
前記抗タンパー技術は、補助結果を生成するオブジェクトコードを前記第１のオブジェクトコードブロック又は前記第２のオブジェクトコードブロックに追加することを含み、前記補助結果がない場合は前記第２のオブジェクトコードブロックを実行しない、ことを特徴とする請求項１記載の方法。
【請求項４】
前記第１のオブジェクトコードブロックは、前記第１のマシンタイプ上での実行に適したフォーマットのバイトコードを含むことを特徴とする請求項１記載の方法。
【請求項５】
前記第１のマシンタイプは仮想のマシンであることを特徴とする請求項４記載の方法。
【請求項６】
前記抗タンパー技術は、前記第１のオブジェクトコードブロック又は前記第２のオブジェクトコードブロックを不明瞭化することを含むことを特徴とする請求項１記載の方法。
【請求項７】
前記第２のマシンタイプは仮想のマシンであることを特徴とする請求項１記載の方法。
【請求項８】
前記翻訳は、前記第２のオブジェクトコードブロックに基づくチェックサム又はディジタル署名を決定することを含み、該チェックサム又はディジタル署名は前記第２のオブジェクトコードの実行前又は実行中に確認されることを特徴とする請求項１記載の方法。
【請求項９】
１つ以上のマシン属性又はユーザ属性に基づく識別名を決定することと、
ランタイムに、第１のマシンタイプで実行可能な第１のオブジェクトコードブロックを第２のマシンタイプで実行可能な第２のオブジェクトコードブロックに翻訳することと、
前記第２のオブジェクトコードブロックを後から実行するために格納することと、を備え、
前記翻訳は、前記第２のオブジェクトコードブロックを不明瞭化することを含み、該不明瞭化は前記識別名に基づく、
ことを特徴とする方法。
【請求項１０】
前記識別名が異なる場合には前記第２のオブジェクトブロックを後から実行しないことにより、前記抗タンパー技術が適用されることを特徴とする請求項９記載の方法。
【請求項１１】
前記マシン属性はハードウェアのアドレスおよびリードオンリメモリのシリアル番号のうちの少なくとも１つを含むことを特徴とする請求項１０記載の方法。
【請求項１２】
前記ユーザ属性は、ユーザ識別名、ユーザパスワード、ユーザアカウント名、及びユーザアカウント番号からなる集合の中から選択されることを特徴とする請求項１０記載の方法。
【請求項１３】
前記不明瞭化は、前記第１のオブジェクトコードブロック又は前記第２のオブジェクトコードブロックに追加のコードを挿入することを含むことを特徴とする請求項９記載の方法。
【請求項１４】
前記抗タンパー技術は、補助結果を生成するオブジェクトコードを前記第１のオブジェクトコードブロックおよび前記第２のオブジェクトコードブロックのうちの少なくとも１つに追加することを含み、前記補助結果がない場合は前記第２のオブジェクトコードブロックを実行しない、ことを特徴とする請求項９記載の方法。
【請求項１５】
前記マシン属性はクロックに基づくことを特徴とする請求項９記載の方法。
【請求項１６】
前記マシン属性はハードウェアのアドレス又はリードオンリメモリのシリアル番号を含むことを特徴とする請求項９記載の方法。
【請求項１７】
前記ユーザ属性は、ユーザ識別名、ユーザパスワード、ユーザアカウント名、及びユーザアカウント番号からなる集合の中から選択されることを特徴とする請求項９記載の方法。
【請求項１８】
前記第１のマシンは仮想のマシンであり、かつ前記第１のオブジェクトコードブロックが前記仮想のマシン上での実行に好適であるバイトコードを含むことを特徴とする請求項９記載の方法。
【請求項１９】
第１のオブジェクトコードプログラムをインストールすることと、
マシンによる実行のために第２のオブジェクトコードプログラムを格納することと、を備え、
前記インストールは、前記第１のオブジェクトコードプログラムを、前記マシン上で実行可能な前記第２のオブジェクトコードプログラムに静的に翻訳することを含み、
該静的な翻訳は、
前記マシンの状態又はユーザ属性に基づき識別名を決定することと、
前記第１のオブジェクトコードプログラム又は前記第２のオブジェクトコードプログラムを前記識別名に基づき不明瞭化することと、
を含むことを特徴とする方法。
【請求項２０】
前記不明瞭化は、前記第１のオブジェクトコードプログラム又は前記第２のオブジェクトコードプログラムに追加のコードを挿入することを含むことを特徴とする請求項１９記載の方法。
【請求項２１】
前記挿入された追加のコードは補助結果を生成することを特徴とする請求項２０記載の方法。
【請求項２２】
前記静的な翻訳はネットワークサーバ上で行われ、前記第２のオブジェクトコードプログラムはネットワークのクライアント上に格納されることを特徴とする請求項１９記載の方法。
【請求項２３】
前記マシンは、Microsoft Windows（登録商標）、Linux、及び Mac OS X からなる集合の中から選択されたオペレーティングシステムを含むことを特徴とする請求項１９記載の方法。
【請求項２４】
前記第１のオブジェクトコードプログラム又は前記第２のオブジェクトコードプログラムはネットワーク接続を介して受け取られることを特徴とする請求項１９記載の方法。
【請求項２５】
前記第１のマシンおよび第２のマシンのうちの少なくとも１つは、Apple Macintosh 及び Windows（登録商標） PC からなる集合の中から選択されることを特徴とする請求項１９記載の方法。
【請求項２６】
前記マシンの状態は、クロック、ＲＯＭのシリアル番号、及びハードウェアのアドレスからなるグループの中から選択された、マシンに特有の属性に基づいていることを特徴とする請求項１９記載の方法。
【請求項２７】
ランタイムに第１のオブジェクトコードプログラムのブロックを第２のオブジェクトコードプログラムのブロックに翻訳する翻訳部であって、前記第２のオブジェクトコードプログラムのブロックが前記翻訳の結果として不明瞭化され、前記第２のオブジェクトコードプログラムのブロックがシステムコールを含んでいる翻訳部と、
前記システムコールのいくつかのためのサービスを提供し、前記システムコールのその他のためのサービスを抗タンパーポリシーに基づいて拒否するランタイムサポート部と、  を備えることを特徴とする装置。
【請求項２８】
前記第１のオブジェクトコードプログラムはバイトコードを含むことを特徴とする請求項２７記載の装置。
【請求項２９】
前記第２のオブジェクトコードプログラムはApple Macintosh 又は Windows（登録商標） PC 上で実行可能であることを特徴とする請求項２７記載の装置。
【請求項３０】
前記第１のオブジェクトコードは仮想のマシン上で実行可能であることを特徴とする請求項２７記載の装置。
【請求項３１】
第１のオブジェクトコードプログラムを第２のオブジェクトコードプログラムに翻訳する翻訳部であって、前記第２のオブジェクトコードプログラムが第１のオペレーティングシステムへのシステムコールを含み、前記第２のオブジェクトコードブロックが前記翻訳の結果として不明瞭化されたオブジェクトコードを含んでいる翻訳部と、
前記第２のオブジェクトコードプログラムを実行し、前記システムコールを送信する実行部と、
前記実行部から前記システムコールを受け取り、第２のオペレーティングシステムのシステムコールサービスルーティンを有するシステムコールをサービスするランタイムサポート部と、
を備えることを特徴とする装置。
【請求項３２】
前記不明瞭化されたオブジェクトコードはマシン属性に基づいていることを特徴とする請求項３１記載の装置。
【請求項３３】
前記マシン属性は、クロック、リードオンリメモリのシリアル番号、及びハードウェアアドレスからなるグループの中から選択されることを特徴とする請求項３２記載の装置。
【請求項３４】
前記不明瞭化されたコードはユーザ属性に基づいており、該ユーザ属性は、ユーザ識別名、ユーザパスワード、ユーザアカウント番号、及びユーザアカウント名からなる集合の中から選択されることを特徴とする請求項３１記載の装置。
【請求項３５】
前記第２のオペレーティングシステムは、Apple Macintosh オペレーティングシステム及び Windows（登録商標） オペレーティングシステムからなる集合の中から選択されることを特徴とする請求項３１記載の装置。
【請求項３６】
プロセッサと、該プロセッサに接続されたメモリ部とを備えるシステムであって、
前記メモリ部は、ランタイムに第１のオブジェクトコードプログラムのブロックを第２のオブジェクトコードプログラムのブロックに翻訳する翻訳部を備え、
前記第２のオブジェクトコードプログラムのブロックが前記翻訳の結果として不明瞭化され、
前記第２のオブジェクトコードプログラムのブロックがシステムコールを含んでいることを特徴とするシステム。
【請求項３７】
前記第１のオブジェクトコードプログラムはバイトコードを含むことを特徴とする請求項３６記載のシステム。
【請求項３８】
前記第２のオブジェクトコードプログラムは、Apple Macintosh 及び Windows（登録商標）PC からなる集合の中から選択されたコンピュータ上で実行可能であることを特徴とする請求項３６記載のシステム。
【請求項３９】
前記第１のオブジェクトコードは仮想のマシン上で実行可能であることを特徴とする請求項３６記載のシステム。
【請求項４０】
マシンによって実行される時に該マシンに動作を行わせる命令を提供するマシン読み取り可能な媒体であって、前記動作は、
第１のマシンタイプでの実行に好適の第１のオブジェクトコードブロックを受け取ることと、
第２のマシンタイプでの実行に好適の前記第１のオブジェクトコードブロックを第２のオブジェクトコードブロックに翻訳することと、を備え、
前記翻訳は、前記第１のオブジェクトコードブロック又は前記第２のオブジェクトコードブロックに抗タンパー技術を適用することを含む、
ことを特徴とするマシン読み取り可能な媒体。
【請求項４１】
前記抗タンパー技術は、マシン属性又はユーザ属性に基づく識別名を決定することと、前記第１のオブジェクトコードブロック又は前記第２のオブジェクトコードブロックに追加のコードを挿入することとを含み、前記識別名がない場合は前記第２のオブジェクトコードブロックを実行しない、ことを特徴とする請求項４０記載の方法。
【請求項４２】
前記抗タンパー技術は、補助結果を生成するオブジェクトコードを前記第１のオブジェクトコードブロック又は前記第２のオブジェクトコードブロックに追加することを含み、前記補助結果がない場合は前記第２のオブジェクトコードブロックを実行しない、ことを特徴とする請求項４０記載の方法。
【請求項４３】
前記第１のオブジェクトコードブロックは、第１のマシン上での実行に適したフォーマットのバイトコードを含むことを特徴とする請求項４０記載のマシン読み取り可能な媒体。
【請求項４４】
前記第１のマシンは仮想のマシンであることを特徴とする請求項４０記載のマシン読み取り可能な媒体。
【請求項４５】
前記抗タンパー技術は、前記オブジェクトコードブロックを不明瞭化することを含むことを特徴とする請求項４０記載のマシン読み取り可能な媒体。
【請求項４６】
前記第２のマシンは仮想のマシンであることを特徴とする請求項４０記載のマシン読み取り可能な媒体。
【請求項４７】
前記翻訳は、前記第２のオブジェクトコードブロックに基づくチェックサム又はディジタル署名を決定することを含み、該チェックサム又はディジタル署名は前記第２のオブジェクトコードを実行する前に確認されることを特徴とする請求項４０記載のマシン読み取り可能な媒体。
【請求項４８】
マシンによって実行される時に該マシンに動作を行わせる命令を提供するマシン読み取り可能な媒体であって、前記動作は、
１つ以上のマシン属性又はユーザ属性に基づく識別名を決定することと、
ランタイムに、第１のオブジェクトコードブロックを第２のオブジェクトコードブロックに翻訳することと、
前記第２のオブジェクトコードブロックを後から実行するために格納することと、を備え、
前記翻訳は、前記第２のオブジェクトコードブロックを不明瞭化することを含み、該不明瞭化は前記識別名に基づく、
ことを特徴とするマシン読み取り可能な媒体。
【請求項４９】
前記識別名が異なる場合には前記第２のオブジェクトブロックを後から実行しないことにより、前記抗タンパー技術が適用されることを特徴とする請求項４８記載の方法。
【請求項５０】
前記マシン属性はハードウェアアドレス又はリードオンリメモリのシリアル番号を含むことを特徴とする請求項４９記載の方法。
【請求項５１】
前記ユーザ属性は、ユーザ識別名、ユーザパスワード、ユーザアカウント名、及びユーザアカウント番号からなる集合の中から選択されることを特徴とする請求項４９記載の方法。
【請求項５２】
前記マシン属性はクロックに基づくことを特徴とする請求項４８記載のマシン読み取り可能な媒体。
【請求項５３】
前記マシン属性はマシンに特有の情報に基づくことを特徴とする請求項４８記載のマシン読み取り可能な媒体。
【請求項５４】
前記マシンに特有の情報はハードウェアアドレス又はリードオンリメモリのシリアル番号を含むことを特徴とする請求項５３記載のマシン読み取り可能な媒体。
【請求項５５】
前記第１のマシンは仮想のマシンであることを特徴とする請求項４８記載のマシン読み取り可能な媒体。
【請求項５６】
前記ユーザ属性は、ユーザ識別名、パスワード、ユーザアカウント番号、及びユーザアカウント名からなる集合の中から選択されることを特徴とする請求項４８記載のマシン読み取り可能な媒体。
【請求項５７】
マシンによって実行される時に該マシンに動作を行わせる命令を提供するマシン読み取り可能な媒体であって、前記動作は、
第１のオブジェクトコードプログラムをインストールすることと、
マシンによる実行のために第２のオブジェクトコードプログラムを格納することと、を備え、
前記インストールは、前記第１のオブジェクトコードプログラムを、前記マシン上で実行可能な前記第２のオブジェクトコードプログラムに静的に翻訳することを含み、
該静的な翻訳は、
前記マシンの状態又はユーザ属性に基づき識別名を決定することと、
前記第１のオブジェクトコードプログラム又は前記第２のオブジェクトコードプログラムを前記識別名に基づき不明瞭化することと、
を含むことを特徴とするマシン読み取り可能な媒体。
【請求項５８】
前記第１のオブジェクトコードプログラムは前記マシン上で実行可能でないことを特徴とする請求項５７記載のマシン読み取り可能な媒体。
【請求項５９】
前記静的な翻訳はネットワークサーバ上で行われ、前記第２のオブジェクトコードプログラムはネットワークのクライアント上に格納されることを特徴とする請求項５７記載のマシン読み取り可能な媒体。
【請求項６０】
前記第１のオブジェクトコードプログラム又は前記第２のオブジェクトコードプログラムはネットワーク接続を介して受け取られることを特徴とする請求項５７記載のマシン読み取り可能な媒体。
【請求項６１】
前記マシンは、Apple Macintosh 及び Windows（登録商標） PC からなる集合の中から選択されることを特徴とする請求項５７記載のマシン読み取り可能な媒体。