JP5797855B2 - ウイルススキャン方法及びウイルススキャン装置 - Google Patents

ウイルススキャン方法及びウイルススキャン装置 Download PDF

Info

Publication number
JP5797855B2
JP5797855B2 JP2014559088A JP2014559088A JP5797855B2 JP 5797855 B2 JP5797855 B2 JP 5797855B2 JP 2014559088 A JP2014559088 A JP 2014559088A JP 2014559088 A JP2014559088 A JP 2014559088A JP 5797855 B2 JP5797855 B2 JP 5797855B2
Authority
JP
Japan
Prior art keywords
scan
node
directory
file
scanning
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.)
Active
Application number
JP2014559088A
Other languages
English (en)
Other versions
JP2015508927A (ja
JP2015508927A5 (ja
Inventor
シー、グオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2015508927A publication Critical patent/JP2015508927A/ja
Publication of JP2015508927A5 publication Critical patent/JP2015508927A5/ja
Application granted granted Critical
Publication of JP5797855B2 publication Critical patent/JP5797855B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

関連出願の参照
本願発明は、2012年9月20日に中国の国家知的財産権局に出願された中国特許出願第201210351773.5号に対する優先権主張に基づくものであり、当該出願の全記載内容が引用をもって本書に組み込み記載されるものとする。
本発明は、コンピュータ技術分野に関し、特に、ウイルススキャンのための方法と装置、及びウイルススキャンを実行させる命令を格納したコンピュータ読み取り可能な非一時的媒体に関する。
コンピュータウイルスは、コンピュータープログラムに挿入された指示またはプログラムコードのセットに関し、コンピュータの機能やデータを破壊し、コンピュータの使用に影響を与えるとともに、自己複製することができる。コンピュータウイルスは、寄生的、感染的、隠蔽的、破壊的であり、多様化しており、コンピュータのリソースに大きな損害と破壊を引き起こす。
効果的にウイルスを検出するために、慣例的に、ウイルススキャンと殺害方法が、ハードディスク全体のトラバーサルとウイルススキャン毎にハードディスクにおける各々のファイルへのスキャンを必要とする。利用者が現在のウイルススキャンを中断した場合、ハードディスク全体のウイルススキャンのトラバーサルを、次のウイルススキャンでもう一度行う必要がある。
したがって、今までまだ解決されていない需要が上記の欠陥や不備に対処するための技術に存在する。
本発明の目的の一つとして、ウイルススキャンのための方法と装置、及びウイルススキャンを実行させる命令を格納したコンピュータ読み取り可能な非一時的媒体を提供する。
本発明の一態様では、ウイルススキャン方法は、システムの状態を検出し、システム状態がアイドルの時に、現在のウイルススキャンが開始した場合に、現在のウイルススキャンを続け、現在のウイルススキャンが開始していない場合に、前回のウイルススキャンのスキャン進行状況を取得し、前記スキャン進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録することを含む。
一実施形態では、前記システムの状態を検出するステップは、
入力状態またはフルスクリーン状態にあるかを検出し、システムリソースの現在の占有率を検出し、
入力状態またはフルスクリーン状態である場合、検出されたシステムの状態がビジーであると判定し、
入力状態またはフルスクリーン状態でない場合、検出されたシステムリソースの現在の占有率が所定の占有率よりも大きい時、検出されたシステムの状態がビジーであると判定し、
入力状態またはフルスクリーン状態でない場合、第2の所定時間内に検出されたシステムリソースの現在の占有率が所定の占有率より大きくない時、検出されたシステムの状態がアイドルであると判定することを含む。
さらに、前記方法は、前記システムの状態を検出するステップの前に、
すべてのハードディスクのパーティションを列挙し、各ノードの属性にそれがファイルなのか、列挙が終了したか、スキャンが終了したかが含まれる、ツリー構造へハードディスクのパーティションを追加し、
ハードディスクのパーティションごとのディレクトリ又はファイルのすべてを列挙し、ハードディスクのパーティションにおけるディレクトリ又はファイルをノードとしてツリー構造に追加し、ディレクトリ又はファイルが位置するノードの属性を設定し、スキャンキューに前記ファイルを追加する。
一実施形態では、ディレクトリ又はファイルが位置するノードの属性を設定するステップは、
1つのディレクトリが列挙される時、列挙が終了した場合、ディレクトリが位置するノードの属性をENUMERATION FINISHED(列挙終了)に設定し、前記列挙が未完成の場合、ディレクトリが位置するノードの属性をENUMERATION UNFINISHED(列挙未完成)に設定し、
1つのディレクトリの下におけるファイル又はディレクトリをスキャンする時、前記ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが終了した場合、前記ディレクトリが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、前記ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが未完成の場合、前記ディレクトリが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、
1つのファイルをスキャンする時、前記ファイルのスキャンが終了した場合、前記ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)に設定し、前記ファイルのスキャンが未完成の場合、前記ファイルが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定することを含む。
一実施形態では、前記スキャン進行状況に応じて現在のウイルススキャンを開始するステップは、
前記ツリー構造において深さ優先探索を行い、前記ツリー構造において前記スキャン進行状況に対応するノードに追従し、ノードがスキャンまたは列挙されなかったかをチェックし、
ノードがスキャンされなかった場合、前記ノードはファイルが位置するノードであるかを判定し、肯定の場合に前記ノードを前記スキャンキューに追加し、それ以外の場合に前記ノードのすべてのサブノードの深さ優先探索を続け、
ノードがまだ列挙されていない場合、ディレクトリが位置するノードを列挙し、ディレクトリが位置するノードの下に列挙されたファイルをスキャンキューに追加し、ディレクトリが位置するノードの下に列挙されたサブディレクトリをツリー構造に追加し、その後、ディレクトリが位置するノードを再帰的にトラバースし、ディレクトリが位置するノードの列挙が終了した後に、ディレクトリが位置するノードをENUMERATION FINISHED(列挙終了)として標識し、
スキャン進行状況に応じてスキャンキューにおけるファイルをスキャンし、
1つのファイルのスキャンが終了した後、ツリー構造においてファイルが位置するノードを検索し、前記ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定し、1つのディレクトリの下のすべてのファイルとサブディレクトリのスキャンが終了した後、前記ディレクトリが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定することを含む。
一実施形態では、現在のウイルススキャンのスキャン進行状況を記録するステップは、
現在のウイルススキャン中に列挙又はトラバースされる各ディレクトリの属性、及びディレクトリがスキャンされたかを、現在のウイルススキャンの終了時にツリー構造によって記録し、現在のウイルススキャン中に列挙又はトラバースされる各ファイルの属性、及びファイルがスキャンされたかを、記録し、スキャンしたファイルがリスクファイルなのかを記録し、また、ファイルがリスクファイルの場合にリスクの名前とファイルのハッシュ値を記録することを含む。
さらに、前記方法は、前記スキャン進行状況に応じて現在のウイルススキャンを開始するステップの後に、
SCANNING FINISHED(スキャン終了)として標識する、ディレクトリが位置するノードの下のすべてのファイルとサブディレクトリを削除することを含む。
また、前記方法は、前記システムの状態を検出するステップの後に、
システム状態がビジーの時、現在のウイルススキャンが開始していない場合に、現在のウイルススキャンのために待機し、現在のウイルススキャンが開始した場合に、現在のウイルススキャンの速度を減らし、また、第1の所定時間内に検出されたシステム状態がすべてビジーの時、現在のウイルススキャンを停止し、現在のウイルススキャンのスキャン進行状況を記録することを含む。
本発明の別の態様では、ウイルススキャン装置は、システムの状態を検出するように構成される検出モジュールと、前記システムの状態がアイドルであることを前記検出モジュールが検出した時、現在のウイルススキャンが開始した場合に、現在のウイルススキャンを続け、現在のウイルススキャンが開始していない場合に、前回のウイルススキャンのスキャン進行状況を取得し、前記スキャン進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録するように構成される第1のスキャンモジュールと、を含む。
一実施形態では、前記検出モジュールは、入力状態またはフルスクリーン状態にあるかを検出し、システムリソースの現在の占有率を検出するように構成される検出ユニットと、入力状態またはフルスクリーン状態にあることを前記検出ユニットが検出した場合、検出されたシステムの状態がビジーであると判定するように構成される第1の判定ユニットと、入力状態またはフルスクリーン状態でないことを前記検出ユニットが検出した場合、検出されたシステムリソースの現在の占有率が所定の占有率よりも大きい時、検出されたシステムの状態がビジーであると判定するように構成される第2の判定ユニットと、入力状態またはフルスクリーン状態でないことを前記検出ユニットが検出した場合、第2の所定時間内に検出されたシステムリソースの現在の占有率が所定の占有率より大きくない時、検出されたシステムの状態がアイドルであると判定するように構成される第3の判定ユニットとを含む。
さらに、その装置は、すべてのハードディスクのパーティションを列挙し、各ノードの属性にそれがファイルなのか、列挙が終了したか、スキャンが終了したかが含まれる、ツリー構造へハードディスクのパーティションを追加するように構成される第1の列挙モジュールと、ハードディスクのパーティションごとのディレクトリ又はファイルのすべてを列挙し、ハードディスクのパーティションにおけるディレクトリ又はファイルをノードとしてツリー構造に追加し、ディレクトリ又はファイルが位置するノードの属性を設定し、スキャンキューに前記ファイルを追加するように構成される第2の列挙モジュールとをさらに、含む。
さらに、前記第2の列挙モジュールは、1つのディレクトリが列挙される時、列挙が終了した場合、ディレクトリが位置するノードの属性をENUMERATION FINISHED(列挙終了)に設定し、前記列挙が未完成の場合、ディレクトリが位置するノードの属性をENUMERATION UNFINISHED(列挙未完成)に設定し、1つのディレクトリの下におけるファイル又はディレクトリをスキャンする時、前記ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが終了した場合、前記ディレクトリが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、前記ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが未完成の場合、前記ディレクトリが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、1つのファイルをスキャンする時、前記ファイルのスキャンが終了した場合、前記ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)に設定し、前記ファイルのスキャンが未完成の場合、前記ファイルが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定するように構成される。
一実施形態では、前記第1のスキャンモジュールは、
前記ツリー構造において深さ優先探索を行い、前記ツリー構造において前記スキャン進行状況に対応するノードに追従し、ノードがスキャンまたは列挙されなかったかをチェックするように構成されるトラバースユニットと、
ノードがスキャンされなかったことを前記トラバースユニットが検知する場合、前記ノードはファイルが位置するノードであるかを判定し、肯定の場合に前記ノードを前記スキャンキューに追加し、それ以外の場合にノードのすべてのサブノードの深さ優先探索を続けるように構成される第1のトラバースサブユニットと、
ノードがまだ列挙されていないことを前記トラバースユニットが検知する場合、ディレクトリが位置するノードを列挙し、ディレクトリが位置するノードの下に列挙されたファイルをスキャンキューに追加し、ディレクトリが位置するノードの下に列挙されたサブディレクトリをツリー構造に追加し、その後、ディレクトリが位置するノードを再帰的にトラバースし、ディレクトリが位置するノードの列挙が終了した後に、ディレクトリが位置するノードをENUMERATION FINISHED(列挙終了)として標識するように構成される第2のトラバースサブユニットと、
スキャン進行状況に応じてスキャンキューにおけるファイルをスキャンし、1つのファイルのスキャンが終了した後、ツリー構造においてファイルが位置するノードを検索し、前記ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定し、1つのディレクトリの下のすべてのファイルとサブディレクトリのスキャンが終了した後、前記ディレクトリが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定するように構成されるスキャンユニットとを含む。
他の実施形態では、前記第1のスキャンモジュールは、さらに、現在のウイルススキャン中に列挙又はトラバースされる各ディレクトリの属性、及びディレクトリがスキャンされたかを、現在のウイルススキャンの終了時に、ツリー構造によって記録し、現在のウイルススキャン中に列挙又はトラバースされる各ファイルの属性、及びファイルがスキャンされたかを記録し、スキャンしたファイルがリスクファイルなのかを記録し、また、ファイルがリスクファイルの場合にリスクの名前とファイルのハッシュ値を記録するように構成される記録ユニットを含む。
さらに別の実施形態では、前記第1のスキャンモジュールは、また、SCANNING FINISHED(スキャン終了)として標識する、ディレクトリが位置するノードの下のすべてのファイルとサブディレクトリを削除するように構成される削除ユニットを含む。
さらに、その装置は、また、システムの状態がビジーであることを前記検出モジュールが検出した時、現在のウイルススキャンが開始していない場合に、現在のウイルススキャンのために待機し、現在のウイルススキャンが開始した場合に、現在のウイルススキャンの速度を減らし、また、第1の所定時間内に検出されたシステム状態がすべてビジーの時、現在のウイルススキャンを停止し、現在のウイルススキャンのスキャン進行状況を記録するように構成される第2のスキャンモジュールを含む。
本発明のさらに別の態様では、非一時的コンピュータ読み取り可能な媒体は、一つ以上のプロセッサによって実行される時に、上記に開示されたウイルススキャン方法を、上記に開示された装置に実行させるための命令を格納する。
以下、本発明の実施形態に係る技術的解決策によって生じた有益な効果は次のとおりである。システムの状態を検出することにより、走査速度を低減するか、又はシステムの状態がビジーである場合にスキャンを停止することができ、システムの状態がアイドルのときにウィルススキャンを実行することにより、ウィルススキャンによるシステムの占有率を調整することができ、ユーザ体験を改善でき、また、不必要なスキャン時間を大幅に削減するように、ウィルススキャン中に前回のスキャンの進行状況に応じてスキャンを継続することができる。
本発明の新規な概念の精神および範囲から逸脱することなく、変形及び変更が影響を受けているが、本発明のこれら及び他の態様は、以下の図面と併せて以下の好ましい実施形態の説明から明らかになるであろう。
本発明の第一の実施例に係るウイルススキャンのための方法のフローチャートである。 本発明の第二の実施例に係るウイルススキャンのための方法のフローチャートである。 本発明の第二の実施例に係るツリー構造の概略図である。 本発明の第三の実施例に係るウイルススキャン装置の概略構成図である。 本発明の第四の実施例に係るウイルススキャン装置の概略構成図である。
添付された図面は、本発明の一つ以上の実施例を説明するためであり、明細書と共に、本発明の原理を解釈することに役立つ。可能な場合、同一又は類似の実施例の要素を参照するために、同一の符号は図面を通して使用される。図面は、本発明をここで開示され記述された具体的な実施形態に限定するものではない。図面は、本発明の原理をスケールし強調するものではなく、その代わりに本発明の原理を明確に説明するためである。
以下の説明は、実質的に例示的なものに過ぎず、その開示、アプリケーション及び使用を限定することを目的としない。その開示の広範な教示をさまざまな形で実施することができる。したがって、その開示が特定の例を含みながら、図面、明細書、及び以下の特許請求の範囲についての研究によって他の変形が明確になるため、その開示の本当の範囲がこのように限定されていない。明瞭のために、同一の符号は、類似した要素を識別するために図面において使用される。
この明細書における用語が、開示された文脈、また、各々の用語が使用される文脈において、一般的に技術上通常の意味で使用される。その開示を記述することに用いられる特定の用語は、開示の記述について実施者にさらなるガイダンスを提供するために、以下で又は明細書において説明する。ここで議論される如何なる用語の例を含む、明細書の如何なる箇所で使用される例は、あくまでも一例であり、如何なる例示的用語又は開示の意味と範囲を限定するものではない。同様に、その開示はこの明細書における各種の実施例に限定されていない。
ここでの明細書及び以下の特許請求の範囲を通して使われるように、コンテキストが明確に指示しない限り、単数のみならず複数の参照を含む。また、ここでの明細書及び以下の特許請求の範囲を通して使われるように、コンテキストが明確に指示しない限り、「内」の意味が「の中」、「の上」を含む。
ここで使われるように、「備える」、「含む」、「有する」、「包含する」、「含有する」などが開放的に含むと理解され、即ち、含むことを意味しながら限定されていないとする。
ここで使われるように、「A, B, 及びCのうちの少なくとも一つ」が非排他的論理和を用いた論理的(A又はB又はC)という意味に解釈される。本開示の原則を変えることなく、一つの方法における一つ以上のステップが異なる順序で(又は並行に)実行されると理解されるべきである。
ここで使われるように、用語「モジュール」は、特定用途向け集積回路(ASIC)、電子回路、組合せ論理回路、フィールドプログラマブルゲートアレイ(FPGA)、コードを実行する(共有、専用またはグループ)プロセッサ、記述された機能を提供する他の適当なハードウェアコンポーネント、または例えば、システムオンチップにおける上記のいくつかまたは全ての組み合わせ、の一部を指すか、または含むことを指す。用語「モジュール」は、プロセッサが実行するコードを格納するメモリ(共有、専用、またはグループ)を含む。
ここで使われるように、用語「コード」は、ソフトウェア、ファームウェア、及び/又はマイクロコードを含み、プログラム、ルーチン、関数、クラス、及び/又はオブジェクトを指す。用語「共有」は、ここで使われるように、複数のモジュールからのいくつかまたはすべてのコードがシングル(共有)プロセッサを使用して実行されることを意味する。また、複数のモジュールからのいくつかまたはすべてのコードがシングル(共有)メモリに記憶される。用語「グループ」として、ここで使われるように、単一のモジュールからのいくつかまたはすべてのコードがプロセッサ群を用いて実行されることを意味する。また、単一のモジュールからのいくつかまたはすべてのコードがメモリ群を用いて格納される。
ここで記述されるシステム及び方法は、一つ以上のプロセッサが実行する一つ以上のコンピュータプログラムによって実現される。コンピュータプログラムは、非一時的な具体的なコンピュータ読み取り可能な媒体に格納されるプロセッサ実行可能な命令を含む。コンピュータプログラムは、また、格納されたデータを含む。非一時的な具体的なコンピュータ読み取り可能な記録媒体の非制限的な例として、不揮発性メモリ、磁気記憶装置、及び光記憶装置である。
添付の図面1〜5と関連付けて本発明の実施例を説明する。ここで記述される具体的な実施例は、本発明を説明することのみを目的とし、本発明を限定することを目的としないと理解されるべきものである。本発明の目的に従って、ここで具体化し広く説明するように、本発明は、1つのアスペクトにおいて、ウイルススキャンのための方法と装置、一つ以上のプロセッサにより実行されるときに、ウイルススキャン実行のための方法を装置に実行させる命令を格納する非一時的なコンピュータ読み取り可能な媒体に関する。
第1の実施例
図1を参照し、本発明の第1実施例によるウイルススキャン方法を概略的に示す。その方法は、以下のステップを含む。
ステップ101において、システムの状態を検出する。
ここでは、システムとは、端末(携帯電話やコンピュータなど)におけるハードウェアおよびソフトウェアリソースのすべてに対して管理や制御を行うためのプログラムモジュールのセットを指すものとする。これに対応して、システムの状態とは、システムにおけるプログラムモジュールの動作時に発生する種々の状況を指すものとする。
一般的には、システムの状態は、システムにおけるプログラムモジュールの動作中のシステムリソースへの占有によるビジー状態とアイドル状態を含む。例えば、システムリソースの現在の占有率が所定の占有率よりも大きい場合、当時のシステムの状態はビジー状態として定義することができ、システムリソースの現在の占有率が所定の占有率よりも少ない場合には、当時のシステムの状態をアイドル状態として定義することができる。
ステップ102において、システム状態が忙しい時には、現在のウイルススキャンが開始していない場合に、現在のウイルススキャンのために待機し、現在のウイルススキャンが開始した場合に、現在のウイルススキャンの速度を減らし、第1の所定時間内に検出されたシステム状態がすべて忙しい時には、現在のウイルススキャンを停止し、現在のウイルススキャンのスキャン進行状況を記録する。
ステップ103において、システム状態がアイドル状態の時には、現在のウイルススキャンが開始した場合に、現在のウイルススキャンを続け、現在のウイルススキャンを開始しない場合に、前回のウイルススキャンのスキャン進行状況を取得し、そのスキャン進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録する。
要するに、本発明の第1実施例によるウイルススキャンのための方法は、システム状態に応じてスキャン進行状況を調整することができ、前回のスキャン進行状況からウイルススキャンを続けることができることにより、ユーザー体験を改善しながら、ウイルススキャンの時間を大幅に減らす。
第2の実施例
図2を参照し、本発明の第2実施例によるウイルススキャン方法を概略的に示す。その方法は、以下のステップを含む。
ステップ201において、すべてのハードディスクのパーティションを列挙し、ツリー構造へハードディスクのパーティションを追加する。そのツリー構造の各ノードの属性には、それがファイルなのか、列挙が終了したか、スキャンが終了したかが含まれる。
順次にウイルススキャンし、中断時に継続的なウイルススキャンを確実にするために、ウイルススキャンの前にスキャンキューを取得する必要がある。また、スキャンキューを取得するために、最初にパーティションにおけるファイルとディレクトリを列挙する必要がある。この実施例では、スキャン時間を短縮するために、ウイルススキャンは、ウイルススキャン中にスキャンと列挙を同時に行うことによって実行される。
この実施例では、スキャンの進行状況を保存するためにツリー構造を提供する。このように、ウイルススキャンの前に、最初にすべてのハードディスクのパーティションを列挙し、ツリー構造にハードディスクのパーティションを追加する必要がある。列挙の進行状況とスキャンの進行状況の確定を容易にするために、ツリー構造における各ノードの属性を定義する。スキャンの進行状況と各ノードの列挙の進行状況を記録するために、その属性として、それがファイルなのか、列挙が終了したか、スキャンが終了したかのように定義する。
ハードディスクのパーティションが位置するノードの属性として、例えば、ファイルではなく、列挙がまだ未完成、スキャンがまだ未完成のように、定義する。
ステップ202において、ハードディスクのパーティションごとのディレクトリやファイルのすべてを列挙し、ツリー構造にハードディスクのパーティションにおけるディレクトリやファイルをノードとして追加し、ディレクトリやファイルが位置するノードの属性をセットし、スキャンキューにファイルを追加する。
一般的に、それぞれのパーティションが多くのディレクトリとファイルを含むため、パーティションに対応するノードの下のサブノードにディレクトリとファイルを1つずつ追加する必要がある。例えば、パーティションAがファイルA1とディレクトリA2を含み、ディレクトリA2がファイルA21とディレクトリA22を含む。ファイルA1とディレクトリA2を、パーティションAが位置するノードの2つのサブノードとしてツリー構造に加える必要があり、ファイルA21、ファイルA22を、ディレクトリA2が位置するノードの2つのサブノードとしてツリー構造に加える必要がある。
ディレクトリとファイルがノードとしてツリー構造に追加された場合、ディレクトリとファイルが位置するノードの属性を別々にセットする必要がある。
一般的に、一つのディレクトリが列挙される場合、列挙が終了していれば、ディレクトリが位置するノードの属性がENUMERATION FINISHED(列挙終了)に設定され、列挙が未完成であれば、ディレクトリが位置するノードの属性がENUMERATION UNFINISHED(列挙未完成)に設定される。1つのディレクトリの下におけるファイルやディレクトリがスキャンされる場合、ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが終了していれば、ディレクトリが位置するノードの属性がSCANNING UNFINISHED(列挙未完成)に設定され、ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが未完成であれば、ディレクトリが位置するノードの属性がSCANNING UNFINISHED(列挙未完成)に設定される。1つのファイルをスキャンする場合に、ファイルのスキャンが終了していれば、そのファイルが位置するノードの属性がSCANNING FINISHED(スキャン終了)に設定され、ファイルのスキャンが未完成であれば、そのファイルが位置するノードの属性がSCANNING UNFINISHED(スキャン未完成)に設定される。例えば、ファイルがまだスキャンされていないノードの属性が、ファイルであり、列挙が完成し、スキャンが未完成のように設定される。別の例では、ファイルがスキャンされたノードの属性が、ファイルであり、列挙が完成し、スキャンが完成のように設定される。更なる例では、列挙が完成しスキャンがまだ未完成のディレクトリが位置するノードの属性が、ファイルではなく、列挙が完成し、スキャンがまだ未完成のように設定される。さらにもう一つの例では、列挙がまだ未完成のディレクトリが位置するノードの属性が、ファイルではなく、列挙がまだ未完成であり、スキャンが未完成のように設定される。当然、実際のアプリケーションでは、各ノードの属性が、そのノードが実際にファイルなのか、列挙が終了したか、スキャンが終了したかによって設定される。
確かに、ファイルスキャンを行うためには、スキャキューに列挙されたファイルを常に追加する必要がある。
実際のアプリケーションでは、ウイルスが最初にスキャンされるか、又はスキャンの中断がまだ発生しなかった場合、一般的には、まず、列挙によってスキャンキューを取得するためにステップ201およびステップ202を実行する必要があり、そして、システムは、スキャンキューによってウイルススキャンを行うことができる。スキャン時間を減少させるために、この実施例では、列挙とスキャンを同時に実行する方法を提供する。このように、次のスキャンの間、絶えずスキャンの進行状況に応じてツリー構造をリフレッシュする必要がある。具体的なスキャンプロセスは、ステップ203からステップ211までを参照することができる。
ステップ203において、システムの状態を検出する。
ここでは、システムとは、端末(携帯電話やコンピュータなど)におけるハードウェアおよびソフトウェアリソースのすべてに対して管理と制御を行うためのプログラムモジュールのセットを指すものとする。これに対応して、システムの状態とは、システムにおけるプログラムモジュールの動作時に発生する種々の状況を指すものとする。
一般的には、システムの状態は、システムにおけるプログラムモジュールの動作中のシステムリソースへの占有によるビジー状態とアイドル状態を含む。例えば、システムリソースの現在の占有率が所定の占有率よりも大きい場合、当時のシステムの状態はビジー状態として定義することができ、システムリソースの現在の占有率が所定の占有率よりも少ない場合には、当時のシステムの状態をアイドル状態として定義することができる。
一般的には、システム資源の占有率は、複数のパラメータによって決定される。ここでは、パラメータは、CPU使用状態、メモリ使用状況、ディスク入力/出力の伝送速度は、端末がフルスクリーン状態にあるか、ユーザの入力があるか、を含む。
従って、端末が入力状態またはフルスクリーン状態にあるかを検出することができ、システムリソースの現在の占有率を検出することができる(例えば、CPU使用状態、メモリ使用状況、およびディスク入力/出力の伝送速度を検出することができる)。端末が入力状態またはフルスクリーン状態であれば、検出されたシステムの状態がビジーであると判断される。端末が入力状態またはフルスクリーン状態でなければ、検出されたシステムリソースの現在の占有率(例えば、CPU使用状況、メモリ使用状況によって、ディスク入力/出力の伝送速度によって検出されたシステムリソースの占有率)が所定の占有率よりも大きい場合、検出されたシステムの状態がビジーであると判断される。端末が入力状態またはフルスクリーン状態でなければ、第2の所定時間内に検出されたシステムリソースの現在の占有率(例えば、CPU使用状況、メモリ使用状況によって、ディスク入力/出力の伝送速度によって検出されたシステムリソースの占有率)が所定の占有率より大きくない場合、検出されたシステムの状態がアイドルであると判断される。
当然、パラメータに加えて、いくつかの他の判定条件をシステムリソースの占有率の測定に用いることができる。例えば、システムリソースの現在の占有率は、日の異なる時間によって決定でき、ユーザのコンピュータは昼の時間にアイドルの可能性が高いと考えられる。システムリソースの現在の占有率は、また、多くのシステムリソースを占有する、いくつかのプログラム、いくつかの大規模なプロジェクト、設計プロセス、大規模なゲームなどの統計を取ることによって決定されることができ、これらのプログラムがシステムで実行する時、システムがビジーであると判断される。当然、ユーザが電池を使うことを検出された場合、電池の使用を節約するためにスキャンを休止し、ユーザが3Gネットワークを利用する場合に、ユーザのデータトラフィックを節約するためにスキャンを実行しないものとする。
ステップ204において、システム状態が忙しい時には、現在のウイルススキャンが開始していない場合に、現在のウイルススキャンのために待機し、現在のウイルススキャンが開始した場合に、現在のウイルススキャンの速度を減らし、第1の所定時間内に検出されたシステム状態がすべて忙しい時には、現在のウイルススキャンを停止し、現在のウイルススキャンのスキャン進行状況を記録する。
現在のウイルススキャンを行う前に、システム状態がビジーであることを検出した場合、現在のウイルススキャンを待ち続ける必要があり、すなわち、現在のウイルススキャンは、この時点で始まらない。
ローカルのウイルススキャンが既に進行中である時、システム状態がこの時点で忙しいことを検出した場合、ローカルのウイルススキャンの速度を低減することができ、これにより、現在のウイルススキャンによるシステムの占有を減少させる。そして、システムの状態が連続して検出され、システムの状態が第1所定時間内にすべて忙しい場合、システムにおける他のプログラムがシステムを使っており、高いシステム占有率が必要となり、この時にウイルススキャンを停止させることができ、これにより、ユーザ体験への影響を避ける。
具体的な実施では、第1の所定時間は、端末のいくつかの要因によって決定されることができる。例えば、第1の所定時間が、端末システムにおけるリソースの現在の占有率及びウイルススキャンによるリソースの現在の占有率などの要因によって決定されることができる。
毎回のウイルススキャンの間に又はスキャンの終了後に、ウイルススキャンの進行状況を記録する必要がある。すなわち、スキャンが毎回に終わった後、スキャンの進行状況のツリー構造における各ノード及び各ノードの属性に対応する状態を蓄積し保存する必要がある。
ステップ205において、システム状態がアイドル状態の時には、現在のウイルススキャンが開始した場合に、現在のウイルススキャンを続け、現在のウイルススキャンが開始していない場合に、前回のウイルススキャンのスキャン進行状況を取得する。
システム状態がアイドルであることが検出される時、また、同時に現在のウイルススキャンが実行されている場合、現在のウイルススキャンを続ける。
システム状態がアイドルであることが検出される時、現在のウイルススキャンが開始していない場合、現在のウイルススキャンで使用するために前のウイルススキャンの進行状況を最初に取得する必要がある。
上記のツリー構造によれば、毎回のスキャンの間にスキャン進行状況で列挙やスキャンしたファイルとディレクトリの全ての属性が記録され、このように、スキャン進行状況(例えば、そこに記録されたスキャンしたファイル)がスキャンが終了する時にスキャンキューにおいて最終にスキャンしたファイルの位置として理解される。
ステップ206において、ツリー構造において深さ優先探索を行い、ノードが、ツリー構造におけるスキャン進行状況に対応するノードに追従し、スキャンまたは列挙されなかったかをチェックする。
毎回のスキャンの終了後にスキャン状態とスキャン進行状況が記録され、すなわち、毎回のスキャンの終了時にツリー構造を保存するため、次のスキャンの開始時にツリー構造の内容を最初に読む必要がある。
読んだ後に、ツリー構造における深さ優先探索を行い、前回のスキャンにおける終了位置に対応するファイルに従ってツリー構造におけるファイルに対応するノードを見つけ、ツリー構造におけるノードに追従しスキャンまたは列挙がまだ未完成のノードがあるかをチェックする。ここでは、ノードのスキャンまたは列挙が終了したについてノードの属性によって決定される。
図3を参照し、図3におけるノードAとノードBは、パーティションA及びパーティションBをそれぞれ表す。そのうち、パーティションAはファイルA1とディレクトリA2を含み、ディレクトリA2はファイルA21とディレクトリA22を含む。パーティションBはディレクトリB1とファイルB2を含み、ディレクトリB1 はファイルB11とディレクトリB12を含む。前回のスキャンの終了位置がファイルA21である場合、この時点でのノードA2の属性によって、ディレクトリA2にはまだスキャンされなかったファイルやディレクトリがまたあることを判定することができ、当然、ノードB1とノードB2の属性によってその列挙が完成したかについて判定することができる。
深さ優先探索について、当業者が理解し実行することができるため、ここで説明を繰り返さない。
ステップ207において、ノードがスキャンされなかった場合、そのノードはファイルが位置するノードであるかを判定する。Yesの場合、ノードをスキャンキューに加え、それ以外の場合、ノードのすべてのサブノードへの深さ優先探索を続ける。
スキャンキューが、前回のスキャンが終了した後に記録されたスキャンキューで、スキャンの間に絶え間ない列挙とスキャンによって、新たに列挙されたファイルがスキャンキューに常に追加される。
また、図3を参照し、この時点でのスキャンキューが順次に配置されたファイルA1とファイルA21だけを含む場合、スキャンキューにおいてファイルA21の後にファイルA22を追加する必要がある。その後のチェックと列挙の間、スキャンキューにおいてファイルA21の後にファイルB11、ファイルB12、ファイルB2を順次に追加する可能性もある。
ステップ208において、ノードがまだ列挙されていない場合、ディレクトリが位置するノードを列挙し、ディレクトリが位置するノードの下に列挙されたファイルをスキャンキューに追加し、ディレクトリが位置するノードの下に列挙されたサブディレクトリをツリー構造に追加し、そして、ディレクトリが位置するノードを再帰的にトラバースし、ディレクトリが位置するノードの列挙が終了した後に、ディレクトリが位置するノードをENUMERATION FINISHED(列挙終了)として標識する。
即ち、ノードが列挙されなかった場合、それは、そのノードがディレクトリが位置するノードであることを示し、この時点でディレクトリが位置するノードを列挙し、ディレクトリが位置するノードの下のファイルをスキャンキューに追加し、ディレクトリが位置するノードの下に列挙されたサブディレクトリをツリー構造に追加し、サブディレクトリの列挙を続け、ディレクトリが位置するノードが処理されるようにサブディレクトリの処理を続ける必要がある。ディレクトリが位置するノードの再帰的トラバースを通じて、ディレクトリが位置するノードの列挙が終了した後にディレクトリが位置するノードをENUMERATION FINISHED(列挙終了)として標識する。
ここでの再帰的トラバースは以下の通りである。具体的な実施においては、以下のように実行できるファンクションは、ディレクトリのために最初に定義される。スキャンキューにディレクトリの下のファイルを追加し、ディレクトリが位置するノードの下に列挙したサブディレクトリをツリー構造に追加し、そして、ディレクトリの下の全てのサブディレクトリは、ディレクトリのための列挙を実行するようにファンクションを呼び出す。
再帰的トラバースについては、当業者が理解し実行することができ、また、本発明の発明のポイントとしないため、ここでその説明を繰り返さない。
ステップ209において、スキャンの進行状況に応じてスキャンキュー内のファイルをスキャンする。
実際のアプリケーションでは、ファイルをスキャンする間、最低のスキャン速度を確保するために、一つのファイルは複数のユニットに分割できる。各ユニットをスキャンする時、最初にシステム状態を判定し、システムがアイドルの場合にユニットをスキャンし、ユニットのスキャンの終了時に次のユニットに対してスキャンを行う。システム状態がビジーの場合、一定の時間を待ってから、システムの状態への判定を続け、システムがビジーであれば、待ち続け、システムが第1の所定時間を待機した後システムがまだ忙しい場合、ユニットのスキャンを終了し、次のユニットのスキャンを実行する。
スキャンの間、ファイルやディレクトリの属性を常に設定する必要がある。例えば、1つのファイルのスキャンが終了した後、ツリー構造においてファイルが位置するノードを検索し、ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定し、1つのディレクトリの下のすべてのファイルとサブディレクトリのスキャンが終了した後、ディレクトリが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定する。
ステップ210では、現在のウイルススキャンのスキャン進行状況を記録する。
スキャンと列挙のプロセスでツリー構造における各ノードの属性を設定し標識するため、現在のウイルススキャン中に列挙又はトラバースされる各ディレクトリの属性、及びそのディレクトリがスキャンされたかは、スキャンの終了時にツリー構造によって記録することができる。現在のウイルススキャン中に列挙又はトラバースされる各ファイルの属性、及びそのファイルがスキャンされたかを、記録することができる。スキャンしたファイルがリスクファイルなのかを記録することができる。また、ファイルがリスクファイルの場合、リスクの名前とファイルのハッシュ値を記録する。
実際のアプリケーションでは、より多くのファイルやディレクトリを列挙し、ツリー構造もより大きくなり、より大きなメモリを占有する。これにより、メモリの占有率を低減するために、一般的に、SCANNING FINISHED(スキャン終了)として標識する、ディレクトリが位置するノードの下のすべてのファイルとサブディレクトリを削除する。
結論として、本発明の第2の実施形態に係るウイルススキャン方法は、システムの状態に応じてスキャンの進行状況を調整することができ、前回のスキャンの進行状況からウイルススキャンを続けることができるため、ウイルススキャン時間を大幅に減少しながら、ユーザ体験を改善することができる。
第3の実施例
図4を参照し、本発明の第3の実施形態に係るウイルススキャン装置を概略的に示す。ウイルススキャン装置は、上記のシステムにおけるプログラムモジュールや、上記に定義されたシステム状態を検出し、ウイルススキャンを実行し、その状態に応じて端末ハードディスク内のファイルやディレクトリを削除することができる装置である。その装置は検出モジュール410と、第1のスキャンモジュール420と、第2のスキャンモジュール430とを含む。
検出モジュール410は、システムの状態を検出するように構成される。
第1のスキャンモジュール420は、検出モジュールによりシステム状態がアイドルであることが検出されたとき、現在のウイルススキャンが開始した場合、現在のウイルススキャンを続け、また、現在のウイルススキャンが開始していない場合、前回のウイルススキャンのスキャン進行状況を取得し、そのスキャン進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録するように構成される。
第2のスキャンモジュール430は、検出モジュールによりシステムの状態がビジーであることが検出された場合、現在のウイルススキャンが開始していない場合、現在のウイルススキャンのために待機し、現在のウイルススキャンが開始した場合、現在のウイルススキャンの速度を減らし、また、第1所定時間内に検出されたシステムの状態がすべて忙しい時、現在のウイルススキャンを停止し、現在のウイルススキャンのスキャン進行状況を記録する。
なお、本実施例によるウイルススキャン装置については、ウイルスキャンにおいて、機能モジュールの上記の分割の例で説明するだけに過ぎない。実際のアプリケーションでは、機能の割り当ては、必要とする異なる機能モジュールで行うことができ、即ち、装置の内部構成は、異なる機能モジュールに分割されることによって、上述の機能の全部又は一部を実現する。また、この実施例によるウイルススキャン装置は、第1の実施例に係るウイルススキャン方法に対応する。具体的な実施については、その方法の実施例を参照できるため、ここで説明を繰り返さないこととする。
要するに、本発明の第3実施例に係るウイルススキャン装置は、システムの状態に応じてスキャン進行状況を調整することができ、前回のスキャン進行状況からウイルススキャンを続けることができるため、ウイルススキャンの時間を大幅に減少しながら、ユーザ体験を改善することができる。
第4の実施例
図5を参照し、本発明の第4の実施形態に係るウイルススキャン装置を概略的に示す。ウイルススキャン装置は、上記のシステムにおけるプログラムモジュールや、上記に定義されたシステム状態を検出し、ウイルススキャンを実行し、その状態に応じて端末ハードディスク内のファイルやディレクトリを削除することができる装置である。その装置は第1の列挙モジュール510と、第2の列挙モジュール520と、検出モジュール530と、第1のスキャンモジュール540と、第2のスキャンモジュール550とを含む。
第1の列挙モジュール510は、すべてのハードディスクのパーティションを列挙し、ツリー構造にハードディスクのパーティションを追加するように構成される。ツリー構造の各ノードの属性には、それがファイルなのか、列挙が終了したか、スキャンが終了したかが含まれる。
第2の列挙モジュール520は、それぞれのハードディスクパーティションにおけるすべてのディレクトリ又はファイルを列挙し、パーティションにおけるディレクトリやファイルをツリー構造にノードとして追加し、ディレクトリ又はファイルが位置するノードの属性を設定し、スキャンキューにそのファイルを追加するように構成される。
検出モジュール530は、システムの状態を検出するように構成される。
検出モジュール530は、検出ユニット531と、第1の判定ユニット532と、第2の判定ユニット533と、第3の判定ユニット534とを含む。
検出ユニット531は、入力状態又はフルスクリーン状態にあるかを検出し、システムリソースの現在の占有率を検出するように構成される。
第1の判定ユニット532は、上記検出ユニットにより入力状態又はフルスクリーン状態にあることが検出された場合、検出されたシステムの状態がビジーであると判定するように構成される。
第2の判定ユニット533は、上記検出ユニットにより入力状態やフルスクリーン状態ではないことが検出された場合、検出されたシステムリソースの現在の占有率が所定の占有率よりも大きい場合、検出されたシステムの状態がビジーであると判定するように構成される。
第3の判定ユニット534は、上記検出ユニットにより入力状態やフルスクリーン状態ではないことが検出された場合、第2の所定時間内に検出されたシステムリソースの現在の占有率が所定の占有率よりも大きくない場合、検出されたシステムの状態がアイドルであると判定するように構成される。
第1のスキャンモジュール540は、検出モジュール530によりシステム状態がアイドルであることが検出された時、現在のウイルススキャンが開始した場合、現在のウイルススキャンを続け、また、現在のウイルススキャンが開始していない場合、前回のウイルススキャンのスキャン進行状況を取得し、そのスキャンの進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録するように構成される。
第1のスキャンモジュール540は、トラバースユニット541と、第1のトラバースサブユニット542と、第2のトラバースサブユニット543と、スキャンユニット544とを含む。
トラバースユニット541は、ツリー構造において深さ優先探索を実行し、ツリー構造においてスキャンの進行状況に対応するノードに追従し、ノードがスキャンまたは列挙されなかったかをチェックするように構成される。
第1のトラバースサブユニット542は、ノードがスキャンされなかったことをトラバースユニットが検知した時、そのノードがファイルの位置するノードであるかを判定し、肯定の場合にそのノードをスキャンキューに加えて、それ以外の場合にそのノードのすべてのサブノードに対して深さ優先探索を続けるように構成される。
第2のトラバースサブユニット543は、ノードがまだ列挙されていないことをトラバースユニットが検知した時、ディレクトリが位置するノードを列挙し、ディレクトリが位置するノードの下に列挙されたファイルをスキャンキューに追加し、ディレクトリが位置するノードの下に列挙されたサブディレクトリをツリー構造に追加し、そして、ディレクトリが位置するノードを再帰的にトラバースし、ディレクトリが位置するノードの列挙が終了した後に、ディレクトリが位置するノードをENUMERATION FINISHED(列挙終了)として標識するように構成される。
スキャンユニット544は、スキャンの進行状況に応じてスキャンキュー内のファイルをスキャンするように構成される。
また、第1のスキャンモジュール540は、記録ユニット545と削除ユニット546を更に含む。
記録ユニット545は、現在のウイルススキャン中に列挙又はトラバースされた各ディレクトリの属性、及びそのディレクトリがスキャンされたかを、現在のウイルススキャンの終了時に、ツリー構造に対応し記録し、現在のウイルススキャン中に列挙又はトラバースされる各ファイルの属性、及びそのファイルがスキャンされたかを記録し、スキャンしたファイルがリスクファイルなのかを記録し、また、ファイルがリスクファイルの場合にリスクの名前とファイルのハッシュ値を記録するように構成される。
削除ユニット546は、SCANNING FINISHED(スキャン終了)として標識する、ディレクトリが位置するノードの下のすべてのファイルとサブディレクトリを削除するように構成される。
第2のスキャンモジュール550は、システム状態が忙しいことを検出モジュール530が検知した時に、現在のウイルススキャンが開始していない場合に、現在のウイルススキャンのために待機し、現在のウイルススキャンが開始した場合に、現在のウイルススキャンの速度を減らし、第1の所定時間内に検出されたシステム状態がすべて忙しい時に、現在のウイルススキャンを停止し、現在のウイルススキャンのスキャン進行状況を記録するように構成される。
なお、本実施例によるウイルススキャン装置については、ウイルスキャンにおいて、機能モジュールの上記の分割の例で説明するだけに過ぎない。実際のアプリケーションでは、機能の割り当ては、必要とする異なる機能モジュールで行うことができ、即ち、装置の内部構成は、異なる機能モジュールに分割されることによって、上述の機能の全部又は一部を実現する。また、この実施例によるウイルススキャン装置は、第2の実施例に係るウイルススキャン方法に対応する。具体的な実施については、その方法の実施例を参照できるため、ここで説明を繰り返さないこととする。
要するに、本発明の第4実施例に係るウイルススキャン装置は、システムの状態に応じてスキャン進行状況を調整することができ、前回のスキャン進行状況からウイルススキャンを続けることができるため、ウイルススキャンの時間を大幅に減少しながら、ユーザ体験を改善することができる。
本発明の上記実施例のシーケンス番号が説明の利便性のみのためであり、実施例に対する好みを暗示しないとする。
なお、本発明の実施例によるすべてまたは一部のステップは、、ハードウェアまたは関連したハードウェアを指示するプログラムによって実行される。本発明の更に別の態様は、コンピュータ実行可能な命令またはプログラムコードを記憶する非一時的なコンピュータ読み込み可能な記憶媒体を提供する。コンピュータ実行可能な命令またはプログラムコードが、コンピュータまたは類似したコンピューティング装置をウイルススキャン方法での各種の操作を完了するのを可能にする。記憶媒体は、磁気ディスク、光ディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ランダムメモリ(RAM)、フラッシュ・ダイブなどを含むが、これらに限らない。
以上、本発明の典型的な実施例に対する上記の説明は、図示および説明の目的だけのために提示されるとし、本発明を正確な形に制限又は徹底することを意図していないものである。上記の教示に応じて多くの変更および改善が可能である。
上記の実施形態は、意図する特定の用途に適するように、他の当業者をアクティブし、種々の変形とともに本発明及び様々な実施形態を利用するするように、本発明およびその実際の適用の原理を説明するために、選択され説明された。代替的な実施形態は、本発明がその精神および範囲から逸脱することなく属する分野の当業者にとって明らかになるであろう。従って、本発明の範囲は、前述の説明およびそこに記載された例示的な実施形態ではなく、添付の特許請求の範囲によって定義される。

