0

WindowsフォームでC#言語のウイルス対策スキャナーを作成しています。現在のコードを使用して、プログラムはフォルダを開き、その中のファイルのスキャンを開始できます。選択したフォルダが「マイコンピュータ」または「ユーザープロファイル」の場合、多くの例外が表示され、その時点でスキャンが停止します。この問題を解決する方法を教えてください。

例外は次のとおりです。

System.IO.IOExceptionSystem.UnauthorizedAccessExceptionその他多数。

コードの一部を紹介します。画像はこちらから入手できます。ここにコードを貼り付けたかったのですが、私の機関は盗用に対して厳格です。

クリックすると拡大版が表示されます

私の状況を解決するのを手伝ってください。

ありがとうございました

4

1 に答える 1

1

「マイ コンピューター」または「ユーザー プロファイル」はディレクトリではなく、ユーザーが特定の種類の場所にアクセスできるように設計された標準のディレクトリ ツリー ブラウザー コントロールの単なるノードであるため、スキャンできません。

そのようなフォルダーをスキャンできるようにする場合は、フォルダーが選択されたことを検出し、スキャンする場所を列挙する独自のロジックを提供する必要があります。

多少の関係はありますが、このプロジェクトを実際の AV パッケージの代わりとして使用する予定がないことを心から願っています。マルウェア対策システムを構築するのは簡単なことではありません。ブロックする必要がある攻撃の種類を考えるとなおさらです。これが単なる学習目的である場合は問題ありませんが、自作の設計によるセキュリティの向上はわずかでも期待しないでください。適切な AV パッケージには、検出シグネチャ (静的ハッシュ、ファジー ハッシュ、データ パターン) の大規模なデータベース、カーネル モード コンポーネント、メモリ スキャナー、および動作分析が必要です。これをすべて自分で構築するのは困難です。

(ソース: 楽しみのためのプロジェクトとして、自分で書きました!)

于 2012-07-15T15:31:31.027 に答える