【手続補正書】
【提出日】平成19年8月14日(2007.8.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  オペレーティングシステムに適合しないアプリケーションにパッチを当てるための方法であって、前記アプリケーションは関連するアドレス空間およびダイナミックリンクライブラリを有し、前記ダイナミックリンクライブラリは関数を含み、かつ関数ポインタを含む関連インポートテーブルを有し、
前記方法は、
（ａ）前記アプリケーションを起動するステップと、
（ｂ）前記アプリケーションが前記オペレーティングシステムに適合するか適合しないかを、前記オペレーティングシステムと適合しないアプリケーションを識別する情報の中に前記アプリケーションに関する情報が含まれているかどうかを決定することにより、判定するステップと、
（ｃ）前記アプリケーションが前記オペレーティングシステムに適合しない場合に、前記アプリケーションのアドレス空間にシムダイナミックリンクライブラリを挿入するステップであって、前記シムダイナミックリンクライブラリが、
（ｉ）パッチを当てる必要のある前記適合しないアプリケーションの関数を決定し、
（ｉｉ）パッチを当てる必要のある前記適合しないアプリケーションの関数にパッチを当てるステップと、
（ｄ）前記アプリケーションを実行するステップと
を備えることを特徴とする方法。
【請求項２】  請求項１に記載の方法であって、
（ａ）前記アプリケーションが適合しない場合に、フックをインストールするステップであって、前記フックが、
（ｉ）ダイナミックリンクライブラリをロードする呼出しがなされたときを動的に決定し、
（ｉｉ）ダイナミックリンクライブラリをロードする呼出しがなされたときに前記シムダイナミックリンクライブラリに通知し、
（ｉｉｉ）どの関数が前記オペレーティングシステムに適合しないかを動的に決定するステップと、
（ｂ）前記シムダイナミックリンクライブラリが、パッチを当てる必要のある前記適合しないアプリケーションの関数に動的にパッチを当てるステップと
をさらに備えることを特徴とする方法。
【請求項３】  請求項１に記載の方法であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
（ａ）前記起動されたアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの複数の識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するステップと、
（ｂ）少なくとも１つの前記識別属性が一致する場合には、前記実行中のアプリケーションは適合しないと判定し、そうでない場合には、前記実行中のアプリケーションは適合すると判定するステップと
を備えることを特徴とする方法。
【請求項４】  請求項３に記載の方法であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
不適合アプリケーションの識別属性を記憶するステップと、
前記起動されたアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの前記記憶された識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するために、前記記憶された識別属性の少なくとも１つを取り出すステップと
をさらに備えることを特徴とする方法。
【請求項５】  請求項４に記載の方法であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
前記起動されたアプリケーションの追加の識別属性を、不適合アプリケーションの前記記憶された識別属性と比較するステップと、
前記識別属性が一致する場合には、前記アプリケーションは適合しないと判定するステップと
をさらに備えることを特徴とする方法。
【請求項６】  請求項５に記載の方法であって、前記シムダイナミックリンクライブラリが、前記適合しないアプリケーションのどの関数にパッチを当てる必要があるかを決定するステップが、
（ａ）フックダイナミックリンクライブラリを前記アプリケーションのアドレス空間にロードするステップであって、前記フックダイナミックリンクライブラリが、
（ｉ）適合しない関数のリストを含み、
（ｉｉ）前記適合しない関数のリストにパッチを当てるためのスタブ関数群を含むステップと、
（ｂ）前記シムダイナミックリンクライブラリが、前記フックライブラリから前記適合しない関数のリストにアクセスし、前記適合しないアプリケーションの関数に前記スタブ関数群を適用するステップと
を備えることを特徴とする方法。
【請求項７】  請求項６に記載の方法であって、前記適合しないアプリケーションの適合しない関数にパッチを当てるステップが、
（ａ）前記起動されたアプリケーションのダイナミックリンクライブラリをロードするステップと、
（ｂ）前記ロードされたアプリケーションのダイナミックリンクライブラリ内の適合しない関数を突き止めるステップと、
（ｃ）前記ロードされたアプリケーションのダイナミックリンクライブラリ内の適合しない関数を前記スタブ関数で置換するステップと
をさらに備えることを特徴とする方法。
【請求項８】  オペレーティングシステムに適合しないアプリケーションにパッチを当てるための方法であって、前記アプリケーションは関連するアドレス空間およびダイナミックリンクライブラリを有し、前記ダイナミックリンクライブラリは関数を含み、かつ関数ポインタを含む関連インポートテーブルを有し、
前記方法は、
（ａ）前記アプリケーションを実行するステップと、
（ｂ）前記アプリケーションが前記オペレーティングシステムに適合するか適合しないかを、前記オペレーティングシステムと適合しないアプリケーションを識別する情報の中に前記アプリケーションに関する情報が含まれているかどうかを決定することにより、判定するステップと、
（ｃ）前記アプリケーションが適合しない場合に、フックをインストールするステップであって、前記フックが、
（ｉ）ダイナミックリンクライブラリをロードする呼出しがなされたときを動的に決定し、
（ｉｉ）どの関数が前記オペレーティングシステムに適合しないかを動的に決定し、
（ｉｉｉ）前記適合しない関数にパッチを当てるステップと
を備えることを特徴とする方法。
【請求項９】  請求項８に記載の方法であって、
（ａ）ダイナミックリンクライブラリをロードする呼出しがなされた通知を受け取ることができるシムダイナミックリンクライブラリを、前記アプリケーションのアドレス空間にインストールするステップと、
（ｂ）前記呼出しがインターセプトされたときに、前記フックが前記シムダイナミックリンクライブラリに通知するステップと、
（ｃ）前記シムダイナミックリンクライブラリが、前記適合しない関数にパッチを当てるステップと
をさらに備えることを特徴とする方法。
【請求項１０】  請求項９に記載の方法であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
（ａ）前記実行中のアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの複数の識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するステップと、
（ｂ）少なくとも１つの前記識別属性が一致する場合には、前記実行中のアプリケーションは適合しないと判定し、そうでない場合には、前記実行中のアプリケーションは適合すると判定するステップと
を備えることを特徴とする方法。
【請求項１１】  請求項１０に記載の方法であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
（ａ）不適合アプリケーションの識別属性を記憶するステップと、
（ｂ）前記実行中のアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの前記記憶された識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するために、前記記憶された識別属性の少なくとも１つを取り出すステップと
をさらに備えることを特徴とする方法。
【請求項１２】  請求項１１に記載の方法であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
前記起動されたアプリケーションの追加の識別属性を、不適合アプリケーションの前記記憶された識別属性と比較するステップと、
前記識別属性が一致する場合には、前記アプリケーションは適合しないと判定するステップと
をさらに備えることを特徴とする方法。
【請求項１３】  請求項１２に記載の方法であって、前記シムダイナミックライブラリが、
（ａ）適合しない関数群を含むフックダイナミックリンクライブラリをロードし、
（ｂ）前記適合しない関数群に基づいて前記アプリケーションにパッチを当てることを特徴とする方法。
【請求項１４】  オペレーティングシステムに適合しないアプリケーションにパッチを当てるためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記アプリケーションは関連するアドレス空間およびダイナミックリンクライブラリを有し、前記ダイナミックリンクライブラリは関数を含み、かつ関数ポインタを含む関連インポートテーブルを有し、前記命令は、実行されたときに、
（ａ）前記アプリケーションを起動するステップと、
（ｂ）前記アプリケーションが前記オペレーティングシステムに適合するか適合しないかを、前記オペレーティングシステムと適合しないアプリケーションを識別する情報の中に前記アプリケーションに関する情報が含まれているかどうかを決定することにより、判定するステップと、
（ｃ）前記アプリケーションが前記オペレーティングシステムに適合しない場合に、前記アプリケーションのアドレス空間にシムダイナミックリンクライブラリを挿入するステップであって、前記シムダイナミックリンクライブラリが、
（ｉ）パッチを当てる必要のある前記適合しないアプリケーションの関数を決定し、
（ｉｉ）パッチを当てる必要のある前記適合しないアプリケーションの関数にパッチを当てるステップと、
（ｄ）前記アプリケーションを実行するステップと
を備えることを特徴とするコンピュータ可読媒体。
【請求項１５】  請求項１４に記載のコンピュータ可読媒体であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
（ａ）前記起動されたアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの複数の識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するステップと、
（ｂ）少なくとも１つの前記識別属性が一致する場合には、前記実行中のアプリケーションは適合しないと判定し、そうでない場合には、前記実行中のアプリケーションは適合すると判定するステップと
を備えることを特徴とするコンピュータ可読媒体。
【請求項１６】  請求項１５に記載のコンピュータ可読媒体であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
不適合アプリケーションの識別属性を記憶するステップと、
前記起動されたアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの前記記憶された識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するために、前記記憶された識別属性の少なくとも１つを取り出すステップと
をさらに備えることを特徴とするコンピュータ可読媒体。
【請求項１７】  請求項１６に記載のコンピュータ可読媒体であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
（ａ）前記起動されたアプリケーションの追加の識別属性を、不適合アプリケーションの前記記憶された識別属性と比較するステップと、
（ｂ）前記識別属性が一致する場合には、前記アプリケーションは適合しないと判定するステップと
をさらに備えることを特徴とするコンピュータ可読媒体。
【請求項１８】  請求項１７に記載のコンピュータ可読媒体であって、前記シムダイナミックリンクライブラリが、前記適合しないアプリケーションのどの関数にパッチを当てる必要があるかを決定するステップが、
（ａ）フックダイナミックリンクライブラリを前記アプリケーションのアドレス空間にロードするステップであって、前記フックダイナミックリンクライブラリが、
（ｉ）適合しない関数のリストを含み、
（ｉｉ）前記適合しない関数のリストにパッチを当てるためのスタブ関数群を含むステップと、
（ｂ）前記シムダイナミックリンクライブラリが、前記フックライブラリから前記適合しない関数のリストにアクセスし、前記適合しないアプリケーションの関数に前記スタブ関数群を適用するステップと
を備えることを特徴とするコンピュータ可読媒体。
【請求項１９】  請求項１８に記載のコンピュータ可読媒体であって、前記適合しないアプリケーションの適合しない関数にパッチを当てるステップが、
（ａ）前記起動されたアプリケーションのダイナミックリンクライブラリをロードするステップと、
（ｂ）前記ロードされたアプリケーションのダイナミックリンクライブラリ内の適合しない関数を突き止めるステップと、
（ｃ）前記ロードされたアプリケーションのダイナミックリンクライブラリ内の適合しない関数を前記スタブ関数で置換するステップと
をさらに備えることを特徴とするコンピュータ可読媒体。
【請求項２０】  オペレーティングシステムに適合しないアプリケーションにパッチを当てるためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記アプリケーションは関連するアドレス空間およびダイナミックリンクライブラリを有し、前記ダイナミックリンクライブラリは関数を含み、かつ関数ポインタを含む関連インポートテーブルを有し、前記命令は、実行されたときに、
（ａ）前記アプリケーションを実行するステップと、
（ｂ）前記アプリケーションが前記オペレーティングシステムに適合するか適合しないかを、前記オペレーティングシステムと適合しないアプリケーションを識別する情報の中に前記アプリケーションに関する情報が含まれているかどうかを決定することにより、判定するステップと、
（ｃ）アプリケーションが適合しない場合にフックをインストールすることを含み、フックが、
（ｉ）ダイナミックリンクライブラリをロードする呼出しがなされたときを動的に決定し、
（ｉｉ）どの関数がオペレーティングシステムに適合しないかを動的に決定し、
（ｉｉｉ）適合しない関数にパッチを当てることを特徴とするコンピュータ可読媒体。
【請求項２１】  請求項２０に記載のコンピュータ可読媒体であって、
（ａ）前記アプリケーションのアドレス空間にシムダイナミックリンクライブラリをインストールするステップと、
（ｂ）呼出しがインターセプトされたときに、前記フックが前記シムダイナミックリンクライブラリに通知するステップと
をさらに備えることを特徴とするコンピュータ可読媒体。
【請求項２２】  請求項２１に記載のコンピュータ可読媒体であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
（ａ）前記実行中のアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの複数の識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するステップと、
（ｂ）少なくとも１つの前記識別属性が一致する場合には、前記実行中のアプリケーションは適合しないと判定し、そうでない場合には、前記実行中のアプリケーションは適合すると判定するステップと
をさらに備えることを特徴とするコンピュータ可読媒体。
【請求項２３】  請求項２２に記載のコンピュータ可読媒体であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
（ａ）不適合アプリケーションの識別属性を記憶するステップと、
（ｂ）前記実行中のアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの前記記憶された識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するために、前記記憶された識別属性の少なくとも１つを取り出すステップと
を備えることを特徴とするコンピュータ可読媒体。
【請求項２４】  請求項２３に記載のコンピュータ可読媒体であって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
前記起動されたアプリケーションの追加の識別属性を、不適合アプリケーションの前記記憶された識別属性と比較するステップと、
前記識別属性が一致する場合には、前記アプリケーションは適合しないと判定するステップと
をさらに備えることを特徴とするコンピュータ可読媒体。
【請求項２５】  請求項２４に記載のコンピュータ可読媒体であって、前記シムダイナミックライブラリが、
（ａ）適合しない関数群を含むフックダイナミックリンクライブラリをロードし、
（ｂ）前記適合しない関数群に基づいて前記アプリケーションにパッチを当てることを特徴とするコンピュータ可読媒体。
【請求項２６】  オペレーティングシステムに適合しないアプリケーションにパッチを当てるためのコンピュータシステムであって、前記コンピュータシステムは、関連するアドレス空間およびダイナミックリンクライブラリを有するアプリケーションを実行することができ、ダイナミックリンクライブラリは関数を含み、かつ関数ポインタを含む関連インポートテーブルを有し、前記方法は、
（ａ）前記アプリケーションを起動するステップと、
（ｂ）前記アプリケーションが前記オペレーティングシステムに適合するか適合しないかを、前記オペレーティングシステムと適合しないアプリケーションを識別する情報の中に前記アプリケーションに関する情報が含まれているかどうかを決定することにより、判定するステップと、
（ｃ）前記アプリケーションが前記オペレーティングシステムに適合しない場合に、前記アプリケーションのアドレス空間にシムダイナミックリンクライブラリを挿入するステップであって、前記シムダイナミックリンクライブラリが、
（ｉ）パッチを当てる必要のある前記適合しないアプリケーションの関数を決定し、
（ｉｉ）パッチを当てる必要のある前記適合しないアプリケーションの関数にパッチを当てるステップと、
（ｄ）アプリケーションを実行するステップと
を備えることを特徴とするコンピュータシステム。
【請求項２７】  請求項２６に記載のコンピュータシステムであって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
（ａ）前記起動されたアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの複数の識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するステップと、
（ｂ）少なくとも１つの前記識別属性が一致する場合には、前記実行中のアプリケーションは適合しないと判定し、そうでない場合には、前記実行中のアプリケーションは適合すると判定するステップと
を備えることを特徴とするコンピュータシステム。
【請求項２８】  請求項２７に記載のコンピュータシステムであって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
不適合アプリケーションの識別属性を記憶するステップと、
前記起動されたアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの前記記憶された識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するために、前記記憶された識別属性の少なくとも１つを取り出すステップと
をさらに備えることを特徴とするコンピュータシステム。
【請求項２９】  請求項２８に記載のコンピュータシステムであって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
前記起動されたアプリケーションの追加の識別属性を、不適合アプリケーションの前記記憶された識別属性と比較するステップと、
前記識別属性が一致する場合には、前記アプリケーションは適合しないと判定するステップと
をさらに備えることを特徴とするコンピュータシステム。
【請求項３０】  請求項２９に記載のコンピュータシステムであって、前記シムダイナミックリンクライブラリが、前記適合しないアプリケーションのどの関数にパッチを当てる必要があるかを決定するステップが、
（ａ）フックダイナミックリンクライブラリを前記アプリケーションのアドレス空間にロードするステップであって、前記フックダイナミックリンクライブラリが、
（ｉ）適合しない関数のリストを含み、
（ｉｉ）前記適合しない関数のリストにパッチを当てるためのスタブ関数群を含むステップと、
（ｂ）前記シムダイナミックリンクライブラリが、前記フックライブラリから前記適合しない関数のリストにアクセスし、前記適合しないアプリケーションの関数に前記スタブ関数群を適用するステップと
を備えることを特徴とするコンピュータシステム。
【請求項３１】  請求項３０に記載のコンピュータシステムであって、前記適合しないアプリケーションの適合しない関数にパッチを当てるステップが、
（ａ）前記起動されたアプリケーションのダイナミックリンクライブラリをロードするステップと、
（ｂ）前記ロードされたアプリケーションのダイナミックリンクライブラリ内の適合しない関数を突き止めるステップと、
（ｃ）前記ロードされたアプリケーションのダイナミックリンクライブラリ内の適合しない関数を前記スタブ関数で置換するステップと
をさらに備えることを特徴とするコンピュータシステム。
【請求項３２】  オペレーティングシステムに適合しないアプリケーションにパッチを当てるためのコンピュータシステムであって、前記アプリケーションは関連するアドレス空間およびダイナミックリンクライブラリを有し、前記ダイナミックリンクライブラリは関数を含み、かつ関数ポインタを含む関連インポートテーブルを有し、前記方法は、
（ａ）前記アプリケーションを実行するステップと、
（ｂ）前記アプリケーションが前記オペレーティングシステムに適合するか適合しないかを、前記オペレーティングシステムと適合しないアプリケーションを識別する情報の中に前記アプリケーションに関する情報が含まれているかどうかを決定することにより、判定するステップと、
（ｃ）前記アプリケーションが適合しない場合に、フックをインストールするステップであって、前記フックが、
（ｉ）ダイナミックリンクライブラリをロードする呼出しがなされたときを動的に決定し、
（ｉｉ）どの関数が前記オペレーティングシステムに適合しないかを動的に決定し、
（ｉｉｉ）前記適合しない関数にパッチを当てるステップと
を備えることを特徴とするコンピュータシステム。
【請求項３３】  請求項３２に記載のコンピュータシステムであって、
（ａ）前記アプリケーションのアドレス空間にシムダイナミックリンクライブラリをインストールするステップと、
（ｂ）呼出しがインターセプトされたときに、前記フックが前記シムダイナミックリンクライブラリに通知するステップと
をさらに備えることを特徴とするコンピュータシステム。
【請求項３４】  請求項３３に記載のコンピュータシステムであって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
（ａ）前記実行中のアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの複数の識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するステップと、
（ｂ）少なくとも１つの前記識別属性が一致する場合には、前記実行中のアプリケーションは適合しないと判定し、そうでない場合には、前記実行中のアプリケーションは適合すると判定するステップと
を備えることを特徴とするコンピュータシステム。
【請求項３５】  請求項３４に記載のコンピュータシステムであって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
（ａ）不適合アプリケーションの識別属性を記憶するステップと、
（ｂ）前記実行中のアプリケーションの複数の識別属性のうち少なくとも１つの識別属性が、不適合アプリケーションの前記記憶された識別属性のうち少なくとも１つの識別属性と一致するかどうかを判定するために、前記記憶された識別属性の少なくとも１つを取り出すステップと
をさらに備えることを特徴とするコンピュータシステム。
【請求項３６】  請求項３５に記載のコンピュータシステムであって、前記アプリケーションに関する情報が前記オペレーティングシステムに適合しないアプリケーションを識別する情報の中に含まれているかどうかを判定するステップが、
前記起動されたアプリケーションの追加の識別属性を、不適合アプリケーションの前記記憶された識別属性と比較するステップと、
前記識別属性が一致する場合には、前記アプリケーションは適合しないと判定するステップと
をさらに備えることを特徴とするコンピュータシステム。
【請求項３７】  請求項３６に記載のコンピュータシステムであって、前記シムダイナミックライブラリが、
（ａ）適合しない関数群を含むフックダイナミックリンクライブラリをロードし、
（ｂ）前記適合しない関数群に基づいて前記アプリケーションにパッチを当てることを特徴とするコンピュータシステム。