Claims (11)

  1. システムの状態を検出し、
    システム状態がアイドルの時に、現在のウイルススキャンが開始した場合に、現在のウイルススキャンを続け、現在のウイルススキャンが開始していない場合に、前回のウイルススキャンのスキャン進行状況を取得し、取得されたスキャン進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録することを含み、
    前記システムの状態を検出するステップは、
    前記システムが入力状態またはフルスクリーン状態にあるかを検出し、システムリソースの現在の占有率を検出し、
    前記システムが入力状態またはフルスクリーン状態である場合、検出されたシステムの状態がビジーであると判定し、
    前記システムが入力状態またはフルスクリーン状態でない場合、検出されたシステムリソースの現在の占有率が所定の占有率よりも大きい時、検出されたシステムの状態がビジーであると判定し、
    前記システムが入力状態またはフルスクリーン状態でない場合、第2の所定時間内に検出されたシステムリソースの現在の占有率が所定の占有率より大きくない時、検出されたシステムの状態がアイドルであると判定することを含むことを特徴とする
    ウイルススキャン方法。
  2. すべてのハードディスクのパーティションを列挙し、ツリー構造の各ノードの属性にそれがファイルなのか、列挙が終了したか、スキャンが終了したかが含まれる、前記ツリー構造へハードディスクのパーティションを追加し、
    ハードディスクのパーティションごとのディレクトリ又はファイルのすべてを列挙し、ハードディスクのパーティションにおけるディレクトリ又はファイルをノードとしてツリー構造に追加し、ディレクトリ又はファイルが位置するノードの属性を設定し、スキャンキューに前記ファイルを追加し、
    システムの状態を検出し、
    システム状態がアイドルの時に、現在のウイルススキャンが開始した場合に、現在のウイルススキャンを続け、現在のウイルススキャンが開始していない場合に、前回のウイルススキャンのスキャン進行状況を取得し、取得されたスキャン進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録することを含み、
    ディレクトリ又はファイルが位置するノードの属性を設定するステップは、
    1つのディレクトリが列挙される時、列挙が終了した場合、ディレクトリが位置するノードの属性をENUMERATION FINISHED(列挙終了)に設定し、前記列挙が未完成の場合、ディレクトリが位置するノードの属性をENUMERATION UNFINISHED(列挙未完成)に設定し、
    1つのディレクトリの下におけるファイル又はディレクトリをスキャンする時、前記ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが終了した場合、前記ディレクトリが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、前記ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが未完成の場合、前記ディレクトリが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、
    1つのファイルをスキャンする時、前記ファイルのスキャンが終了した場合、前記ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)に設定し、前記ファイルのスキャンが未完成の場合、前記ファイルが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定することを含み、
    前記スキャン進行状況に応じて現在のウイルススキャンを開始するステップは、
    前記ツリー構造において深さ優先探索を行い、前記ツリー構造において前記スキャン進行状況に対応するノードに追従し、ノードがスキャンまたは列挙されなかったかをチェックし、
    ノードがスキャンされなかった場合、前記ノードはファイルが位置するノードであるかを判定し、肯定の場合に前記ノードを前記スキャンキューに追加し、それ以外の場合に前記ノードのすべてのサブノードの深さ優先探索を続け、
    ノードがまだ列挙されていない場合、ディレクトリが位置するノードを列挙し、ディレクトリが位置するノードの下に列挙されたファイルをスキャンキューに追加し、ディレクトリが位置するノードの下に列挙されたサブディレクトリをツリー構造に追加し、その後、ディレクトリが位置するノードを再帰的にトラバースし、ディレクトリが位置するノードの列挙が終了した後に、ディレクトリが位置するノードをENUMERATION FINISHED(列挙終了)として標識し、
    スキャン進行状況に応じてスキャンキューにおけるファイルをスキャンし、
    1つのファイルのスキャンが終了した後、ツリー構造においてファイルが位置するノードを検索し、前記ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定し、1つのディレクトリの下のすべてのファイルとサブディレクトリのスキャンが終了した後、前記ディレクトリが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定することを含むことを特徴とする
    ウイルススキャン方法。
  3. 現在のウイルススキャンのスキャン進行状況を記録するステップは、
    現在のウイルススキャン中に列挙又はトラバースされる各ディレクトリの属性、及びディレクトリがスキャンされたかを、現在のウイルススキャンの終了時にツリー構造によって記録し、現在のウイルススキャン中に列挙又はトラバースされる各ファイルの属性、及びファイルがスキャンされたかを、記録し、スキャンしたファイルがリスクファイルなのかを記録し、また、ファイルがリスクファイルの場合にリスクの名前とファイルのハッシュ値を記録することを含むことを特徴とする
    請求項2に記載のウイルススキャン方法。
  4. 前記スキャン進行状況に応じて現在のウイルススキャンを開始するステップの後に、さらに、
    SCANNING FINISHED(スキャン終了)として標識する、ディレクトリが位置するノードの下のすべてのファイルとサブディレクトリを削除することを含むことを特徴とする
    請求項2に記載のウイルススキャン方法。
  5. システムの状態を検出するように構成される検出モジュールと、
    前記システムの状態がアイドルであることを前記検出モジュールが検出した時、現在のウイルススキャンが開始した場合に、現在のウイルススキャンを続け、現在のウイルススキャンが開始していない場合に、前回のウイルススキャンのスキャン進行状況を取得し、前記スキャン進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録するように構成される第1のスキャンモジュールと、を含み、
    前記検出モジュールは、
    前記システムが入力状態またはフルスクリーン状態にあるかを検出し、システムリソースの現在の占有率を検出するように構成される検出ユニットと、
    前記システムが入力状態またはフルスクリーン状態にあることを前記検出ユニットが検出した場合、検出されたシステムの状態がビジーであると判定するように構成される第1の判定ユニットと、
    前記システムが入力状態またはフルスクリーン状態でないことを前記検出ユニットが検出した場合、検出されたシステムリソースの現在の占有率が所定の占有率よりも大きい時、検出されたシステムの状態がビジーであると判定するように構成される第2の判定ユニットと、
    前記システムが入力状態またはフルスクリーン状態でないことを前記検出ユニットが検出した場合、第2の所定時間内に検出されたシステムリソースの現在の占有率が所定の占有率より大きくない時、検出されたシステムの状態がアイドルであると判定するように構成される第3の判定ユニットとを含むことを特徴とする
    ウイルススキャン装置。
  6. すべてのハードディスクのパーティションを列挙し、ツリー構造の各ノードの属性にそれがファイルなのか、列挙が終了したか、スキャンが終了したかが含まれる、前記ツリー構造へハードディスクのパーティションを追加するように構成される第1の列挙モジュールと、
    ハードディスクのパーティションごとのディレクトリ又はファイルのすべてを列挙し、ハードディスクのパーティションにおけるディレクトリ又はファイルをノードとしてツリー構造に追加し、ディレクトリ又はファイルが位置するノードの属性を設定し、スキャンキューに前記ファイルを追加するように構成される第2の列挙モジュールと、を含み、
    システムの状態を検出するように構成される検出モジュールと、
    前記システムの状態がアイドルであることを前記検出モジュールが検出した時、現在のウイルススキャンが開始した場合に、現在のウイルススキャンを続け、現在のウイルススキャンが開始していない場合に、前回のウイルススキャンのスキャン進行状況を取得し、前記スキャン進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録するように構成される第1のスキャンモジュールと、を含み、
    前記第2の列挙モジュールは、さらに、
    1つのディレクトリが列挙される時、列挙が終了した場合、ディレクトリが位置するノードの属性をENUMERATION FINISHED(列挙終了)に設定し、前記列挙が未完成の場合、ディレクトリが位置するノードの属性をENUMERATION UNFINISHED(列挙未完成)に設定し、
    1つのディレクトリの下におけるファイル又はサブディレクトリをスキャンする時、前記ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが終了した場合、前記ディレクトリが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、前記ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが未完成の場合、前記ディレクトリが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、
    1つのファイルをスキャンする時、前記ファイルのスキャンが終了した場合、前記ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)に設定し、前記ファイルのスキャンが未完成の場合、前記ファイルが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定するように構成され、
    前記第1のスキャンモジュールは、
    前記ツリー構造において深さ優先探索を行い、前記ツリー構造において前記スキャン進行状況に対応するノードに追従し、ノードがスキャンまたは列挙されなかったかをチェックするように構成されるトラバースユニットと、
    ノードがスキャンされなかったことを前記トラバースユニットが検知する場合、前記ノードはファイルが位置するノードであるかを判定し、肯定の場合に前記ノードを前記スキャンキューに追加し、それ以外の場合にノードのすべてのサブノードの深さ優先探索を続けるように構成される第1のトラバースサブユニットと、
    ノードがまだ列挙されていないことを前記トラバースユニットが検知する場合、ディレクトリが位置するノードを列挙し、ディレクトリが位置するノードの下に列挙されたファイルをスキャンキューに追加し、ディレクトリが位置するノードの下に列挙されたサブディレクトリをツリー構造に追加し、その後、ディレクトリが位置するノードを再帰的にトラバースし、ディレクトリが位置するノードの列挙が終了した後に、ディレクトリが位置するノードをENUMERATION FINISHED(列挙終了)として標識するように構成される第2のトラバースサブユニットと、
    スキャン進行状況に応じてスキャンキューにおけるファイルをスキャンし、1つのファイルのスキャンが終了した後、ツリー構造においてファイルが位置するノードを検索し、前記ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定し、1つのディレクトリの下のすべてのファイルとサブディレクトリのスキャンが終了した後、前記ディレクトリが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定するように構成されるスキャンユニットとを含む、ことを特徴とする
    ウイルススキャン装置。
  7. 前記第1のスキャンモジュールは、さらに、
    現在のウイルススキャン中に列挙又はトラバースされる各ディレクトリの属性、及びディレクトリがスキャンされたかを、現在のウイルススキャンの終了時に、ツリー構造によって記録し、現在のウイルススキャン中に列挙又はトラバースされる各ファイルの属性、及びファイルがスキャンされたかを記録し、スキャンしたファイルがリスクファイルなのかを記録し、また、ファイルがリスクファイルの場合にリスクの名前とファイルのハッシュ値を記録するように構成される記録ユニットを含むことを特徴とする
    請求項6に記載のウイルススキャン装置。
  8. 前記第1のスキャンモジュールは、さらに、
    SCANNING FINISHED(スキャン終了)として標識する、ディレクトリが位置するノードの下のすべてのファイルとサブディレクトリを削除するように構成される削除ユニットを含むことを特徴とする
    請求項6に記載のウイルススキャン装置。
  9. システムの状態を検出し、
    システム状態がアイドルの時に、現在のウイルススキャンが開始した場合に、現在のウイルススキャンを続け、現在のウイルススキャンが開始していない場合に、前回のウイルススキャンのスキャン進行状況を取得し、取得されたスキャン進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録することを含むウイルススキャン方法を、一つ以上のプロセッサによって実行される時に装置に実行させるための命令を格納し、
    前記システムの状態を検出するステップは、
    前記システムが入力状態またはフルスクリーン状態にあるかを検出し、システムリソースの現在の占有率を検出し、
    前記システムが入力状態またはフルスクリーン状態である場合、検出されたシステムの状態がビジーであると判定し、
    前記システムが入力状態またはフルスクリーン状態でない場合、検出されたシステムリソースの現在の占有率が所定の占有率よりも大きい時、検出されたシステムの状態がビジーであると判定し、
    前記システムが入力状態またはフルスクリーン状態でない場合、第2の所定時間内に検出されたシステムリソースの現在の占有率が所定の占有率より大きくない時、検出されたシステムの状態がアイドルであると判定することを含むことを特徴とする
    非一時的コンピュータ読み取り可能な媒体。
  10. システムの状態を検出し、
    システム状態がアイドルの時に、現在のウイルススキャンが開始した場合に、現在のウイルススキャンを続け、現在のウイルススキャンが開始していない場合に、前回のウイルススキャンのスキャン進行状況を取得し、取得されたスキャン進行状況に応じて現在のウイルススキャンを開始し、現在のウイルススキャンのスキャン進行状況を記録することを含むウイルススキャン方法を、一つ以上のプロセッサによって実行される時に装置に実行させるための命令を格納し、
    前記方法は、
    すべてのハードディスクのパーティションを列挙し、ツリー構造の各ノードの属性にそれがファイルなのか、列挙が終了したか、スキャンが終了したかが含まれる、前記ツリー構造へハードディスクのパーティションを追加し、
    ハードディスクのパーティションごとのディレクトリ又はファイルのすべてを列挙し、ハードディスクのパーティションにおけるディレクトリ又はファイルをノードとしてツリー構造に追加し、ディレクトリ又はファイルが位置するノードの属性を設定し、スキャンキューに前記ファイルを追加することを含み
    ィレクトリ又はファイルが位置するノードの属性を設定するステップは、
    1つのディレクトリが列挙される時、列挙が終了した場合、ディレクトリが位置するノードの属性をENUMERATION FINISHED(列挙終了)に設定し、前記列挙が未完成の場合、ディレクトリが位置するノードの属性をENUMERATION UNFINISHED(列挙未完成)に設定し、
    1つのディレクトリの下におけるファイル又はディレクトリをスキャンする時、前記ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが終了した場合、前記ディレクトリが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、前記ディレクトリの下におけるすべてのファイルとサブディレクトリのスキャンが未完成の場合、前記ディレクトリが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、
    1つのファイルをスキャンする時、前記ファイルのスキャンが終了した場合、前記ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)に設定し、前記ファイルのスキャンが未完成の場合、前記ファイルが位置するノードの属性をSCANNING UNFINISHED(スキャン未完成)に設定し、
    前記スキャン進行状況に応じて現在のウイルススキャンを開始するステップは、
    前記ツリー構造において深さ優先探索を行い、前記ツリー構造において前記スキャン進行状況に対応するノードに追従し、ノードがスキャンまたは列挙されなかったかをチェックし、
    ノードがスキャンされなかった場合、前記ノードはファイルが位置するノードであるかを判定し、肯定の場合に前記ノードを前記スキャンキューに追加し、それ以外の場合に前記ノードのすべてのサブノードの深さ優先探索を続け、
    ノードがまだ列挙されていない場合、ディレクトリが位置するノードを列挙し、ディレクトリが位置するノードの下に列挙されたファイルをスキャンキューに追加し、ディレクトリが位置するノードの下に列挙されたサブディレクトリをツリー構造に追加し、その後、ディレクトリが位置するノードを再帰的にトラバースし、ディレクトリが位置するノードの列挙が終了した後に、ディレクトリが位置するノードをENUMERATION FINISHED(列挙終了)として標識し、
    スキャン進行状況に応じてスキャンキューにおけるファイルをスキャンし、
    1つのファイルのスキャンが終了した後、ツリー構造においてファイルが位置するノードを検索し、前記ファイルが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定し、1つのディレクトリの下のすべてのファイルとサブディレクトリのスキャンが終了した後、前記ディレクトリが位置するノードの属性をSCANNING FINISHED(スキャン終了)として設定することを含むことを特徴とする
    非一時的コンピュータ読み取り可能な媒体。
  11. 現在のウイルススキャンのスキャン進行状況を記録するステップは、
    現在のウイルススキャン中に列挙又はトラバースされる各ディレクトリの属性、及びディレクトリがスキャンされたかを、現在のウイルススキャンの終了時にツリー構造によって記録し、現在のウイルススキャン中に列挙又はトラバースされる各ファイルの属性、及びファイルがスキャンされたかを、記録し、スキャンしたファイルがリスクファイルなのかを記録し、また、ファイルがリスクファイルの場合にリスクの名前とファイルのハッシュ値を記録することを含むことを特徴とする
    請求項10に記載の非一時的コンピュータ読み取り可能な媒体。
JP2014559088A 2012-09-20 2013-08-22 ウイルススキャン方法及びウイルススキャン装置 Active JP5797855B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210351773.5A CN103679022B (zh) 2012-09-20 2012-09-20 病毒扫描方法和装置
CN201210351773.5 2012-09-20
PCT/CN2013/082059 WO2014044109A1 (en) 2012-09-20 2013-08-22 Method and apparatus for virus scanning

Publications (3)

Publication Number Publication Date
JP2015508927A JP2015508927A (ja) 2015-03-23
JP2015508927A5 JP2015508927A5 (ja) 2015-04-30
JP5797855B2 true JP5797855B2 (ja) 2015-10-21

Family

ID=50316532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014559088A Active JP5797855B2 (ja) 2012-09-20 2013-08-22 ウイルススキャン方法及びウイルススキャン装置

Country Status (4)

Country Link
JP (1) JP5797855B2 (ja)
CN (1) CN103679022B (ja)
SG (1) SG11201403137YA (ja)
WO (1) WO2014044109A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104217161B (zh) * 2013-05-30 2016-08-17 腾讯科技(深圳)有限公司 一种病毒扫描方法及系统、终端设备
CN104199894A (zh) * 2014-08-25 2014-12-10 百度在线网络技术(北京)有限公司 一种文件扫描方法及装置
CN105791614B (zh) * 2014-12-24 2019-05-10 深圳Tcl数字技术有限公司 文件扫描方法及终端
CN104778411B (zh) * 2015-04-22 2017-10-27 百度在线网络技术(北京)有限公司 病毒扫描方法和病毒扫描装置
JP6576676B2 (ja) * 2015-04-24 2019-09-18 クラリオン株式会社 情報処理装置、情報処理方法
CN105389509A (zh) * 2015-11-16 2016-03-09 北京奇虎科技有限公司 文件扫描方法及装置
CN107506500A (zh) * 2017-10-09 2017-12-22 郑州云海信息技术有限公司 一种数据迁移的控制方法及相关装置
JP2019168764A (ja) * 2018-03-22 2019-10-03 コニカミノルタ株式会社 画像処理装置及びプログラム
JP7151219B2 (ja) 2018-07-05 2022-10-12 株式会社リコー 組み込み機器、ウィルススキャンプログラム実行方法、プログラム
JP7099165B2 (ja) * 2018-08-20 2022-07-12 コニカミノルタ株式会社 画像形成装置およびウイルスチェック方法
US20220147614A1 (en) * 2019-03-05 2022-05-12 Siemens Industry Software Inc. Machine learning-based anomaly detections for embedded software applications
JP6840799B2 (ja) * 2019-08-21 2021-03-10 フォルシアクラリオン・エレクトロニクス株式会社 情報処理装置、情報処理方法
CN113468119A (zh) * 2021-05-31 2021-10-01 北京明朝万达科技股份有限公司 一种文件扫描方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502815A (en) * 1992-03-30 1996-03-26 Cozza; Paul D. Method and apparatus for increasing the speed at which computer viruses are detected
JPH09190347A (ja) * 1996-01-11 1997-07-22 Oki Electric Ind Co Ltd マイクロコンピュータ装置
US7085934B1 (en) * 2000-07-27 2006-08-01 Mcafee, Inc. Method and system for limiting processor utilization by a virus scanner
JP3986346B2 (ja) * 2002-03-28 2007-10-03 富士通株式会社 処理装置、サーバ、およびプログラム
JP2004328158A (ja) * 2003-04-22 2004-11-18 Nec Infrontia Corp 電話交換装置及びそのウィルスチェック方法
US7472422B1 (en) * 2003-09-10 2008-12-30 Symantec Corporation Security management system including feedback and control
US7540027B2 (en) * 2005-06-23 2009-05-26 International Business Machines Corporation Method/system to speed up antivirus scans using a journal file system
JP5019792B2 (ja) * 2006-06-07 2012-09-05 株式会社Access 携帯端末装置
CN101127061B (zh) * 2006-08-16 2010-05-26 珠海金山软件股份有限公司 可进度预估的防治计算机病毒的装置及进度预估的方法
JP4803536B2 (ja) * 2008-01-08 2011-10-26 Necカシオモバイルコミュニケーションズ株式会社 端末装置および端末装置の処理プログラム
CN101242279B (zh) * 2008-03-07 2010-06-16 北京邮电大学 用于web系统的自动化渗透性测试系统和方法
GB2471716A (en) * 2009-07-10 2011-01-12 F Secure Oyj Anti-virus scan management using intermediate results
GB2502023A (en) * 2011-03-08 2013-11-13 Hewlett Packard Development Co Task control in a computing system

