「HDDの中を見る(UDF編)」の編集履歴(バックアップ)一覧はこちら

HDDの中を見る(UDF編) - (2007/03/14 (水) 17:38:35) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

UDFの基礎を踏まえて、RD-X4のHDDを見る。 なお、IDE HDDのセクタ長は512バイトであるが、ここでは、ファイルシステムの設定どおり、セクタ長を2048バイトとして記述していく。 256セクタ目までは、 |セクタ|識別子| |0~15|未使用| |16| Beginning Extended Area Descriptor| |17| Volume Structure Descriptor(NSR03 Descriptor)| |18| Terminating Extended Area Descriptor| |19~31| 未使用| |32| Primary Volume Descriptor | |33| Implementation Use Volume Descriptor| |34| Partition Descriptor| |35| Logivcal Volume Descriptor| |36| Unallocated Space Descriptor| |37| Terminating Descriptor| |38~47| 未使用| |48| Logical Volume Integrity Descriptor| |49| Terminating Descriptor| |50~255| 未使用| |256| Anchor Volume Descriptor Pointer| の様になっている。 Partition Descriptorには、 |Partition Starting Location|0x110| |Partition Length|0x0746944a| の値が記録されている。 これらは、論理セクタの配置で、 -論理セクタ(0)は、物理セクタ0x110から始まる -論理セクタは、0x0746944a(122065994)セクタある という意味になる。 このセクタ数に関しては、Logical Volume Integrity Descriptorでも、 |Size Table|0x0746944a| と同じ値が指定されている。 また、Anchor Volume Descriptor Pointerは、 |Main Volume Descriptor Sequence Extent|0x20セクタ| |Reserve Volume Descriptor Sequence Extent|0x07469570セクタ| と、Volume Descriptor Sequenceの開始位置を指定しているらしい。 と言う事は、0x0746944aなどの値と、Allocation情報を変える事で、500GBなどの容量にする事が出来るのか? 論理セクタ0に相当する、物理セクタ0x110は、 08 03 03 00 C9 00 00 00 B8 FB 08 00 00 00 00 00 45 69 74 00 29 8D 0E 00 00 00 00 00 00 00 00 00 と、0x0308というtag値となっていて、一見、ゴミのようにも見えるのだが、Descriptor Tagの -TagChecksum -TagLocation の各値がそれらしいものになっている。 論理セクタ466以降は、 |セクタ|識別子| |466(0x1d2)|File Set Descriptor| |467(0x1d3)|Terminating Descriptor| |468(0x1d4)|File Entry| |469(0x1d5)|File Identifier Descriptor| の様なDescriptorが記述されている。 ***File Set Descriptor ルートディレクトリを格納している識別子の位置情報などの、ファイル構造が定義されている 0000 00 01 03 00 2C 00 00 00 76 EE F0 01 D2 01 00 00 0010 1C 12 D7 07 01 15 10 32 18 56 5A 00 03 00 03 00 0020 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ・・・・・・・・・ 0190 00 08 00 00 D4 01 00 00 00 00 00 00 00 00 00 00 01A0 00 2A 4F 53 54 41 20 55 44 46 20 43 6F 6D 70 6C 01B0 69 61 6E 74 00 00 00 00 00 02 00 00 00 00 00 00 -0x190(400)バイト目(long_ad)の、Root Directory ICBの値が、「セクタ0x1d4から0x800バイト」と記述されているので、ルートディレクトリのFile Entryが論理セクタ0x1d4にある(はず) ***File Entry ディレクトリの属性情報で、Extended Attribute Header Descriptorをパラメータとして持つことが出来る 0000 05 01 03 00 35 00 00 00 AF 5B 4C 01 D4 01 00 00 0010 00 00 00 00 04 00 00 00 01 00 00 04 D4 01 00 00 0020 00 00 20 00 FF FF FF FF FF FF FF FF D6 5A 00 00 ・・・・・・・・・ 0090 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00A0 00 00 00 00 00 00 00 00 A4 00 00 00 08 00 00 00 00B0 06 01 03 00 71 00 00 00 C9 C1 08 00 D4 01 00 00 00C0 38 00 00 00 FF FF FF FF 05 00 00 00 01 00 00 00 ・・・・・・・・・ 0140 65 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 0150 60 05 00 00 48 01 00 00 D5 01 00 00 00 00 00 00 -0xa8(168)バイト目は、Length of Extended Attribute(0xa4バイト) -0xac(172)バイト目は、Length of Allocation Descriptor(0x08バイト) -0xb0(176)バイト目からは、Extended Attribute領域で、Extended Attribute Header Descriptorが0xa4(164)バイト配置されている -0x154(340)バイト目からは、Allocation Descriptor(short_ad)で、このディレクトリに対するFile Identifier Descriptorの論理セクタ位置が指定されている(→ 論理セクタ0x01d5にFile Identifier Descriptorが存在する) ***File Identifier Descriptor ディレクトリや、ファイルの名前、開始位置などの情報が配列状に格納されている 0000 01 01 03 00 F1 00 00 00 53 AB 18 00 D5 01 00 00 0010 01 00 0A 00 00 08 00 00 D4 01 00 00 00 00 00 00 0020 00 00 00 00 00 00 00 00 01 01 03 00 E3 00 00 00 0030 A0 48 20 00 D5 01 00 00 01 00 02 09 00 08 00 00 0040 E0 01 00 00 00 00 00 00 12 00 00 00 00 00 08 54 0050 53 5F 4D 41 4E 47 52 00 01 01 03 00 C1 00 00 00 0060 A3 23 20 00 D5 01 00 00 01 00 02 09 00 08 00 00 ・・・・・・・・・ 0120 08 4C 20 00 D5 01 00 00 01 00 02 09 00 08 00 00 0130 20 52 04 00 00 00 00 00 21 00 00 00 00 00 08 54 0140 53 5F 50 46 44 41 54 00 00 00 00 00 00 00 00 00 -0x00バイト目は、最初のFile Identifier Descriptor --0x12(18)バイト目は、File Characteristicsで、b1:ディレクトリ、b2:親ディレクトリ情報となり、この場合、0x0aなので、親ディレクトリの情報を格納しているFile Identifier Descriptorとなる --0x14(18)バイト目は、ICBの位置(long_ad)で、この場合のICBは、File Entryで、論理セクタ0x1d4からの0x800バイトとなっている -0x28(40)バイト目は、二番目のFile Identifier Descriptor --0x3a(58)バイト目は、File Characteristicsで、0x02なので、ディレクトリエントリとなる --0x3c(60)バイト目は、ICBの位置(long_ad)で、この場合、論理セクタ0x1e0からの0x800バイトとなっている --0x4e(78)バイト目は、ディレクトリ名で、"TS_MANGR"となる -0x58(88)バイト目は、三番目のFile Identifier Descriptor …… TS_MANGRディレクトリのFile Entry(論理セクタ0x1e0)を見ると、 0000 05 01 03 00 7C 00 00 00 FE 47 4C 01 E0 01 00 00 0010 00 00 00 00 04 00 00 00 01 00 00 04 00 00 00 00 0020 00 00 00 00 FF FF FF FF FF FF FF FF D6 5A 00 00 ・・・・・・・・・ 0090 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00A0 12 00 00 00 00 00 00 00 A4 00 00 00 08 00 00 00 00B0 06 01 03 00 7D 00 00 00 C9 C1 08 00 E0 01 00 00 00C0 38 00 00 00 FF FF FF FF 05 00 00 00 01 00 00 00 ・・・・・・・・・ 0140 65 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 0150 60 05 00 00 C0 01 00 00 F0 01 00 00 00 00 00 00 -実は、0x1d4と大差なく、Allocation Descriptor(short_ad)の値が、0x1f0となっている(→ 論理セクタ0x01f0にFile Identifier Descriptorが存在する) TS_MANGRディレクトリのFile Identifier Descriptor(論理セクタ0x1f0)を見ると、 0000 01 01 03 00 0C 00 00 00 53 AB 18 00 F0 01 00 00 0010 01 00 0A 00 00 08 00 00 D4 01 00 00 00 00 00 00 0020 00 00 00 00 00 00 00 00 01 01 03 00 9B 00 00 00 0030 EB 9A 20 00 F0 01 00 00 01 00 00 09 00 08 00 00 0040 60 02 00 00 00 00 00 00 16 00 00 00 00 00 08 54 0050 53 47 49 2E 49 46 4F 00 01 01 03 00 55 00 00 00 0060 F4 47 24 00 F0 01 00 00 01 00 00 0D 00 08 00 00 ・・・・・・・・・ 0190 58 00 00 00 F2 4C 24 00 F0 01 00 00 01 00 00 0D 01A0 00 08 00 00 30 AA 04 00 00 00 00 00 28 00 00 00 01B0 00 00 08 52 53 56 44 45 54 41 49 2E 49 46 4F 00 01C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0x00バイト目は、最初のFile Identifier Descriptor --0x12(18)バイト目は、0x0aなので、親ディレクトリの情報を格納しているFile Identifier Descriptorとなる --0x14(18)バイト目は、ICBの位置(long_ad)で、この場合、子ディレクトリなので、値が入っていない -0x28(40)バイト目は、二番目のFile Identifier Descriptor --0x3a(58)バイト目は、File Characteristicsで、0x00なので、ファイルとなる --0x3c(60)バイト目は、ICBの位置(long_ad)で、この場合、論理セクタ0x260からの0x800バイトとなっている --0x4e(78)バイト目は、ファイル名で、"SGI.IFO"となる -0x58(88)バイト目は、三番目のFile Identifier Descriptor …… SGI.IFOファイルのFile Entry(論理セクタ0x260)を見ると、 0000 05 01 03 00 F1 00 00 00 91 A8 4C 01 60 02 00 00 0010 00 00 00 00 04 00 00 00 01 00 00 05 00 00 00 00 0020 00 00 00 00 FF FF FF FF FF FF FF FF D6 5A 00 00 ・・・・・・・・・ 0090 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00A0 16 00 00 00 00 00 00 00 A4 00 00 00 08 00 00 00 00B0 06 01 03 00 FE 00 00 00 C9 C1 08 00 60 02 00 00 00C0 38 00 00 00 FF FF FF FF 05 00 00 00 01 00 00 00 ・・・・・・・・・ 0140 65 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 0150 60 05 00 00 00 08 00 00 70 02 00 00 00 00 00 00 -今までのFile Entryと大差なく、Allocation Descriptorのpointer値が、0x270となっている(→ 論理セクタ0x0270にSGI.IFOのデータが存在する) ちょっと飛んで、論理セクタ0x455c0を見てみると(MPEG-2 PSファイルのFile Entry) 0000 05 01 03 00 9C 00 00 00 1C 6B EC 07 C0 55 04 00 0010 00 00 00 00 04 00 00 00 01 00 00 F9 00 00 00 00 0020 00 00 10 00 FF FF FF FF FF FF FF FF D6 5A 00 00 ・・・・・・・・・ 0090 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00A0 24 00 00 00 00 00 00 00 A4 00 00 00 A8 06 00 00 00B0 06 01 03 00 B5 00 00 00 C9 C1 08 00 C0 55 04 00 00C0 38 00 00 00 FF FF FF FF 05 00 00 00 01 00 00 00 ・・・・・・・・・ 0140 65 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 0150 60 05 00 00 00 58 89 02 00 A0 0F 00 00 00 6D 40 0160 30 F1 0F 00 00 80 FF 7F D0 FE 0F 00 00 80 FF 7F 0170 C0 FE 17 00 00 80 FF 7F B0 FE 1F 00 00 80 FF 7F 0180 A0 FE 27 00 00 80 FF 7F 90 FE 2F 00 00 80 FF 7F ・・・・・・・・・ 07E0 E0 F1 87 06 00 80 FF 7F D0 F1 8F 06 00 80 FF 7F 07F0 C0 F1 97 06 00 08 00 C0 E0 55 04 00 00 00 00 00 -0xac(172)バイト目は、Length of Allocation Descriptor(0x6a8バイト)と大きな値となっている -0x154(340)バイト目は、最初のファイルの位置と長さ(0x0fa000から、記録済み0x02895800バイト)の指定 -0x15c(348)バイト目は、二番目のファイルの位置と長さ(0x0ff130から、未記録0x006d0000バイト)の指定 -0x164(356)バイト目は、三番目のファイルの位置と長さ(0x0ffed0から、未記録0x3fff8000バイト)の指定 -0x7ec(2028)バイト目は、0x0697f1c0から、未記録0x3fff8000バイト)の指定 -0x7f4(2036)バイト目は、0x0455e0から、次のAllocation情報が0x800バイト続く さらに、論理セクタ0x455e0(Alloocation Extent Descriptor)を見てみると 0000 02 01 03 00 09 00 00 00 D1 F1 08 00 E0 55 04 00 0010 00 00 00 00 B0 00 00 00 00 80 FF 7F B0 F1 9F 06 0020 00 80 FF 7F A0 F1 A7 06 00 80 FF 7F 90 F1 AF 06 0030 00 80 FF 7F 80 F1 B7 06 00 80 FF 7F 70 F1 BF 06 0040 00 80 FF 7F 60 F1 C7 06 00 80 FF 7F 50 F1 CF 06 ・・・・・・・・・ 00B0 00 80 FF 7F 80 F0 37 07 00 80 1E 75 70 F0 3F 07 00C0 00 28 00 40 2B F1 0F 00 00 00 00 00 00 00 00 00 -0x14(20)バイト目は、Length of Allocation Descriptor(0xb0バイト) -0x18(24)バイト目は、このタグでの最初のファイルの位置と長さ(0x069ff1b0から、未記録0x3fff8000バイト)の指定 -0x24(36)バイト目は、次のファイルの位置と長さ(0x06a7f1a0から、未記録0x3fff8000バイト)の指定 -0xbc(188)バイト目は、最後のファイルの位置と長さ(0x0ff12bから、未記録0x2800バイト)の指定 これらを整理すると ||開始セクタ番号|長さ(バイト数)|長さ(セクタ数)| 次のセクタ番号| |最初のshort_ad| 0x000fa000| 0x2895800| 0x512b| 0x000ff12b| |二番目のshort_ad| 0x000ff130| 0x06d0000| 0x0da0| 0x000ffed0| |三番目のshort_ad| 0x000ffed0| 0x3fff8000| 0x7fff0| 0x0017fec0| |四番目のshort_ad| 0x0017fec0| 0x3fff8000| 0x7fff0| 0x001ffeb0| |最後のshort_ad| 0x000ff12b| 0x2800| 0x0005| 0x000ff130| となり、順番は前後しているものの、全てのセクタがAllocation管理下にあることが分る。 **ディレクトリ構造 上記の様な手順で、ディレクトリツリーを辿った結果、 -ルート --TS_MANGR ---TSGI.IFO ---TTLUTLTY.IFO ---TTDETAIL.IFO ---DISC.IFO ---DISCNO2.IFO ---TMPMENU.DAT ---USRMENU.DAT ---RSVDETAI.IFO --TS_THMNL ---THMNL_SM.DAT ---THMNL_LR.DAT --TS_LOG ---RECLOG2.IFO --TS_LBRRY ---LIBRARY2.IFO ---LIBDETAI.IFO --TS_HDDAV ---TMAPDATA.IFO ---TS_HDDMV.DAT ---TS_HDDMG.BUP ---TS_HDDMG.IFO --TS_PFDAT ---TS_PFTHD.DAT ---TS_PFTDV.DAT という結果となった。 MPEG-2 PSデータと直接関係するファイルを、DVD-RAMのファイルと対比させると |DVD-RAM| RD-X4 HDD| |VR_MOVIE.VRO| \TS_HDDAV\TS_HDDMV.DAT| |VR_MANGR.IFO| \TS_HDDAV\TS_HDDMG.IFO| ということになる。
UDFの基礎を踏まえて、RD-X4のHDDを見る。 なお、IDE HDDのセクタ長は512バイトであるが、ここでは、ファイルシステムの設定どおり、セクタ長を2048バイトとして記述していく。 256セクタ目までは、 |セクタ| 識別子| |0~15| 未使用| |16| Beginning Extended Area Descriptor| |17| Volume Structure Descriptor(NSR03 Descriptor)| |18| Terminating Extended Area Descriptor| |19~31| 未使用| |32| Primary Volume Descriptor | |33| Implementation Use Volume Descriptor| |34| Partition Descriptor| |35| Logivcal Volume Descriptor| |36| Unallocated Space Descriptor| |37| Terminating Descriptor| |38~47| 未使用| |48| Logical Volume Integrity Descriptor| |49| Terminating Descriptor| |50~255| 未使用| |256| Anchor Volume Descriptor Pointer| の様になっている。 Partition Descriptorには、 |Partition Starting Location|0x110| |Partition Length|0x0746944a| の値が記録されている。 これらは、論理セクタの配置で、 -論理セクタ(0)は、物理セクタ0x110から始まる -論理セクタは、0x0746944a(122065994)セクタある という意味になる。 このセクタ数に関しては、Logical Volume Integrity Descriptorでも、 |Size Table|0x0746944a| と同じ値が指定されている。 また、Anchor Volume Descriptor Pointerは、 |Main Volume Descriptor Sequence Extent|0x20セクタ| |Reserve Volume Descriptor Sequence Extent|0x07469570セクタ| と、Volume Descriptor Sequenceの開始位置を指定しているらしい。 と言う事は、0x0746944aなどの値と、Allocation情報を変える事で、500GBなどの容量にする事が出来るのか? 論理セクタ0に相当する、物理セクタ0x110は、 08 03 03 00 C9 00 00 00 B8 FB 08 00 00 00 00 00 45 69 74 00 29 8D 0E 00 00 00 00 00 00 00 00 00 と、0x0308というtag値となっていて、一見、ゴミのようにも見えるのだが、Descriptor Tagの -TagChecksum -TagLocation の各値がそれらしいものになっている。 論理セクタ466以降は、 |セクタ|識別子| |466(0x1d2)|File Set Descriptor| |467(0x1d3)|Terminating Descriptor| |468(0x1d4)|File Entry| |469(0x1d5)|File Identifier Descriptor| の様なDescriptorが記述されている。 ***File Set Descriptor ルートディレクトリを格納している識別子の位置情報などの、ファイル構造が定義されている 0000 00 01 03 00 2C 00 00 00 76 EE F0 01 D2 01 00 00 0010 1C 12 D7 07 01 15 10 32 18 56 5A 00 03 00 03 00 0020 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ・・・・・・・・・ 0190 00 08 00 00 D4 01 00 00 00 00 00 00 00 00 00 00 01A0 00 2A 4F 53 54 41 20 55 44 46 20 43 6F 6D 70 6C 01B0 69 61 6E 74 00 00 00 00 00 02 00 00 00 00 00 00 -0x190(400)バイト目(long_ad)の、Root Directory ICBの値が、「セクタ0x1d4から0x800バイト」と記述されているので、ルートディレクトリのFile Entryが論理セクタ0x1d4にある(はず) ***File Entry ディレクトリの属性情報で、Extended Attribute Header Descriptorをパラメータとして持つことが出来る 0000 05 01 03 00 35 00 00 00 AF 5B 4C 01 D4 01 00 00 0010 00 00 00 00 04 00 00 00 01 00 00 04 D4 01 00 00 0020 00 00 20 00 FF FF FF FF FF FF FF FF D6 5A 00 00 ・・・・・・・・・ 0090 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00A0 00 00 00 00 00 00 00 00 A4 00 00 00 08 00 00 00 00B0 06 01 03 00 71 00 00 00 C9 C1 08 00 D4 01 00 00 00C0 38 00 00 00 FF FF FF FF 05 00 00 00 01 00 00 00 ・・・・・・・・・ 0140 65 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 0150 60 05 00 00 48 01 00 00 D5 01 00 00 00 00 00 00 -0xa8(168)バイト目は、Length of Extended Attribute(0xa4バイト) -0xac(172)バイト目は、Length of Allocation Descriptor(0x08バイト) -0xb0(176)バイト目からは、Extended Attribute領域で、Extended Attribute Header Descriptorが0xa4(164)バイト配置されている -0x154(340)バイト目からは、Allocation Descriptor(short_ad)で、このディレクトリに対するFile Identifier Descriptorの論理セクタ位置が指定されている(→ 論理セクタ0x01d5にFile Identifier Descriptorが存在する) ***File Identifier Descriptor ディレクトリや、ファイルの名前、開始位置などの情報が配列状に格納されている 0000 01 01 03 00 F1 00 00 00 53 AB 18 00 D5 01 00 00 0010 01 00 0A 00 00 08 00 00 D4 01 00 00 00 00 00 00 0020 00 00 00 00 00 00 00 00 01 01 03 00 E3 00 00 00 0030 A0 48 20 00 D5 01 00 00 01 00 02 09 00 08 00 00 0040 E0 01 00 00 00 00 00 00 12 00 00 00 00 00 08 54 0050 53 5F 4D 41 4E 47 52 00 01 01 03 00 C1 00 00 00 0060 A3 23 20 00 D5 01 00 00 01 00 02 09 00 08 00 00 ・・・・・・・・・ 0120 08 4C 20 00 D5 01 00 00 01 00 02 09 00 08 00 00 0130 20 52 04 00 00 00 00 00 21 00 00 00 00 00 08 54 0140 53 5F 50 46 44 41 54 00 00 00 00 00 00 00 00 00 -0x00バイト目は、最初のFile Identifier Descriptor --0x12(18)バイト目は、File Characteristicsで、b1:ディレクトリ、b2:親ディレクトリ情報となり、この場合、0x0aなので、親ディレクトリの情報を格納しているFile Identifier Descriptorとなる --0x14(18)バイト目は、ICBの位置(long_ad)で、この場合のICBは、File Entryで、論理セクタ0x1d4からの0x800バイトとなっている -0x28(40)バイト目は、二番目のFile Identifier Descriptor --0x3a(58)バイト目は、File Characteristicsで、0x02なので、ディレクトリエントリとなる --0x3c(60)バイト目は、ICBの位置(long_ad)で、この場合、論理セクタ0x1e0からの0x800バイトとなっている --0x4e(78)バイト目は、ディレクトリ名で、"TS_MANGR"となる -0x58(88)バイト目は、三番目のFile Identifier Descriptor …… TS_MANGRディレクトリのFile Entry(論理セクタ0x1e0)を見ると、 0000 05 01 03 00 7C 00 00 00 FE 47 4C 01 E0 01 00 00 0010 00 00 00 00 04 00 00 00 01 00 00 04 00 00 00 00 0020 00 00 00 00 FF FF FF FF FF FF FF FF D6 5A 00 00 ・・・・・・・・・ 0090 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00A0 12 00 00 00 00 00 00 00 A4 00 00 00 08 00 00 00 00B0 06 01 03 00 7D 00 00 00 C9 C1 08 00 E0 01 00 00 00C0 38 00 00 00 FF FF FF FF 05 00 00 00 01 00 00 00 ・・・・・・・・・ 0140 65 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 0150 60 05 00 00 C0 01 00 00 F0 01 00 00 00 00 00 00 -実は、0x1d4と大差なく、Allocation Descriptor(short_ad)の値が、0x1f0となっている(→ 論理セクタ0x01f0にFile Identifier Descriptorが存在する) TS_MANGRディレクトリのFile Identifier Descriptor(論理セクタ0x1f0)を見ると、 0000 01 01 03 00 0C 00 00 00 53 AB 18 00 F0 01 00 00 0010 01 00 0A 00 00 08 00 00 D4 01 00 00 00 00 00 00 0020 00 00 00 00 00 00 00 00 01 01 03 00 9B 00 00 00 0030 EB 9A 20 00 F0 01 00 00 01 00 00 09 00 08 00 00 0040 60 02 00 00 00 00 00 00 16 00 00 00 00 00 08 54 0050 53 47 49 2E 49 46 4F 00 01 01 03 00 55 00 00 00 0060 F4 47 24 00 F0 01 00 00 01 00 00 0D 00 08 00 00 ・・・・・・・・・ 0190 58 00 00 00 F2 4C 24 00 F0 01 00 00 01 00 00 0D 01A0 00 08 00 00 30 AA 04 00 00 00 00 00 28 00 00 00 01B0 00 00 08 52 53 56 44 45 54 41 49 2E 49 46 4F 00 01C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -0x00バイト目は、最初のFile Identifier Descriptor --0x12(18)バイト目は、0x0aなので、親ディレクトリの情報を格納しているFile Identifier Descriptorとなる --0x14(18)バイト目は、ICBの位置(long_ad)で、この場合、子ディレクトリなので、値が入っていない -0x28(40)バイト目は、二番目のFile Identifier Descriptor --0x3a(58)バイト目は、File Characteristicsで、0x00なので、ファイルとなる --0x3c(60)バイト目は、ICBの位置(long_ad)で、この場合、論理セクタ0x260からの0x800バイトとなっている --0x4e(78)バイト目は、ファイル名で、"SGI.IFO"となる -0x58(88)バイト目は、三番目のFile Identifier Descriptor …… SGI.IFOファイルのFile Entry(論理セクタ0x260)を見ると、 0000 05 01 03 00 F1 00 00 00 91 A8 4C 01 60 02 00 00 0010 00 00 00 00 04 00 00 00 01 00 00 05 00 00 00 00 0020 00 00 00 00 FF FF FF FF FF FF FF FF D6 5A 00 00 ・・・・・・・・・ 0090 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00A0 16 00 00 00 00 00 00 00 A4 00 00 00 08 00 00 00 00B0 06 01 03 00 FE 00 00 00 C9 C1 08 00 60 02 00 00 00C0 38 00 00 00 FF FF FF FF 05 00 00 00 01 00 00 00 ・・・・・・・・・ 0140 65 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 0150 60 05 00 00 00 08 00 00 70 02 00 00 00 00 00 00 -今までのFile Entryと大差なく、Allocation Descriptorのpointer値が、0x270となっている(→ 論理セクタ0x0270にSGI.IFOのデータが存在する) ちょっと飛んで、論理セクタ0x455c0を見てみると(MPEG-2 PSファイルのFile Entry) 0000 05 01 03 00 9C 00 00 00 1C 6B EC 07 C0 55 04 00 0010 00 00 00 00 04 00 00 00 01 00 00 F9 00 00 00 00 0020 00 00 10 00 FF FF FF FF FF FF FF FF D6 5A 00 00 ・・・・・・・・・ 0090 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00A0 24 00 00 00 00 00 00 00 A4 00 00 00 A8 06 00 00 00B0 06 01 03 00 B5 00 00 00 C9 C1 08 00 C0 55 04 00 00C0 38 00 00 00 FF FF FF FF 05 00 00 00 01 00 00 00 ・・・・・・・・・ 0140 65 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 0150 60 05 00 00 00 58 89 02 00 A0 0F 00 00 00 6D 40 0160 30 F1 0F 00 00 80 FF 7F D0 FE 0F 00 00 80 FF 7F 0170 C0 FE 17 00 00 80 FF 7F B0 FE 1F 00 00 80 FF 7F 0180 A0 FE 27 00 00 80 FF 7F 90 FE 2F 00 00 80 FF 7F ・・・・・・・・・ 07E0 E0 F1 87 06 00 80 FF 7F D0 F1 8F 06 00 80 FF 7F 07F0 C0 F1 97 06 00 08 00 C0 E0 55 04 00 00 00 00 00 -0xac(172)バイト目は、Length of Allocation Descriptor(0x6a8バイト)と大きな値となっている -0x154(340)バイト目は、最初のファイルの位置と長さ(0x0fa000から、記録済み0x02895800バイト)の指定 -0x15c(348)バイト目は、二番目のファイルの位置と長さ(0x0ff130から、未記録0x006d0000バイト)の指定 -0x164(356)バイト目は、三番目のファイルの位置と長さ(0x0ffed0から、未記録0x3fff8000バイト)の指定 -0x7ec(2028)バイト目は、0x0697f1c0から、未記録0x3fff8000バイト)の指定 -0x7f4(2036)バイト目は、0x0455e0から、次のAllocation情報が0x800バイト続く さらに、論理セクタ0x455e0(Alloocation Extent Descriptor)を見てみると 0000 02 01 03 00 09 00 00 00 D1 F1 08 00 E0 55 04 00 0010 00 00 00 00 B0 00 00 00 00 80 FF 7F B0 F1 9F 06 0020 00 80 FF 7F A0 F1 A7 06 00 80 FF 7F 90 F1 AF 06 0030 00 80 FF 7F 80 F1 B7 06 00 80 FF 7F 70 F1 BF 06 0040 00 80 FF 7F 60 F1 C7 06 00 80 FF 7F 50 F1 CF 06 ・・・・・・・・・ 00B0 00 80 FF 7F 80 F0 37 07 00 80 1E 75 70 F0 3F 07 00C0 00 28 00 40 2B F1 0F 00 00 00 00 00 00 00 00 00 -0x14(20)バイト目は、Length of Allocation Descriptor(0xb0バイト) -0x18(24)バイト目は、このタグでの最初のファイルの位置と長さ(0x069ff1b0から、未記録0x3fff8000バイト)の指定 -0x24(36)バイト目は、次のファイルの位置と長さ(0x06a7f1a0から、未記録0x3fff8000バイト)の指定 -0xbc(188)バイト目は、最後のファイルの位置と長さ(0x0ff12bから、未記録0x2800バイト)の指定 これらを整理すると ||開始セクタ番号|長さ(バイト数)|長さ(セクタ数)| 次のセクタ番号| |最初のshort_ad| 0x000fa000| 0x2895800| 0x512b| 0x000ff12b| |二番目のshort_ad| 0x000ff130| 0x06d0000| 0x0da0| 0x000ffed0| |三番目のshort_ad| 0x000ffed0| 0x3fff8000| 0x7fff0| 0x0017fec0| |四番目のshort_ad| 0x0017fec0| 0x3fff8000| 0x7fff0| 0x001ffeb0| |最後のshort_ad| 0x000ff12b| 0x2800| 0x0005| 0x000ff130| となり、順番は前後しているものの、全てのセクタがAllocation管理下にあることが分る。 **ディレクトリ構造 上記の様な手順で、ディレクトリツリーを辿った結果、 -ルート --TS_MANGR ---TSGI.IFO ---TTLUTLTY.IFO ---TTDETAIL.IFO ---DISC.IFO ---DISCNO2.IFO ---TMPMENU.DAT ---USRMENU.DAT ---RSVDETAI.IFO --TS_THMNL ---THMNL_SM.DAT ---THMNL_LR.DAT --TS_LOG ---RECLOG2.IFO --TS_LBRRY ---LIBRARY2.IFO ---LIBDETAI.IFO --TS_HDDAV ---TMAPDATA.IFO ---TS_HDDMV.DAT ---TS_HDDMG.BUP ---TS_HDDMG.IFO --TS_PFDAT ---TS_PFTHD.DAT ---TS_PFTDV.DAT という結果となった。 MPEG-2 PSデータと直接関係するファイルを、DVD-RAMのファイルと対比させると |DVD-RAM| RD-X4 HDD| |VR_MOVIE.VRO| \TS_HDDAV\TS_HDDMV.DAT| |VR_MANGR.IFO| \TS_HDDAV\TS_HDDMG.IFO| ということになる。

表示オプション

横に並べて表示:
変化行の前後のみ表示: