(57)【要約】      （修正有）【課題】メモリに常駐するプロセス及びスレッドを感染させるウイルスを完璧に治療する。【解決手段】メモリに常駐するプロセスをスキャン４０２し、診断４０４及び治療４０７する。治療できない場合はプロセスを終了させる４０８。また、ウイルスに感染されたと診断されたプロセスの該当ファイルは診断及び治療する４１４。さらに、メモリに常駐するスレッドを診断及び治療する４１６。【選択図】図４
2005166018.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）メモリに常駐するプロセスを診断及び治療する段階と、
（ｂ）（ａ）段階でウイルスに感染されたと診断されたプロセスの該当ファイルを診断及び治療する段階と、
を含むことを特徴とするコンピュータウイルス防疫方法。
【請求項２】
前記（ａ）段階は、 
（ａ１）メモリに常駐するプロセスのそれぞれの開始ポイントを求める段階と、 
（ａ２）前記開始ポイントを基準にして予め決定した位置にウイルスの特徴パターンが存在するか否かをそれぞれ検索する段階と、 
（ａ３）該当プロセスにウイルスの特徴パターンが存在する場合、治療をする段階と、を含むことを特徴とする請求項１に記載のコンピュータウイルス防疫方法。
【請求項３】
前記（ａ３）段階は、 
ウイルスに感染されたプロセスの治療が不可能である場合、前記プロセスを終了することを特徴とする請求項２に記載のコンピュータウイルス防疫方法。
【請求項４】
前記（ｂ）段階は、 
（ａ３）段階でプロセスを終了した場合、終了したプロセスに該当するファイルを再実行して前記メモリにプロセスを常駐させることを特徴とする請求項３に記載のコンピュータウイルス防疫方法。
【請求項５】
前記メモリに常駐するスレッドを診断及び治療する（ｃ）段階をさらに含むことを特徴とする請求項１ないし４のいずれか１項に記載のコンピュータウイルス防疫方法。
【請求項６】
前記（ｃ）段階は、
（ｃ１）メモリに常駐するスレッドのそれぞれの開始ポイントを求める段階と、 
（ｃ２）前記開始ポイントを基準にして予め決定した位置にウイルスの特徴パターンが存在するか否かをそれぞれ検索する段階と、
（ｃ３）該当スレッドにウイルスの特徴パターンが存在する場合、終了する段階と、を含むことを特徴とする請求項５に記載のコンピュータウイルス防疫方法。
【請求項７】
（ａ）メモリに常駐するプロセスを診断及び治療する段階と、
（ｂ）（ａ）段階でウイルスに感染されたと診断されたプロセスの該当ファイルを診断及び治療する段階と、
を含むことを特徴とするコンピュータウイルス防疫プログラムを記録した記録媒体。
【請求項８】
前記（ａ）段階は、
（ａ１）メモリに常駐するプロセスのそれぞれの開始ポイントを求める段階と、 
（ａ２）前記開始ポイントを基準にして予め決定した位置にウイルスの特徴パターンが存在するか否かをそれぞれ検索する段階と、 
（ａ３）該当プロセスにウイルスの特徴パターンが存在する場合、治療をする段階と、を含むことを特徴とする請求項７に記載のコンピュータウイルス防疫プログラムを記録した記録媒体。
【請求項９】
前記（ａ３）段階は、 
ウイルスに感染されたプロセスの治療が不可能である場合、前記プロセスを終了することを特徴とする請求項８に記載のコンピュータウイルス防疫プログラムを記録した記録媒体。
【請求項１０】
前記（ｂ） 段階は、 
（ａ３）段階でプロセスを終了した場合、終了したプロセスに該当するファイルを再実行して前記メモリにプロセスを常駐させることを特徴とする請求項９に記載のコンピュータウイルス防疫プログラムを記録した記録媒体。
【請求項１１】
前記メモリに常駐するスレッドを診断及び治療する（ｃ）段階をさらに含むことを特徴とする請求項７ないし１０のいずれか１項に記載のコンピュータウイルス防疫プログラムを記録した記録媒体。
【請求項１２】
前記（ｃ）段階は、
（ｃ１）メモリに常駐するスレッドのそれぞれの開始ポイントを求める段階と、 
（ｃ２）前記開始ポイントを基準にして予め決定した位置にウイルスの特徴パターンが存在するか否かをそれぞれ検索する段階と、
（ｃ３）該当スレッドにウイルスの特徴パターンが存在する場合、終了をする段階と、を含むことを特徴とする請求項１１に記載のコンピュータウイルス防疫プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに貯蔵されたファイルまたは実行中のプロセスにおいてウイルスを診断し、感染されたファイルまたはプロセスを治療する方法及びそのプログラムを記録した記録媒体に関し、より詳細には、ウイルスに感染される可能性のある領域に関する情報、特に、現在メモリに常駐するプロセス及びスレッドを漏れなく正確に検査することができ、メモリを感染させるウイルスを完璧に治療することのできるコンピュータウイルス防疫方法及びそのプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
コンピュータにおいてプログラムが実行される時、メモリに該当プログラムのプロセスが常駐するようになる。ウイルスは、このようなメモリに常駐するプロセスやハードディスクなどの記憶装置に貯蔵されているプログラムファイルを目標とし、ウイルスに感染されたプロセスがまた他のプロセスやファイルを感染させることによってコンピュータウイルスが伝播される。
【０００３】
従来のメモリを感染させるウイルスの治療方法は、以下のようである。
【０００４】
まず、メモリに常駐しているプロセスのリストを検索し、記憶装置（ハードディスクなど）からそれに該当するファイルがウイルスに感染されているか否かを診断する。診断結果、ファイルがウイルスに感染されている場合、メモリに常駐する該当プロセスをキル（ｋｉｌｌ）する。さらに、ハードディスクに貯蔵されている該当ファイルを治療して再実行することによって、正常的なプロセスをメモリに常駐させる方式が使用されている。
【０００５】
しかしながら、最近のコンピュータウイルスは、ファイルを感染させずにプロセスのみを感染させるか、プロセスに従属されて実行中のスレッド（Ｔｈｒｅａｄ）のみを感染させるので、従来の技術によってはウイルスの診断及び治療が不可能であるという問題点がある。
【０００６】
つまり、メモリに対する診断を行わずにファイルの感染可否のみによってプロセスをキルさせるので、メモリを感染させるウイルスに対する正確な診断及び治療が不可能であるという問題点がある。  
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、前述したような問題点を解決するために提案され、本発明の目的は、ウイルスに感染される可能性のある領域に関する情報、特に、現在メモリに常駐するプロセス及びスレッドを漏れなく正確に検索することが可能であり、メモリを感染させるウイルスを完璧に治療することのできるコンピュータウイルス防疫方法を提供することにある。
【０００８】
本発明の他の目的は、ウイルスを治療する方法を実行するためのプログラムを記録したコンピュータで可読の記録媒体を提供することにある。
【課題を解決するための手段】
【０００９】
このような目的を達成するための本発明の一実施形態によると、（ａ）メモリに常駐するプロセスを診断及び治療する段階と、（ｂ）（ａ）段階でウイルスに感染されたと診断されたプロセスの該当ファイルを診断及び治療する段階と、を含むことを特徴とするコンピュータウイルス防疫方法を提供する。
【００１０】
前記（ａ）段階は、（ａ１）メモリに常駐するプロセスのそれぞれの開始ポイントを求める段階と、（ａ２）前記開始ポイントを基準にして予め決定した位置にウイルスの特徴パターンが存在するか否かをそれぞれ検索する段階と、（ａ３）該当プロセスにウイルスの特徴パターンが存在する場合、治療をする段階と、を含むことを特徴とする。
【００１１】
前記（ａ３）段階は、ウイルスに感染されたプロセスの治療が不可能である場合、前記プロセスを終了することを特徴とする。
【００１２】
前記（ｂ）段階は、（ａ３）段階でプロセスを終了した場合、終了したプロセスに該当するファイルを再実行して前記メモリにプロセスを常駐させることを特徴とする。
【００１３】
前記コンピュータウイルス防疫方法は、前記メモリに常駐するスレッドを診断及び治療する（ｃ）段階をさらに含むことを特徴とする。
【００１４】
前記（ｃ）段階は、（ｃ１）メモリに常駐するスレッドのそれぞれの開始ポイントを求める段階と、（ｃ２）前記開始ポイントを基準にして予め決定した位置にウイルスの特徴パターンが存在するか否かをそれぞれ検索する段階と、（ｃ３）該当スレッドにウイルスの特徴パターンが存在する場合、終了する段階と、を含むことを特徴とする。
【００１５】
本発明の他の実施形態によると、（ａ）メモリに常駐するプロセスを診断及び治療する段階と、（ｂ）（ａ）段階でウイルスに感染されたと診断されたプロセスの該当ファイルを診断及び治療する段階と、を含むことを特徴とするコンピュータウイルス防疫プログラムを記録した記録媒体を提供する。  
【発明の効果】
【００１６】
本発明によると、ウイルスに感染される可能性のある領域に対する情報、特に、現在メモリに常駐するプロセス及びスレッドを漏れなく正確に検査することができ、メモリを感染させるウイルスを完璧に治療することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の内容を代表的な運営体系の１つであるウィンドウズ（登録商標）／ＷＩＮＤＯＷＳ（登録商標）に限定して添付図を参照しつつ詳細に説明する。しかしながら、本発明の技術的な思想は、ウィンドウズ（登録商標）に限られるべきではなく、当業者であれば他の類似運営体系にも同一に適用できるということは容易に分かる。
【００１８】
＊  用語の定義  
−ウイルスに感染される可能性のある領域：通常には、コンピュータウイルスが一般的に感染させることのできる全ての対象を意味し、メモリ、ファイル、サービス、レジストリ、ＴＣＰ／ＩＰパケットポート、ブートなどが含まれる。
−運営体系：制限されたシステムの資源を効率的に管理及び運営することによって、使用者に便宜性を提供する、人間と機械との間にインターフェース役割を遂行するプログラムを意味する。このような運営体系としては、ＤＯＳ、ＭＡＣＩＮＴＯＳＨ、ＷＩＮＤＯＷＳ（登録商標）、ＯＳ／２、ＵＮＩＸ（登録商標）、ＬＩＮＵＸなどがある。
−ウイルスに感染される可能性のある領域に関する情報を検索するために使用する‘関数’：運営体系が提供する関数であり、応用プログラムインターフェース（ＡＰＩ）、システム呼び出し（ｓｙｓｔｅｍ  ｃａｌｌ）などを含む。
−プロセスキル（ｐｒｏｃｅｓｓ  ｋｉｌｌ）：プロセスを終了することである。
【００１９】
ウイルス中には、メモリのプロセス領域のみを感染させ、ファイル領域は感染させない種類（例えば、コードレッド（ｃｏｄｅ  ｒｅｄ）、スラマー（Ｓｌａｍｍｅｒ）など）がある。このようなウイルスは、まずメモリのプロセス領域を診断して治療すべきである。
【００２０】
図１は、本発明によるウイルスに感染されたプロセスの治療過程を示す図である。符号１は、メモリであり、符号２は、プロセスリストであり、符号３は、プロセスリスト２とマッピングされるプロセス領域である。符号４は、記憶装置である。
【００２１】
以下、図１に示す治療過程を例にして本発明の内容を説明する。
【００２２】
まず、メモリ１においてプロセスリスト２及び開始ポイントＥＰを探して各プロセスが感染されているか否かを診断する（段階（ａ））。
【００２３】
プロセスＢが復旧できないほど損傷された場合、該当プロセスをキル（ｋｉｌｌ）する。この時、望ましくは、プロセスをキルさせる前に、確認ウィンドウを通じてそれを確認させる。プロセスをキルした後、記憶装置４においてファイルＢを検索する（段階（ｂ））。
【００２４】
ファイルＢに対するウイルス診断及び治療を遂行した後、ファイルＢを再実行する（段階（ｃ））。前記過程によってメモリにはウイルスが治療されたプロセスＢが常駐するようになる（段階（ｄ））。
【００２５】
（ｃ）段階で、ファイルＢを再実行せずに終了することもできるが、以下の説明では、該当ファイルを再実行することを最も望ましい例として説明する。
【００２６】
大部分のワクチンプログラムは、ウイルスに感染される可能性のある領域に関する情報を検索するために応用プログラムインターフェース（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ：以下、ＡＰＩと称する）関数を利用する。
【００２７】
ワクチンプログラムは、ＡＰＩ関数によって検索されたメモリのプロセスを診断及び治療し、メモリのスレッド領域を診断及び治療しようとする場合は、ＡＰＩ関数によってスレッド領域を検索した後、診断及び治療をする。
【００２８】
まず、ＡＰＩ関数を利用してメモリに常駐するプロセスリスト及びプロセスそれぞれの開始ポイント（Ｅｎｔｒｙ  Ｐｏｉｎｔ：ＥＰ）を探す。この時に使用するＡＰＩ関数としては、例えば、ＮＴＤＬＬ．ＤＬＬ：：ＮｔＱｕｅｒｙＳｙｓｔｅｍｉｎｆｏｒｍａｔｉｏｎまたはＮＴＤＬＬ．ＤＬＬ：：ＬｄｒＧｅｔＤＩＩＨａｎｄｌｅなどがある。
【００２９】
次に、該当プロセスがウイルスに感染されているか否かを診断する。ワクチンプログラムがメモリのプロセスを診断する方式は、以下のようである。
【００３０】
ウイルスは、自分が優先して実行されるように目標対象のコードを変更させるが、コードを変更させる以前の元のコードを自分の実行コードの内部に有している。ウイルスが元のコードを有していないと、システムに深刻な誤謬を招くので、ウイルスの動作が終了した後、システムを正常的に実行させるためには、自分の実行コードの内部に有することは必須である。
【００３１】
従って、定型化したウイルスの感染パターンを分析すると、診断及び治療に必要な情報を得ることができる。
【００３２】
ワクチンプログラムは、このような方法によって分析したウイルスの特徴的なパターン、ウイルスに感染される時に変更されるコードの位置、コード復旧のための元のコードの位置及びコードの長さなどを含む情報を有する。
【００３３】
従って、ワクチンプログラムがプロセスを診断する時に、ウイルスの特徴的なパターンが開始ポイントを基準にして予め決定した位置に存在するか否かを検索する。検索結果、ウイルスの特徴的なパターンが存在すると、ウイルスに感染されたプロセスであると診断し、治療が可能であるか否かを確認する。
【００３４】
ウイルスの内部に元のコードに関する情報がある場合は治療が可能である。従って、ワクチンプログラムは、前述した情報を利用して変更されたコードを元のコードに復旧することによって該当プロセスを治療する。この時、該当メモリ地域が読み出し属性を有することがあるので、書き込みができるように変更した後、元のコードに復旧することが望ましい。
【００３５】
ウイルスの内部に元のコードに関する情報が存在しないため、治療が不可能である場合は、メモリに常駐するプロセスをキルする。例えば、図１のように、メモリにプロセスＡ、Ｂ、Ｃが常駐しており、プロセスＢがウイルスに感染されている場合、治療が不可能であると、メモリに常駐するプロセスＢをキルする。
【００３６】
メモリに常駐するプロセスＢをキルする前、プロセスＢをキルするというメッセージを使用者にディスプレイすることが望ましい。このようなメッセージをディスプレイする理由は、使用者が予め作業しているプロセスＢがワクチンプログラムによって任意的に終了されることによって作業中の内容がなくなることを防止し、使用者がメッセージを見て該当作業を貯蔵する時間を与えるためである。
【００３７】
使用者が確認メッセージをクリックすると、プロセスＢはメモリにおいてキル処理される。
【００３８】
さらに、記憶装置（例えば、ハードディスク）においてプロセスに該当するファイルを検索する。例えば、図１を参照すると、プロセスＢに該当するファイルＢを記憶装置から検索する。
【００３９】
記憶装置において対応するファイルが検索されない場合、ワクチンプログラムを終了する。
【００４０】
記憶装置においてプロセスに該当するファイルを検索した結果、該当ファイルが存在する場合、そのファイルが感染されているか否かを診断して治療する。さらに、必要によっては、メモリスレッド領域を診断及び治療する過程をさらに遂行することが望ましい。これに関しては、別途に後述する。
【００４１】
治療不可能のプロセスをメモリにおいて終了させた場合は、ファイルに対する診断及び治療が終わってから該当ファイルを再実行することが望ましい。図１において、ファイルＢを再実行すると、メモリにはウイルスに感染されていないプロセスＢが常駐するようになるので、ウイルスが完全に治療される。ここで、プロセスＢをまた常駐させる理由は、運営体系が使用するプロセスの場合、該当プロセスが治療過程においてキル処理されると、運営体系が円滑に作動するという保障がないからである。
【００４２】
ウイルスによってひどく損傷したプロセスは、治療によって予めキル処理されるので、この時に記憶装置に存在するファイルは感染されない。
【００４３】
一方、メモリにはプロセス領域とは別にスレッド領域が別途存在する。スレッド領域を感染させるウイルス（例えば、エルカーンウイルス（Ｅｌｋｅｒｎ  ｖｉｒｕｓ）など）は、プロセスのスレッド領域にウイルスに感染されたスレッドを追加することによって感染させる。
【００４４】
従って、追加されたスレッドをキルすると、使用者によって使用中であるプロセスにはまったく影響を与えずにウイルスを治療することができる。
【００４５】
図２は、スレッド領域に存在するウイルスを診断／治療する過程を示す図である。まず、スレッド領域に存在するウイルスを診断／治療するためには、メモリに常駐しているプロセスそれぞれに対するスレッドリスト及び各スレッドに対する開始ポイント（ＥＰ）を探すべきである。
【００４６】
この場合も、前述と同様に、ＡＰＩ関数（例えば、ＮＴＤＬＬ．ＤＬＬ：：ＮｔＲｅｓｕｍｅＴｈｒｅａｄ）を利用してスレッドリスト及び各スレッドの開始ポイントを探す。
【００４７】
それから、該当スレッドがウイルスに感染されているか否かを診断する。つまり、該当スレッドの開始ポイントを基準にして予め決定した位置にウイルスの特徴パターンが存在するか否かを検索することによってウイルスの感染可否を診断する。
【００４８】
診断結果、ウイルスに感染されたスレッド（色づけの部分）が存在すると、該当スレッドをメモリ領域においてキルする。これによって、使用者によって使用中であるプロセスをキルしなくてもウイルスを治療することができる。
【００４９】
以下、図３ないし図５の好適な実施形態によって本発明の内容をより詳細に説明する。ただ、これらの実施形態は、本発明の内容の理解を容易にするために提示されるだけであり、本発明の権利範囲がこれらの実施形態に限られると解析されることではない。
【００５０】
図３は、本発明の一実施形態によるウイルスに感染されたプロセスの治療過程を示すフローチャートである。
【００５１】
まず、ＡＰＩ関数を利用してメモリに常駐するプロセスリスト及びプロセスそれぞれの開始ポイントを探した後、各プロセスがウイルスに感染されているか否かを診断する（段階３０２）。
【００５２】
ウイルスに感染されたプロセスが存在すると判断される場合（段階３０４のはい）、治療可能の可否を判断する（段階３０６）。
【００５３】
段階３０６で治療可能であると判断される場合、該当プロセスを治療し（段階３０７）、該当ファイルを記憶装置から検索する（段階３１０）。段階３０６で治療が不可能であると判断される場合、該当プロセスをキルした後（段階３０８）、該当ファイルを記憶装置から検索する（段階３１０）。
【００５４】
段階３１２で該当ファイルが記憶装置に存在する場合、該当ファイルを診断及び治療する（段階３１４）。さらに、図示されていないが、段階３０８で終了したプロセスの該当ファイルを再実行してメモリに常駐させることが望ましい。
【００５５】
一方、段階３１２で該当ファイルが記憶装置に存在しないと判断される場合、すぐに終了する。
【００５６】
図４は、本発明の他の実施形態によるウイルスに感染されたプロセス及びスレッドの治療過程を示すフローチャートである。図３の実施形態と比較すると、スレッド領域を診断及び治療する過程をさらに含むという点で異なる。図４の実施形態においてメモリのスッド領域に対する診断及び治療過程（段階４１６）は、ファイルの診断及び治療過程（段階４１４）の以後に遂行される。
【００５７】
図５は、本発明のまた他の実施形態によるウイルスに感染されたプロセス及びスレッドの治療過程を示すフローチャートである。図４の実施形態と比較すると、メモリのスレッド領域に対する診断及び治療過程がプロセスの診断過程の以前に遂行されるという点で異なる。
【００５８】
つまり、メモリのスレッド領域を診断及び治療した後（段階５０２）、メモリに常駐するプロセスがウイルスに感染されているか否かを診断する（段階５０４）。さらに、ウイルスに感染されたプロセスが存在すると判断される場合（段階５０６）、治療可能の可否を判断する（段階５０８）。
【００５９】
段階５０８で治療が可能であると判断される場合、該当プロセスを治療し（段階５０９）、該当ファイルを記憶装置から検索する（段階５１２）。段階５０８で治療が不可能であると判断される場合は、該当プロセスをキルした後（段階５１０）、該当ファイルを記憶装置から検索する（段階５１２）。
【００６０】
該当ファイルが記憶装置に存在する場合（段階５１４のはい）、該当ファイルを診断及び治療する（段階５１６）。この場合も、段階５１０でキルしたプロセスの該当ファイルを再実行してメモリに常駐させることが望ましい。
【００６１】
一方、段階５１４で該当ファイルが記憶装置に存在しないと判断される場合は、すぐに終了する。
【００６２】
図４及び図５の実施形態によって説明したように、スレッド領域の診断及び治療は、プロセスの診断及び治療過程の以前または以後のいずれの段階でも遂行できる。
【００６３】
前述した本発明によるウイルスの治療過程は、コンピュータシステムにおいて実行できるプログラムによって作成されることができる。しかしながら、本発明の実施可能の形態は、これに限られず、ＰＤＡ、携帯電話、半導体製造装備、その他の産業用装備などにおいて実行可能のプログラムによって具現されることもできる。
【００６４】
さらに、このようなプログラムを記録したコンピュータ可読の記録媒体から該当プログラムを読み出して汎用ディジタルコンピュータシステムにおいて実行されることができる。このような記録媒体には、マグネチック貯蔵媒体（例えば、ＲＯＭ、フロッピディスク、ハードディスクなど）、光学的判読媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤなど）及びキャリアウェーブ（例えば、インターネットを通じた伝送）のような媒体が含まれる。  
【図面の簡単な説明】
【００６５】
【図１】本発明によるウイルスに感染されたプロセスの治療過程を示す図である。
【図２】スレッド領域に存在するウイルスを診断／治療する過程を示す図である。
【図３】本発明の一実施形態によるウイルスに感染されたプロセスの治療過程を示すフローチャートである。
【図４】本発明の他の実施形態によるウイルスに感染されたプロセス及びスレッドの治療過程を示すフローチャートである。
【図５】本発明のまた他の実施形態によるウイルスに感染されたプロセス及びスレッドの治療過程を示すフローチャートである。
【図１】
2005166018.tif 000003
【図２】
2005166018.tif 000004
【図３】
2005166018.tif 000005
【図４】
2005166018.tif 000006
【図５】
2005166018.tif 000007