Преамбула
Есть на японческом диске файлы SPOT.ARC и SPOT_VGA.ARC. По содержимому похожи на архив html с картинкаим. Файлы вроде бы отличаются только качеством графики. Пробую разобраться.
В скобках обозначены шеснадцатеричные значения.
В квадратных скобках обозначены шеснадцатеричные значения делённые пополам.
Первичные данные
Файл SPOT.ARC
Размер — 264 687 838 (0x0FC6D0DE) [0x07E3686F]
Данные начинаются с адреса 1 443 350 (0x00160616) [0x000b030b]
Размер данных — 263244488 (0x0FB0CAC8) [0x07D86564]
Структура
Похоже, что файл состоит из нескольких частей — заголовок, файловая система архива и собственно данные.
Заголовок
Размер заголовка 16 байт.
Смещение | Байт | Возможное значение | Запись |
---|---|---|---|
0 | 4 | Долгота | 0x0f678800 |
4 | 4 | Широта | 0x3c472200 |
Файловая система
Файловая система несколько запутана и избыточна.
Все указатели в ней даны от начала файловой системы, то есть -0x10 от начала файла SPOT.ARC.Сначала идёт заголовок размером 28 байт.
Смещение | Байт | Возможное значение | Запись |
---|---|---|---|
24 | 4 | Количество директорий (m) | 0x0000015e |
36 | 4 | Указатель на начало блока данных | 0x000b0303 |
40 | 4 | Размер блока данных | 0x07d86564 |
Затем идёт список всех директорий. Это m записей переменного размера.
Смещение | Байт | Возможное значение | Запись |
---|---|---|---|
0 | 4 | Указатель от начала файловой системы на описание содержимого директории | 0x00000843 |
4 | 4 | Степень вложенности? | 0x00000001 |
8 | 2 | Половина длины имени директории (o) | 0x0001 |
10 | o x 2 | Имя директории | «0» |
Следом идёт описание директорий
Смещение | Байт | Возможное значение | Запись |
---|---|---|---|
0 | 2 | Размер блока описания в байтах (q) | 0x0028 |
2 | q-2 | Список записей файлов |
каждая запись вида
Смещение | Байт | Возможное значение | Запись |
---|---|---|---|
0 | 4 | Указатель от начала блока данных до начала содержимого файла | 0x00000120 |
4 | 4 | Половина размера файла | 0x00000076 |
8 | 2 | Бит 15: Флаг директории | 0x000A |
Биты 0-14: Длина имени файла или директории (p) | |||
10 | p | Имя файла или директории | «ADDR_M.GIF» |
Если выставлен флаг директории, указатель идёт от начала файловой системы на описание содержимого поддиректории. Если не выставлен то на половину смещения от начала блока данных.
Блок данных
Тут собственно находится содержимое файлов записанных подряд. Размер каждого файла выравнен и кратен 2.
Иерархия файловой системы
"0" -\ |- "GIF"\ | |- "ADDR.GIF" | |- "ADDR_M.GIF" | ... | |- "00" -\ | |- "00" -\ | | |- "00.HTM" | | ... | ... | | ... | \- "80"-\ |- "00" - \ ....
Амбула
Распаковав файлы SPOT.ARC и SPOT_VGA.ARC убедился, что они действительно отличаются только качеством графики.
Оставьте комментарий