Also Published As

Publication number Publication date
WO2014044109A1 (en) 2014-03-27
JP2015508927A (ja) 2015-03-23
CN103679022A (zh) 2014-03-26
SG11201403137YA (en) 2014-07-30
CN103679022B (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
JP5797855B2 (ja) ウイルススキャン方法及びウイルススキャン装置
US9015841B2 (en) Method and apparatus for virus scanning
US10002023B2 (en) Method and apparatus for managing one or more tasks of a many-core system using one or more task descriptor entries
JP2015508927A5 (ja)
CN107704203B (zh) 聚合大文件的删除方法、装置、设备及计算机存储介质
WO2017173927A1 (zh) 分布式存储系统硬盘挂住故障检测、处理方法及装置
JP5842768B2 (ja) 重複除去装置、重複除去方法及び重複除去プログラム
WO2017028696A1 (zh) 分布式存储系统的负载监控方法及设备
CN104239435A (zh) 一种基于图片缩略处理的分布式图片缓存方法
CN105607986A (zh) 用户行为日志数据采集方法及装置
CN106599091B (zh) 基于键值存储的rdf图结构存储和索引方法
WO2016070529A1 (zh) 一种实现重复数据删除的方法及装置
CN102369511B (zh) 资源迁移方法、装置及系统
CN105045637A (zh) 一种应用启动的方法及终端
WO2016029441A1 (zh) 一种文件扫描方法及装置
CN103377292B (zh) 数据库结果集缓存方法及设备
US10114951B2 (en) Virus signature matching method and apparatus
CN106339183B (zh) 数据检索的方法及服务器
CN110764711B (zh) 一种io数据分类删除方法、装置和计算机可读存储介质
JP2018132948A (ja) 読込プログラム、読込方法および情報処理装置
WO2017177698A1 (zh) 一种清理进程的方法、装置及存储介质
CN110618946A (zh) 堆栈内存分配方法、装置、设备和存储介质
CN103176753A (zh) 存储设备及其数据管理方法
EP2990983A1 (en) Method and apparatus for scanning files
CN104462602A (zh) 具有数据处理功能的文件系统及其使用方法

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20150115

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20150128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150303

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20150303

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20150409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150414

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150819

R150 Certificate of patent or registration of utility model

Ref document number: 5797855

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250