NTFSフォーマット $BOOT ファイル構造 No オフセット サイズ 説明 1 0 3 ジャンプコード 2 3 8 OEM名 3 11 2 1セクタのバイト数 4 13 1 1クラスタのセクタ数 4 14 7 未使用 5 21 1 メディアディスクリプタ(0xF8: ハードディスク) 6 22 2 未使用 7 24 2 1トラックのセクタ数 8 26 2 ヘッド数 9 28 8 未使用 10 36 4 通常 80 00 80 00 11 40 8 ボリュームの合計セクタ数 12 48 8 $MFTファイルのクラスタ開始番号 13 56 8 $MFTMirrファイルのクラスタ開始番号 14 64 4 FILEレコードのサイズ 15 68 4 Indexレコードのサイズ 16 72 8 ボリュームシリアル番号 510 2 シグネチャ(55 AA) ~ 18 ボリュームシリアル番号の例 79 41 DE 98 4F DE 98 82 ↓ 8298DE4F98DE4179 ↓ 98DE-4179 1 / 8 ページ NTFSフォーマット FILE レコード構造 No オフセット サイズ 説明 1 0 4 マジックナンバー 'FILE' (不良レコードは 'BAAD') 2 4 2 Fixupのオフセット位置 3 6 2 Fixupの配列数 4 8 8 $LogFileシーケンス番号 (LSN) 5 16 2 シーケンス番号(Sequence Number, レコード再利用回数) 6 18 2 ハードリンク数 7 20 2 最初の属性値へのオフセット位置 8 22 2 フラグ 9 24 4 FILE レコードの使用サイズ 10 28 4 FILE レコードの割り当てサイズ 11 32 8 基準となるFILEレコードへの参照 12 40 2 次の属性ID 13 42 2 4バイト単位に揃えるためのパディング 14 44 4 MFTレコード番号 15 48 2 Fixup値 ファイルレコードのフラグ値(オフセット 22) ビット No データ パターン 説明 1 00 00 0000 0000 ファイル、削除 2 01 00 0001 0000 ファイル、割り当て 3 02 00 0010 0000 ディレクトリ、削除 4 03 00 0011 0000 ディレクトリ、割り当て 2 / 8 ページ NTFSフォーマット $STANDARD_INFORMATION属性構造(レジデント) No オフセット サイズ 説明 1 0 4 属性タイプ(10 00 00 00) 2 4 4 属性の長さ 3 8 1 内蔵フラグ (00-Resident, 01-Non resident) 4 9 1 名前の長さ 5 10 2 名前のオフセット 6 12 2 Flags 7 14 2 属性ID 8 16 4 属性の長さ(オフセット0x18が始点) 9 20 2 コンテンツのオフセット位置 10 22 1 インデックスフラグ 11 23 1 パディング(0x00) 12 24 8 作成日時 13 32 8 更新日時 14 40 8 エントリ更新日時 15 48 8 アクセス日時 16 56 4 フラグ 17 60 4 Maximum Number of Versions 18 64 4 バージョン番号 19 68 4 クラスID 20 72 4 オーナーID(バージョン3.0以上) 21 76 4 セキュリティID(バージョン3.0以上) 22 80 8 Quota Charged(バージョン3.0以上) 23 88 8 アップデートシーケンス番号(USN) (バージョン3.0以上) フラグ値(オフセット 56) No データ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0x0001 0x0002 0x0004 0x0010 0x0020 0x0040 0x0080 0x0100 0x0200 0x0400 0x0800 0x1000 0x2000 0x4000 データ (4バイト表現) 01 00 00 00 02 00 00 00 04 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 80 00 00 00 00 01 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 説明 読み取り専用 隠し システム ディレクトリ アーカイブ デバイス ノーマル テンポラリ スパースファイル リパースポイント 圧縮 オフライン 未インデックス 暗号化 3 / 8 ページ NTFSフォーマット $FILE_NAME属性構造(レジデント) No オフセット サイズ 説明 1 0 4 属性タイプ(30 00 00 00) 2 4 4 属性の長さ 3 8 1 内蔵フラグ (00-Resident, 01-Non resident) 4 9 1 名前の長さ 5 10 2 名前のオフセット 6 12 2 Flags 7 14 2 属性ID 8 16 4 属性の長さ(オフセット0x18が始点) 9 20 2 コンテンツのオフセット位置 10 22 1 インデックスフラグ 11 23 1 パディング(0x00) 12 24 8 親フォルダへの参照 *1 13 32 8 作成日時 14 40 8 更新日時 15 48 8 エントリ更新日時 16 56 8 アクセス日時 17 64 8 物理ファイルサイズ 18 72 8 論理ファイルサイズ 19 80 4 フラグ 20 84 4 Reparse Value 21 88 1 ファイル名の長さ(L ) 22 89 1 名前空間( 0=Posix, 1=Win32, 2=DOS, 3=Win32&DOS) 23 90 L 名前 *1 (6バイト 親レコード、2バイト 親レコードのMFTレコードシーケンス番号) フラグ(オフセット 80) No データ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0x0001 0x0002 0x0004 0x0010 0x0020 0x0040 0x0080 0x0100 0x0200 0x0400 0x0800 0x1000 0x2000 0x4000 データ (4バイト表現) 01 00 00 00 02 00 00 00 04 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 80 00 00 00 00 01 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 説明 読み取り専用 隠し システム ディレクトリ アーカイブ デバイス ノーマル テンポラリ スパースファイル リパースポイント 圧縮 オフライン 未インデックス 暗号化 4 / 8 ページ NTFSフォーマット $DATA属性構造(レジデント) No オフセット サイズ 説明 1 0 4 属性タイプ(80 00 00 00) 2 4 4 属性の長さ 3 8 1 内蔵フラグ (00-Resident, 01-Non resident) 4 9 1 名前の長さ 5 10 2 名前のオフセット 6 12 2 Flags 7 14 2 属性ID 8 16 4 属性の長さ(ヘッダの終わりから) 9 20 2 属性ストリームの開始オフセット 10 22 1 Index Flag 11 23 1 Padding 12 24 属性ストリームの開始(名前なし) 13 24 属性の名前(名前あり) 5 / 8 ページ NTFSフォーマット $DATA属性構造(ノンレジデント) No オフセット サイズ 説明 1 0 4 属性タイプ(80 00 00 00) 2 4 4 属性の長さ 3 8 1 内蔵フラグ (00-Resident, 01-Non resident) 4 9 1 名前の長さ 5 10 2 名前のオフセット 6 12 2 Flags 7 14 2 属性ID 8 16 8 Runリストの開始VCN(Virtual Cluster Number) 9 24 8 Runリストの終了VCN 10 32 2 Data Runへのオフセット(通常0x40) 11 34 2 圧縮ユニットサイズ 12 36 4 パディング(0x00) 13 40 8 属性の物理サイズ(ファイルの物理サイズ) 14 48 8 属性の論理サイズ(ファイルの論理サイズ) 15 56 8 ストリームの初期化サイズ 16 64 Data Run(no name), Attribute name(Named) ※基本的にはData Runへのオフセットを利用 DataRun の構造 4 1 17 BC 8B 9A 08 1byte ①先頭の1バイトをニブル単位で解釈 ②下位4bit が Run (クラスタ数)の長さのバイト長を示す ③上位4bit が Run のオフセット(クラスタ番号)を示す ④次の Run は先の値からのオフセット(+ or -)の値を取る ⑤Run のオフセット値がマイナスの場合には補数を計算 例) 41 10 81 62 CE 04 41 10 99 30 37 FB 00 (開始クラスタ位置) 0x04CE6281 -> CL 80,634,497、長さ 16クラスタ (次のデータラン) 0xFB373099 -> 11111011001101110011000010011001 11111011001101110011000010011001 -1 = 11111011001101110011000010011000 反転 00000100110010001100111101100111 -> 80269159 80634497 - 80269159 = CL 365,338、長さ 16クラスタ 6 / 8 ページ NTFSフォーマット インデックスレコードヘッダ No オフセット サイズ 説明 1 0 4 マジックナンバー"INDX" 2 4 2 アップデートシーケンス(Fixup)のオフセット位置 3 6 2 アップデートシーケンス番号(USN)と配列(S ) 4 8 8 $LogFileシーケンス番号 (LSN) 5 16 8 当該Index AllocationのINDXバッファ内のVCN 6 24 4 インデックスエントリのオフセット (オフセット0x18が始点) 7 28 4 インデックスエントリサイズ (オフセット0x18が始点) 8 32 4 インデックスエントリの割当サイズ (オフセット0x18が始点) 9 36 1 葉ノードでない場合に1 10 37 3 パディング(全て0) 11 40 2 アップデートシーケンス 12 42 2S -2 インデックスエントリ No オフセット アップデートシーケンス配列 サイズ 説明 ~ ~ インデックスレコードヘッダ 1 0 8 対象MFT番号 2 8 2 インデックスエントリサイズ 3 10 2 ファイル名へのオフセット 4 12 2 インデックスフラグ 5 14 2 パディング 6 16 8 親のMFTファイル参照番号 7 24 8 作成日時 8 32 8 更新日時 9 40 8 エントリ更新日時 10 48 8 アクセス日時 11 56 8 物理ファイルサイズ 12 64 8 論理ファイルサイズ 13 72 8 フラグ 14 80 1 ファイル名の長さ(F ) 15 81 1 名前空間( 0=Posix, 1=Win32, 2=DOS, 3=Win32&DOS) 16 82 2F 名前 17 82+2F P パディング 18 82+2F +P 8 サブノードのインデックスバッファのVCN 7 / 8 ページ NTFSフォーマット 属性ヘッダ構造 No オフセット サイズ 説明 1 0 4 属性識別番号 2 4 4 属性全体のサイズ 3 8 1 Non Resident Flag(00 Resident, 01-Non resident) 4 9 1 名前の長さ(Unicode) 5 10 2 名前のオフセット位置 4 12 2 Flags(0100 圧縮、0040 暗号化、0080 スパース) 5 14 2 属性ID 6 以降、以下のいずれかに続く 属性コンテンツ構造(レジデント、フラグが 00 の場合) No オフセット サイズ 説明 7 16 4 属性の長さ(ヘッダの終わりから) 8 20 2 属性ストリームの開始オフセット位置 9 22 1 インデックスフラグ 10 23 1 パディング 11 24 属性名(名前あり) 12 24 コンテンツ(名前なし) 属性コンテンツ構造(ノンレジデント、フラグが01の場合) No オフセット サイズ 説明 13 16 8 VCN開始番号 14 24 8 VCN終了番号 15 32 2 Data Run へのオフセット値 16 34 2 圧縮ユニットサイズ 17 36 4 パディング 18 40 8 属性の物理サイズ 19 48 8 属性の論理サイズ 20 56 8 ストリームの初期化サイズ 21 64 属性名(名前あり) 22 64 DataRun(名前なし) 8 / 8 ページ
© Copyright 2024 ExpyDoc