web-dev-qa-db-ja.com

C:\ $ Directoryとは何ですか?

Process Monitor を実行すると、ReadFileリクエストがC:\$Directoryに送信されているのがわかります。

これは正確にはどういう意味ですか?


更新:

$MapAttributeValueも表示されますが、これも見慣れないようです。

11
user541686

更新:この問題をさらに調査しました(自分のコンピューターで同じ動作に気づき、これが何らかのマルウェアであることが心配だったため) 、そして今、私は私の元の答えが実際には間違っていたと信じています。これが私が今見つけたものです:

  1. いくつかの異なるプロセスがこのファイルから、異なるオフセットから読み取られますが、長さは同じです:4K(正確に1つのメモリページ)。
  2. ReadFile操作はありますが、ファイルを開くことはできません。これはほとんど意味がありません。
  3. スタックトレースを見ると、すべてのリクエストのトレースにページフォールトが含まれていることがわかります。このファイルの読み取りは、ページングファイルからメモリにページを読み取るカーネル関数であるIoPageRead()内にあります。
  4. これらの読み取りは、システムのC:\ $ DirectoryとV:\ $ Directory、ページングファイルを保持する2つのドライブで発生し、他の場所では発生しません。

この調査に基づいて、この「ファイル読み取り」はある種のプロセスモニターアーティファクトであり、実際の読み取りはページングファイルで行われると強く信じています。 ProcMonがパスをC:\ $ Directoryとしてリストする理由がわかりません。

このC:\ $ Directoryが実際の NTFSメタファイル であるとは思いません。今では、これが不正な活動(ウイルスやその他のマルウェア)である可能性はないと思います。

5
haimg

$ Directoryと$ MapAttributeValueは、おそらく [〜#〜] ntfs [〜#〜] ディスク上のシステム領域のコードネームであり、これらの参照は、ファイルを開いたり作成したりするプログラムから取得されます。

これらの名前はおそらく メタファイル に関連しており、ウィキペディアでは次のように定義されています。

NTFSには、ファイルシステムを定義および編成するいくつかのファイルが含まれています。すべての点で、これらのファイルのほとんどは他のユーザーファイルと同じように構造化されていますが($ Volumeが最も独特です)、ファイルシステムクライアントには直接関係ありません。これらのメタファイルは、ファイルを定義し、重要なファイルシステムデータをバックアップし、ファイルシステムの変更をバッファリングし、空き領域の割り当てを管理し、BIOSの期待に応え、不良な割り当て単位を追跡し、セキュリティとディスク領域の使用情報を保存します。特に明記されていない限り、すべてのコンテンツは名前のないデータストリームにあります。

$ Directoryはおそらく マスターファイルテーブル (MFT)であり、すべてのファイルとフォルダーのディレクトリであり、メタデータとしてファイル名、作成日、アクセス許可(アクセス制御を使用)が保存されます。リスト)とサイズ。ファイルまたはフォルダを開いたり作成したりするプログラムはすべて、ディスクのこの領域にアクセスします。

$ MapAttributeValueは、おそらく 属性リスト 領域であり、次のように記述されます。

MFTレコードに記述されているファイル(またはディレクトリ)ごとに、ストリーム記述子(属性とも呼ばれる)の線形リポジトリがあり、1つ以上のMFTレコード(いわゆる属性リストを含む)にまとめられ、固定を埋めるために追加のパディングがありますすべてのMFTレコードの1KBサイズであり、そのファイルに関連付けられている有効なストリームを完全に記述しています。

4
harrymc