0

AVG を使用していますが、最近ウイルスが検出されました。前にもありましたが(;_;)ですが、初めて気づきました。

ウイルスを含むフォルダに入ると、AVG はアプリケーションをクリックしなくても、すぐにウイルスを自動的に検出しました。それで、ウイルスをクリック(シングルクリック)さえしていなくても、ウイルスがそこにあることをどのように知ることができるのでしょうか。

唯一可能な答えは、すべてのウィンドウのエクスプローラー フォルダーの場所を継続的にチェックし、フォルダー内のすべてのファイルをスキャンすることです。しかし、私が閲覧しているフォルダをどのように確認するのでしょうか?

AVG が行ったことを行う C プログラムで (可能であれば) 説明してください。

また、それが役立つ場合は、Windowsを使用します。

4

2 に答える 2

3

フォルダーを開くと、一連のファイル システム操作が実行されます (FileMonまたはのようなツールを使用ProcMonしてこれを確認できます)。AV ソフトウェアは、ファイル アクセスを監視します。この監視を行うには複数の方法があります。たとえば、フィルター ドライバー- http://www.codeproject.com/Articles/43586/File-System-Filter-Driver-Tutorialで優れたサンプルを見つけることができます。

そのため、ユーザーがフォルダーを開くと、AV ソフトウェアはユーザーがディレクトリを開いたことに気付き、独自のデータを参照して、ウイルスについて通知しました。

AVツールは通常、アクセス時にファイルをスキャンしないため、「独自のデータを調べた」と言います。ファイルが書き込まれているときにスキャンします。 t は最後のスキャン以降に変更されました。

于 2012-09-15T08:25:21.040 に答える
0

ほとんどのウィルス スキャナは、API フック/フィルタの原則に基づいて動作します。フォルダーを開く、ウィンドウをクリックする、ファイルを実行するなど、ウィンドウがコマンドを処理する必要があるときはいつでも、クリックされたウィンドウ座標やファイルを表す文字列などの情報とともに API 呼び出しを生成します。他のプログラムは、基本的に「この関数を実行する代わりに、最初にそれを送ってください。その後、私はそれを送り返すかもしれません」というこれらの関数の 1 つまたは複数へのフックを要求できます。これは、機能するウイルスの数(たとえば、ウイルスの削除やキーストロークのコピーを防止する)、機能するゲーム/アプリの数 (キーボード、ジョイスティック、ドラッグ アンド ドロップ)、およびマルウェア検出器とファイアウォールです。

後者のグループはコマンドをフックし、入ってくるコマンドをチェックしてレベルにあるかどうかを確認し、再開を許可するかブロックします。この例では、フォルダーを開くと syscall がトリガーされてディレクトリが解析され、スキャナーもそれを解析しました (たとえば、「リアルタイム保護」)。フック可能なすべての関数とそれらを使用しているものを表示するには、' sanity check ' (以前は 'ルートキット フック アナライザー' と呼ばれていました) と呼ばれる無料のプログラムを検索します。赤のエントリのほとんどは、Windows ファイアウォールまたは avg からのものであるため、何が見つかるかについてあまり心配する必要はありません。

于 2012-09-15T08:25:13.787 に答える