(57)【要約】コンピュータにより読取可能なコードにおいて悪性コードを検知する方法が、コンピュータにより読取可能なコードの第一部分が潜在的に悪性コードを有しているか否かを決定するための初期的決定を実施し、且つ該コンピュータにより読取可能なコードが潜在的に悪性コードを有しているものと決定される場合には、該コンピュータにより読取可能なコードの第一部分を包含することのない第二部分が悪性コードを有しているか否かを決定するための別の決定を実施することを包含している。
2005522800.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより読取可能なコードにおいて悪性コードを検知する方法において、
前記コンピュータにより読取可能なコードの第一部分が潜在的に悪性コードを有しているか否かを決定するための初期的決定を実施し、
前記コンピュータにより読取可能なコードが潜在的に悪性コードを有しているものと決定される場合には、前記コンピュータによって読取可能なコードの前記第一部分を包含することのない第二部分が悪性コードを有しているか否かを決定するための別の決定を実施する、
ことを包含している方法。
【請求項２】
請求項１において、前記別の決定が前記初期的決定よりも一層包括的である方法。
【請求項３】
請求項１において、前記初期的決定が前記コンピュータにより読取可能なコードの前記第一部分の第一ＣＲＣを決定する方法。
【請求項４】
請求項３において、前記別の決定が、前記コンピュータにより読取可能なコードの前記第二部分の第二ＣＲＣを決定するために実施される方法。
【請求項５】
請求項４において、前記第一ＣＲＣが悪性コードが存在するか否かを決定するためにＣＲＣのデータベースと比較される方法。
【請求項６】
請求項５において、前記第二ＣＲＣが前記データベース内のＣＲＣと比較される方法。
【請求項７】
請求項６において、前記ＣＲＣのデータベースがＣＲＣの組を有している方法。
【請求項８】
請求項７において、前記ＣＲＣの組が悪性コードを包含するために修正された前記コンピュータにより読取可能なコードの前記第一部分のＣＲＣを決定することにより得られる第一ウイルスＣＲＣ、及び前記悪性コードを包含するために修正された前記コンピュータにより読取可能なコードの前記第二部分のＣＲＣを決定することにより得られる対応する第二ウイルスＣＲＣを有している方法。
【請求項９】
コンピュータによって読取可能なコードにおいて悪性コードを検知する方法において、
前記コンピュータにより読取可能なコードの第一部分のＣＲＣを決定し、
前記コンピュータにより読取可能なコードの前記第一部分のＣＲＣがＣＲＣのデータベース内に存在するか否かを決定するために初期的決定を実施し、各ＣＲＣは、前記決定したＣＲＣが前記ＣＲＣのデータベース内に存在する場合にどのように進行するかの対応する命令を包含しており、
前記コンピュータにより読取可能なコードの前記第一部分のＣＲＣが前記ＣＲＣのデータベース内に存在することが決定される場合には、前記対応する命令を実施する、
ことを包含している方法。
【請求項１０】
請求項９において、前記対応する命令が、全体的なコンピュータにより読取可能なコードのＣＲＣを決定し且つ前記ＣＲＣのデータベースと比較することを指示すること、前記コンピュータにより読取可能なコードの一定部分のＣＲＣを決定し且つ前記ＣＲＣのデータベースと比較することを指示すること、前記コンピュータにより読取可能なコードに関してＣＲＣチェック以外の悪性コード検知形態を実施することを指示することのうちの少なくとも１つを有している方法。
【請求項１１】
コンピュータにより読取可能なコードにおいて悪性コードを検知するための実行可能なコードを包含する記録媒体において、
前記コンピュータにより読取可能なコードの第一部分が潜在的に悪性コードを有しているか否かを決定するための初期的決定を実施するためのコード、
前記コンピュータにより読取可能なコードが潜在的に悪性コードを有していることが決定される場合に、前記コンピュータにより読取可能なコードの前記第一部分を包含することのない第二部分が悪性コードを有しているか否かを決定するための別の決定を実施するためのコード、
を有している記録媒体。
【請求項１２】
請求項１１において、前記別の決定が前記初期的決定よりも一層包括的である記録媒体。
【請求項１３】
請求項１１において、前記初期的決定が前記コンピュータにより読取可能なコードの前記第一部分の第一ＣＲＣを決定する記録媒体。
【請求項１４】
請求項１３において、前記別の決定が、前記コンピュータにより読取可能なコードの前記第二部分の第二ＣＲＣを決定するために実施される記録媒体。
【請求項１５】
請求項１４において、悪性コードが存在するか否かを決定するために前記第一ＣＲＣがＣＲＣのデータベースと比較される記録媒体。
【請求項１６】
請求項１５において、前記第二ＣＲＣが前記データベースにおける１個のＣＲＣと比較される記録媒体。
【請求項１７】
請求項１６において、前記ＣＲＣのデータベースがＣＲＣの組を有している記録媒体。
【請求項１８】
請求項１７において、前記ＣＲＣの組が、悪性コードを包含するために修正された前記コンピュータにより読取可能なコードの前記第一部分のＣＲＣを決定することにより得られる第一ウイルスＣＲＣ、及び前記悪性コードを包含するために修正された前記コンピュータにより読取可能なコードの前記第二部分のＣＲＣを決定することにより得られる対応する第二ウイルスＣＲＣを有している記録媒体。
【請求項１９】
コンピュータにより読取可能なコードにおいて悪性コードを検知するための実行可能なコードを包含する記録媒体において、
前記コンピュータにより読取可能なコードの第一部分のＣＲＣを決定するためのコード、
各ＣＲＣが、決定されたＣＲＣが前記ＣＲＣのデータベース内に存在する場合にどのようにして進行するかについての対応する命令を包含しており、前記コンピュータにより読取可能なコードの前記第一部分のＣＲＣがＣＲＣのデータベース内に存在するか否かを決定するために初期的決定を実施するためのコード、
前記コンピュータにより読取可能なコードの前記第一部分のＣＲＣが前記ＣＲＣのデータベース内に存在することが決定される場合に、前記対応する命令を実施するためのコード、
を有している記録媒体。
【請求項２０】
請求項１９において、前記対応する命令が、全体的なコンピュータにより読取可能なコードのＣＲＣを決定し且つ前記ＣＲＣのデータベースと比較することを指示すること、前記コンピュータにより読取可能なコードの一定部分のＣＲＣを決定し且つ前記ＣＲＣのデータベースと比較することを指示すること、前記コンピュータにより読取可能なコードに関してＣＲＣチェック以外の悪性コード検知の形態を実施することを指示することのうちの少なくとも１つを有している記録媒体。
【請求項２１】
コンピュータにより読取可能なコードにおいて悪性コードを検知するためのコードを包含するプログラムされたコンピュータ装置において、
前記コンピュータにより読取可能なコードの第一部分が潜在的に悪性コードを有しているか否かを決定するための初期的決定を実施し、
前記コンピュータにより読取可能なコードが潜在的に悪性コードを有していることが決定される場合に、前記コンピュータにより読取可能なコードの前記第一部分を包含することのない第二部分が悪性コードを有しているか否かを決定するための別の決定を実施する、
ことを包含している方法を実施することが可能であるプログラムされたコンピュータ装置。
【請求項２２】
請求項２１において、前記別の決定が前記初期的決定よりも一層包括的であるプログラムされたコンピュータ装置。
【請求項２３】
請求項２１において、前記初期的決定が前記コンピュータにより読取可能なコードの前記第一部分の第一ＣＲＣを決定するプログラムされたコンピュータ装置。
【請求項２４】
請求項２３において、前記別の決定が、前記コンピュータにより読取可能なコードの前記第二部分の第二ＣＲＣを決定するために実施されるプログラムされたコンピュータ装置。
【請求項２５】
請求項２４において、前記第一ＣＲＣをＣＲＣのデータベースと比較して悪性コードが存在するか否かを決定するプログラムされたコンピュータ装置。
【請求項２６】
請求項２５において、前記第二ＣＲＣを前記データベース内の１個のＣＲＣと比較するプログラムされたコンピュータ装置。
【請求項２７】
請求項２６において、前記ＣＲＣのデータベースがＣＲＣの組を有しているプログラムされたコンピュータ装置。
【請求項２８】
請求項２７において、前記ＣＲＣの組が、悪性コードを包含するために修正された前記コンピュータにより読取可能なコードの前記第一部分のＣＲＣを決定することにより得られる第一ウイルスＣＲＣ、及び前記悪性コードを包含するために修正された前記コンピュータにより読取可能なコードの前記第二部分のＣＲＣを決定することにより得られる対応する第二ウイルスＣＲＣを有しているプログラムされたコンピュータ装置。
【請求項２９】
コンピュータにより読取可能なコードにおいて悪性コードを検知するためのコードを包含しているプログラムされたコンピュータ装置において、
前記コンピュータにより読取可能なコードの第一部分のＣＲＣを決定し、
各ＣＲＣが、決定されたＣＲＣや前記ＣＲＣのデータベース内に存在する場合にどのようにして進行するかについての対応する命令を包含しており、前記コンピュータにより読取可能なコードの前記第一部分のＣＲＣがＣＲＣのデータベース内に存在するか否かを決定するための初期的決定を実施し、
前記コンピュータにより読取可能なコードの前記第一部分のＣＲＣが前記ＣＲＣのデータベース内に存在することが決定される場合に、前記対応する命令を実施する、
ことを包含する方法を実施することが可能なプログラムされたコンピュータ装置。
【請求項３０】
請求項２９において、前記対応する命令が、全体的なコンピュータにより読取可能なコードのＣＲＣを決定し且つ前記ＣＲＣのデータベースと比較することを指示すること、前記コンピュータにより読取可能なコードの一定部分のＣＲＣを決定し且つ前記ＣＲＣのデータベースと比較することを指示すること、前記コンピュータにより読取可能なコードに関してＣＲＣチェック以外の悪性コード検知形態を実施することを指示すること、のうちの少なくとも１つを有しているプログラムされたコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は悪性コードを検知するシステム及び方法に関するものである。
【背景技術】
【０００２】
毎年、益々多くのコンピュータウイルス及びコンピュータウイルスの変形例に遭遇する。コンピュータシステムをこのようなウイルスがない状態に維持するための所要の努力は著しく増加している。コンピュータシステムをウイルスがない状態に維持するための試みの１つの態様は、ウイルスに対してチェックを行うために周期的にシステムをスキャンすることである。最適な安全性のために、そのようなスキャンは、通常、少なくとも一日に一度実施される。然しながら、コンピュータウイルスの数が増加すると、コンピュータシステムを適切にスキャンするために必要なその結果発生する時間的な増加は厄介なものとなる場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従って、コンピュータウイルスに対してシステムをチェックするのに必要な時間の量を減少させるシステム及び方法に対する必要性が存在している。
【課題を解決するための手段】
【０００４】
コンピュータにより読取可能なコードにおいて悪性コードを検知するための方法、コンピュータ記録媒体及び装置を開示する。本方法は、コンピュータにより読取可能なコードの第一部分が潜在的に悪性コードを有しているか否かを決定するために第一決定を実施し、且つ該コンピュータにより読取可能なコードが潜在的に悪性コードを有しているものと決定される場合には、該コンピュータにより読取可能なコードの第一部分を包含することのない第二部分が悪性コードを有しているか否かを決定するための別の決定を実施することを包含している。
【０００５】
コンピュータにより読取可能なコードにおいて悪性コードを検知するための方法、コンピュータ記録媒体及び装置も開示し、本方法は、コンピュータにより読取可能なコードの第一部分のＣＲＣを決定し、該コンピュータにより読取可能なコードの第一部分のＣＲＣがＣＲＣのデータベース内に存在するか否かを決定するための初期的決定を実施し、各ＣＲＣは、該決定されたＣＲＣが該ＣＲＣのデータベース内に存在する場合にどのようにして進行するかについての対応する命令を包含しており、且つ該コンピュータにより読取可能なコードの第一部分のＣＲＣが該ＣＲＣのデータベース内に存在することが決定される場合には、該対応する命令を実施する、ことを包含している。
【発明を実施するための最良の形態】
【０００６】
図面に例示した本発明の好適実施例を説明するに当たり、説明の便宜上特定の用語を使用する。然しながら、本発明はそのように選択された特定の用語に制限されることを意図したものではなく、各特定の要素は同様の態様で動作する全ての技術的均等物を包含することを理解すべきである。
【０００７】
図１は本発明の方法及びシステムを実現することが可能なコンピュータシステムの１例を示している。本発明のシステム及び方法は、例えば、メインフレーム、パソコン（ＰＣ）、ハンドヘルドコンピュータ、サーバー等のコンピュータシステム上でラン即ち稼動するソフトウエアアプリケーションの形態で実現することが可能である。該ソフトウエアアプリケーションは、例えば、フロッピィディスク、コンパクトディスク、ハードディスク等のコンピュータシステムにより局所的にアクセス可能な記録媒体上に格納することが可能であり、又は、コンピュータシステムから離れており且つ、例えば、ローカルエリアネットワーク又はインターネット等のネットワークへハードワイヤード又は無線接続を介してアクセス可能なものとすることが可能である。
【０００８】
該コンピュータシステムは、通常、システム１００として呼称し、且つ中央処理装置（ＣＰＵ）１０２、メモリ１０４、例えばランダムアクセスメモリ（ＲＡＭ）、プリンタインターフェース１０６、ディスプレイユニット１０８、（ＬＡＮ）ローカルエリアネットワークデータ伝送制御器１１０、ＬＡＮインターフェース１１２、ネットワーク制御器１１４、内部バス１１６及び例えばキーボード、マウス等の１個又はそれ以上の入力装置１１８を包含することが可能である。図示したように、システム１００は、例えば、ハードディスク１２０等のデータ格納装置へリンク１２２を介して接続することが可能である。
【０００９】
該データ格納装置は、その中に、種々のタイプの多数のファイルを格納している場合がある。格納されている場合のあるファイルのタイプの例は、バッチファイル（ＢＡＴ）、実行可能コマンドファイル（ＣＯＭ）、実行可能ファイル（ＥＸＥ）等を包含している。各タイプのファイルは、１つ又はそれ以上のウイルスにより障害を受け易いものである場合がある。本システムは、そのファイルが障害を受けているか否かを決定するために各ファイルの一部に関してチェック（例えば、巡回冗長検査（ＣＲＣ））を実施することが可能である。このチェックから、そのファイルが障害を受けている場合があると決定される場合には、そのファイルのより大きな部分を検査して、そのファイルが実際に障害を受けているか否かを決定することが可能である。
【００１０】
多数のタイプのファイルは、例えば、ＥＸＥファイルのヘッダー等の独特である１つ又はそれ以上の部分を有している。各ＥＸＥファイルはヘッダーを有しており、それはそのファイルの始めに位置している５１２バイトのエリアである。この５１２バイトのうちで、２７バイトのみが、通常、ヘッダー情報を包含している。該ヘッダーはそのファイルをロードし且つ実行する場合にシステムにより使用されるそのファイル自身についての種々のタイプの情報を包含している。該ヘッダーはＩＤバイト、最後のセクター上の合計バイト、セクターの総数、再配置可能な項目の数、ヘッダー寸法、所要の最小及び最大パラグラフ等を包含する場合がある。そのファイルがウイルスにより障害を受けている場合、即ち汚染されている場合には、該ヘッダーの少なくともいずれかの部分における変化により反映される蓋然性がある。
【００１１】
本システム及び方法の１実施例は、最初に、ファイルのヘッダーのＣＲＣを獲得し、次いで、それをウイルスを包含するファイルのヘッダーのＣＲＣ（ウイルスＣＲＣ）と比較することによりこのことを利用するものである。それらのＣＲＣが一致する場合には、そのファイルがウイルスを包含していることを表わす可能性がある。次いで、そのファイルがウイルスを包含していることを確認するためにそのファイルのより包括的なチェックを実施することが可能である。例えば、そのファイルのより大きな部分（又は全て）のＣＲＣを決定することが可能である。次いで、このＣＲＣを、ウイルスを包含するファイルのより大きな部分（又は全て）のＣＲＣと比較することが可能である。これらのＣＲＣが一致する場合には、そのファイルは汚染されており且つユーザに通知することが可能である。そのファイルのより大きな部分はファイル全体とするか、又は一定のまま残存し且つ通常変化することのないファイルの一部のみとすることが可能である。
【００１２】
図２に示したように、本システムは、３個のファイル、即ちファイル１、ファイル２、ファイル３を包含している場合がある。各ファイルは夫々ヘッダー１、ヘッダー２、ヘッダー３の記号を付けたヘッダー部分、及び夫々、ボディ１、ボディ２、ボディ３と記号の付けたボディ部分を包含している。ウイルスの記号を付けたファイルは既知のウイルスに感染したファイルである。このウイルスファイルもヘッダーＶの記号を付けたヘッダー部分とボディＶの記号を付けたボディ部分とを包含している。ウイルスファイルの全体がシステム上に格納される場合があるが、そのようにすることは必ずしも必要なことではない。即ち、ウイルスファイルの全体を格納する代わりに、そのウイルスファイルの１つ又はそれ以上の部分のＣＲＣのみを決定し且つ格納することが可能である。例えば、そのウイルスファイルのヘッダー（ヘッダーＶ）のＣＲＣを決定し且つ、そのウイルスファイルのボディ（ボディＶ）のＣＲＣと共に、メモリ内に格納することが可能である。１つのウイルスファイルのみを示してあるが、実際には、多数のウイルスファイルが使用され且つ１個又はそれ以上のＣＲＣが各々に対して決定されることを理解すべきである。
【００１３】
ウイルススキャン期間中に、ファイル（ファイル１，ファイル２，ファイル３）の各々の内容全体をスキャンする代わりに、これらのファイル、ファイル１、ファイル２、ファイル３の各々のヘッダーのＣＲＣを決定することが可能であるようにヘッダーのみをスキャンする。次いで、これらのＣＲＣをウイルスファイルのヘッダーのＣＲＣと比較する。例えば、ファイル１のヘッダーのＣＲＣがウイルスファイルのヘッダーのＣＲＣと一致する場合には、このことは、ファイル１の更なるスキャンをトリガさせる。次いで、例えばファイル１のボディ（ボディ１）のＣＲＣを決定する。次いで、このＣＲＣをウイルスファイルのボディ（ボディＶ）のＣＲＣと比較する。これらのＣＲＣが一致する場合には、このことは、そのファイルが感染していることを表わす。次いで、ユーザに通知することが可能であり、及び／又はシステムがそのウイルスを除去すべく試みることが可能である。
【００１４】
１個のファイルのボディのＣＲＣが決定される場合に、そのファイル全体がスキャンされるか、又はそのボディの全て又は１つ又はそれ以上の部分がスキャンされる場合がある。そのファイルのボディのＣＲＣは、そのヘッダーのスキャニングも包含する場合がある。例えば、図３に示したように、ファイルはヘッダーと、一定部分と、可変部分とを包含している場合がある。しばしば変化するファイルの場合には、そのファイルの可変部分をスキャンすることなしにそのファイルのＣＲＣを決定することが望ましい場合がある。この場合には、そのファイルの一定部分又は一定部分とヘッダー部分のみをスキャンすることによりＣＲＣを決定することが可能である。
【００１５】
本発明の１実施例によれば、既知のウイルス情報がメモリ内に格納される。そのメモリは図１に示したようなシステムメモリ１０４とすることが可能であり又は着脱可能な格納媒体又はメモリ、又は例えばインターネットを介してコンピュータシステム１００により遠隔的にアクセス可能なデータベースとすることが可能である。そのウイルス情報は、各々が第一ウイルスＣＲＣ及び対応する第二ウイルスＣＲＣを包含するウイルス情報の組を包含している。各第一ウイルスＣＲＣは、ウイルスに感染したファイルの一部又は複数部分のＣＲＣを計算することにより決定することが可能である。例えば、第一ウイルスＣＲＣは、ウイルスに感染したファイルのヘッダーのＣＲＣを計算することにより決定することが可能である。各第一ウイルスＣＲＣは少なくとも１個の対応する第二ウイルスＣＲＣを有している。この第二ウイルスＣＲＣは、例えば、ウイルスに感染しているファイルのボディのＣＲＣを計算することにより決定することが可能である。該データベースは、種々のタイプのファイルにおける種々のタイプのウイルスを検知するための多数の組のウイルス情報を包含している場合がある。
【００１６】
図４は本発明の１実施例に基づいて悪性コードを検知する方法のフローチャートを示している。この実施例によれば、種々のタイプのウイルスに感染した種々のタイプのファイルに対してのウイルス情報の組を格納しているデータベースが提供される。各組は第一ウイルスＣＲＣと第二ウイルスＣＲＣとを包含している。第一ウイルスＣＲＣは、ウイルスに感染しているファイルのヘッダーをスキャンすることにより決定される。第二ウイルスＣＲＣは、感染しているファイルの一定部分（図３）をスキャンすることにより決定される。本方法は、コンピュータシステムメモリ１００内に格納されているか、又は、例えば、コンピュータシステム１００によりアクセス可能な遠隔にあるアプリケーションサービスプロバイダーサイトに遠隔的に格納されているコンピュータにより実行可能なコードの形態で実現することが可能である。本システムが開始した後に（ステップＳ１）、検査すべきファイルの一部（例えば、第一キロバイト（又はヘッダー））が一時的バッファ内に読み込まれる（ステップＳ２）。このことは、ウイルスに対してのファイルをスキャンするためのユーザによる特定の要求に応答するか、又はファイルをウイルスについてスキャンすべき設定されている命令に応答して実施することが可能である。ステップＳ４において、該バッファ内に読み込まれたデータのＣＲＣを決定する（第一ＣＲＣ）。次いで、この第一ＣＲＣは該データベース内に格納されている第一ウイルスＣＲＣと比較する（ステップＳ６）。この第一ＣＲＣが格納されている第一ウイルスＣＲＣのいずれとも一致しない場合には（ＮＯ、ステップＳ６）、ウイルスが見つからないことが決定され、且つ本システムはウイルスについてチェックするための別の技術を継続して行うか及び／又はウイルスが見つからなかったことをユーザに知らせることが可能である（ステップＳ１２）。第一ＣＲＣが第一ウイルスＣＲＣと一致する場合には（ＹＥＳ、ステップＳ６）、そのファイルの一定部分が該一時的バッファ内に読み込まれ、スキャンされ且つその第二ＣＲＣが決定される（ステップＳ８）。次いで、第二ＣＲＣが対応する第二ウイルスＣＲＣと比較される（ステップＳ１０）。この第二ＣＲＣが対応する第二ウイルスＣＲＣと一致する場合には（ＹＥＳ、ステップＳ１０）、そのファイルがウイルスを包含しているものと決定され且つ適宜のアクションを取ることが可能である（ステップＳ１４）。そのファイルのボディのＣＲＣが感染されているファイルのウイルスのボディのＣＲＣと一致しない場合には（ＮＯ、ステップＳ１０）、本プロセスはステップＳ１２へ進行し且つ適宜のアクションが取られる。次いで、本プロセスは終了する（ステップＳ１６）。
【００１７】
本発明の別の実施例によれば、ウイルスＣＲＣは、ＣＲＣの一致が発生する場合にどのようにして進行するかを表わす命令と共にデータベース内に格納されている。この実施例は、異なるタイプのウイルスを扱う場合にかなりの柔軟性を与えることを可能とする。何故ならば、各ウイルスＣＲＣは一致を取り扱うための異なる組の命令を包含することが可能だからである。例えば、ファイルヘッダーのＣＲＣがデータベース内のウイルスＣＲＣと一致する場合に、該データベースは、そのファイルの別の部分のＣＲＣを計算すべきであることの命令を包含する場合がある。例えば、その命令は、次のキロバイトのデータのＣＲＣを計算し、次いで、該データベース内のウイルスＣＲＣと比較すべきであることを表わす場合がある。そのＣＲＣが、再度、該データベース内のウイルスＣＲＣと一致する場合には、そのウイルスＣＲＣと共に該データベース内に格納されている命令が、本システムをして、そのファイルの別の部分のＣＲＣを決定し、次いで、それを該データベース内に格納されているウイルスＣＲＣと比較することを命令する場合等がある。幾つかのウイルスＣＲＣは、ＣＲＣがそれと一致する場合に、ファイル全体のＣＲＣを計算し且つその結果得られるＣＲＣを該データベース内のウイルスＣＲＣと比較すべきであることを表わす命令をその中に包含している場合がある。幾つかのウイルスＣＲＣは、ＣＲＣがそれと一致する場合には、そのファイルの一定部分のみのＣＲＣを計算し、且つその結果得られるＣＲＣを該データベース内のウイルスＣＲＣと比較すべきであることを表わす命令をその中に包含している場合がある。幾つかのウイルスＣＲＣは、ＣＲＣがそれと一致する場合には、そのファイルについての別のＣＲＣを計算する代わりに、そのファイルについて別の形態のウイルス検知を実施すべきであることを表わす命令をその中に包含している場合がある。
【００１８】
図５は本発明のこの実施例に基づくプロセスを記述したフローチャートである。本システムが開始した後（ステップＳ２０）、本システムは次のレベルのＣＲＣを計算する（ステップＳ２２）。初期的には、このステップは、そのファイルの第一キロバイト（又はヘッダー）のＣＲＣを計算する。次いで、ウイルスＣＲＣのデータベースを一致に対してサーチする（ステップＳ２４）。一致するウイルスＣＲＣが見つからない場合には（ＮＯ、ステップＳ２６）、本プロセスは終了する（ステップＳ２８）。ステップＳ２８は、そのファイルがウイルスではなかったことをユーザに告げるべく指示する場合があり、及び／又は別のタイプのウイルス検知を実施するか又はチェックすべき次のファイルへ進行することを本システムに指示する場合がある。一致するウイルスＣＲＣが見つかった場合には（ＹＥＳ、ステップＳ２６）、そのウイルスＣＲＣと共に格納されている命令が読み取られ且つその命令が実行される（ステップＳ３０）。これらの命令は、ＣＲＣが一致したので、ウイルスが検知されており（ＹＥＳ、ステップＳ３２）、且つ次いで、この情報を例えば、所望により、ディスプレイを介してユーザへ伝えることが可能であることを指示する場合がある（ステップＳ３４）。該命令が、そのファイルの別の部分又はファイル全体のＣＲＣを計算することを指示する場合には（ＮＯ、ステップＳ３２）、本プロセスはステップＳ２２へ復帰し、そこで、次のＣＲＣを計算し且つ本プロセスを繰り返すことが可能である。
【００１９】
上述したように、該命令は、別のタイプのウイルス検知を実施することを指示する場合がある。該命令が、別の形態のウイルス検知を使用することを指示する場合には、その命令において表わされたタイプのウイルス検知を使用してウイルスを検知するための試みが行われる。ウイルスが検知されると、ユーザに通知することが可能である。
【００２０】
上述したものはＣＲＣの使用について説明しているが、ファイル内の潜在的なウイルスの存在を決定するためにその他の方法を使用する場合があることを理解すべきである。例えば、ＣＲＣの代わりにヘッダーに対するシグネチャ及びファイルのボディ部分を使用することが可能である。
【００２１】
本発明は、１個又はそれ以上の従来の汎用デジタルコンピュータ及び／又は本発明の教示に従ってプログラムされたサーバーを使用して実現することが可能である。本発明の教示に基づいて当業者により適宜のソフトウエアコーディングを容易に用意することが可能である。本発明は、又、応用特定集積回路を準備することにより、又は従来のコンポーネント回路の適宜のネットワークを相互接続することにより実現することも可能である。本発明の多数の付加的な修正及び変形例は上述した教示に鑑み可能なものである。従って、本発明の範囲内において、本発明を本明細書に特記したこと以外で実施することが可能であることを理解すべきである。
【図面の簡単な説明】
【００２２】
【図１】本発明を適用することが可能なシステムの１例を示したブロック図。
【図２】ファイルの種々の部分を示した概略図。
【図３】ファイルのその他の部分を示した概略図。
【図４】本発明の１実施例に基づくシステムを示したフローチャート。
【図５】本発明の別の実施例に基づくシステムを示したフローチャート。
【図１】
2005522800.tif 000003
【図２】
2005522800.tif 000004
【図３】
2005522800.tif 000005
【図４】
2005522800.tif 000006
【図５】
2005522800.tif 000007
【国際調査報告】
2005522800.tif 000008
2005522800.tif 000009