LINUX.ORG.RU

История изменений

Исправление SZT, (текущая версия) :

Ну ок, ищем этот MSDOS5.0 в каком-нибудь HEX редакторе, например ghex - там он по смещению 0x770003 Смотрим какое-нибудь описание fat файловой системы:

https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html

Here the FAT12 version, that is also the common part of the FAT12, FAT16 and FAT32 boot sectors. See further below.

Bytes   Content
0-2     Jump to bootstrap (E.g. eb 3c 90; on i86: JMP 003E NOP.
        One finds either eb xx 90, or e9 xx xx.
        The position of the bootstrap varies.)
3-10    OEM name/version (E.g. "IBM  3.3", "IBM 20.0", "MSDOS5.0", "MSWIN4.0".
        Various format utilities leave their own name, like "CH-FOR18".
        Sometimes just garbage. Microsoft recommends "MSWIN4.1".)
        /* BIOS Parameter Block starts here */

Ну вот по смещению 0x770003 идет OEM name/version, по смещению 0x770000 там два байта Jump to bootstrap

Можно тупо срезать начальные байты, чтоб файл начинался с этого вот

00770000  eb 3c 90 4d 53 44 4f 53  35 2e 30 00 02 01 08 00  |.<.MSDOS5.0.....|
00770010  02 00 02 d4 71 f0 74 00  00 00 00 00 00 00 00 00  |....q.t.........|
00770020  00 00 00 00 00 00 29 7d  a7 5d d4 4e 4f 20 4c 41  |......)}.].NO LA|
00770030  42 45 4c 20 20 20 46 41  54 31 36 20 20 20 00 00  |BEL   FAT16   ..|
00770040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
получится так
$ tail --bytes=+7798785 fsimage.dat > fatdat
$ file fatdat 
fatdat: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID «MSDOS5.0», reserved sectors 8, root entries 512, sectors 29140 (volumes <=32 MB), sectors/FAT 116, sectors/track 0, reserved 0x1, serial number 0xd45da77d, label: «NO LABEL   », FAT (16 bit)
Но если втупую подмонтировать этот образ fatdat через mount -o loop fatdat test/ то там будет какой-то мусор вместо имен файлов. Вероятно, они там куски этой файловой системы FAT разбросали как-то. Можно поискать Directory Entry в этом файле

Пример из https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html :

1.4 Directory Entry

An example (6 entries on the same MSDOS floppy):

0009728 49 4f 20 20 20 20 20 20 53 59 53 27 00 00 00 00  IO      .SYS
0009744 00 00 00 00 00 00 08 5d 62 1b 1d 00 16 9f 00 00
0009760 4d 53 44 4f 53 20 20 20 53 59 53 27 00 00 00 00  MSDOS   .SYS
0009776 00 00 00 00 00 00 08 5d 62 1b 6d 00 38 95 00 00
0009792 43 4f 4d 4d 41 4e 44 20 43 4f 4d 20 00 00 00 00  COMMAND .COM
0009808 00 00 00 00 00 00 07 5d 62 1b b8 00 39 dd 00 00
0009824 44 42 4c 53 50 41 43 45 42 49 4e 27 00 00 00 00  DBLSPACE.BIN
0009840 00 00 00 00 00 00 08 5d 62 1b 27 01 f6 fc 00 00
0009856 4d 53 44 4f 53 20 20 20 20 20 20 28 00 00 00 00  MSDOS
0009872 00 00 00 00 00 00 1a 88 99 1c 00 00 00 00 00 00
0009888 46 44 49 53 4b 20 20 20 45 58 45 20 00 00 00 00  FDISK   .EXE
0009904 00 00 00 00 00 00 36 59 62 1b 02 00 17 73 00 00

На всякий случай поясню: 49 4f 20 20 20 20 20 20 53 59 53 27 - 49 4f это имя без расширения IO, потом куча 20 и потом 53 59 53 это расширение SYS - т.е. имя кодируеся вот таким образом.

В прошивке явно есть некие XML файлы. Их можно найти, например поищи последовательность 20 58 4D 4C - по смещению 0x1A0260 можно найти что есть такой файл S-GE.XML, там еще есть S-MAIN.XML, S-NF.XML и так далее. В общем надо как-то из этого собрать FAT образ чтоб его можно было подмонтировать, где-то там должна быть File Allocation Table и прочее, это надо в правильном порядке состыковать и тогда что-то будет монтироваться

Исходная версия SZT, :

Ну ок, ищем этот MSDOS5.0 в каком-нибудь HEX редакторе, например ghex - там он по смещению 0x770003 Смотрим какое-нибудь описание fat файловой системы:

https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html

Here the FAT12 version, that is also the common part of the FAT12, FAT16 and FAT32 boot sectors. See further below.

Bytes   Content
0-2     Jump to bootstrap (E.g. eb 3c 90; on i86: JMP 003E NOP.
        One finds either eb xx 90, or e9 xx xx.
        The position of the bootstrap varies.)
3-10    OEM name/version (E.g. "IBM  3.3", "IBM 20.0", "MSDOS5.0", "MSWIN4.0".
        Various format utilities leave their own name, like "CH-FOR18".
        Sometimes just garbage. Microsoft recommends "MSWIN4.1".)
        /* BIOS Parameter Block starts here */

Ну вот по смещению 0x770003 идет OEM name/version, по смещению 0x770000 там два байта Jump to bootstrap

Можно тупо срезать начальные байты, чтоб файл начинался с этого вот

00770000  eb 3c 90 4d 53 44 4f 53  35 2e 30 00 02 01 08 00  |.<.MSDOS5.0.....|
00770010  02 00 02 d4 71 f0 74 00  00 00 00 00 00 00 00 00  |....q.t.........|
00770020  00 00 00 00 00 00 29 7d  a7 5d d4 4e 4f 20 4c 41  |......)}.].NO LA|
00770030  42 45 4c 20 20 20 46 41  54 31 36 20 20 20 00 00  |BEL   FAT16   ..|
00770040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
получится так
$ tail --bytes=+7798785 fsimage.dat > fatdat
$ file fatdat 
fatdat: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID «MSDOS5.0», reserved sectors 8, root entries 512, sectors 29140 (volumes <=32 MB), sectors/FAT 116, sectors/track 0, reserved 0x1, serial number 0xd45da77d, label: «NO LABEL   », FAT (16 bit)

Но если втупую подмонтировать этот образ fatdat через mount -o loop fatdat test/ то там будет какой-то мусор вместо имен файлов. Вероятно, они там куски этой файловой системы FAT разбросали как-то. Можно поискать Directory Entry в этом файле

Пример из https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html :

1.4 Directory Entry

An example (6 entries on the same MSDOS floppy):

0009728 49 4f 20 20 20 20 20 20 53 59 53 27 00 00 00 00  IO      .SYS
0009744 00 00 00 00 00 00 08 5d 62 1b 1d 00 16 9f 00 00
0009760 4d 53 44 4f 53 20 20 20 53 59 53 27 00 00 00 00  MSDOS   .SYS
0009776 00 00 00 00 00 00 08 5d 62 1b 6d 00 38 95 00 00
0009792 43 4f 4d 4d 41 4e 44 20 43 4f 4d 20 00 00 00 00  COMMAND .COM
0009808 00 00 00 00 00 00 07 5d 62 1b b8 00 39 dd 00 00
0009824 44 42 4c 53 50 41 43 45 42 49 4e 27 00 00 00 00  DBLSPACE.BIN
0009840 00 00 00 00 00 00 08 5d 62 1b 27 01 f6 fc 00 00
0009856 4d 53 44 4f 53 20 20 20 20 20 20 28 00 00 00 00  MSDOS
0009872 00 00 00 00 00 00 1a 88 99 1c 00 00 00 00 00 00
0009888 46 44 49 53 4b 20 20 20 45 58 45 20 00 00 00 00  FDISK   .EXE
0009904 00 00 00 00 00 00 36 59 62 1b 02 00 17 73 00 00

На всякий случай поясню: 49 4f 20 20 20 20 20 20 53 59 53 27 - 49 4f это имя без расширения IO, потом куча 20 и потом 53 59 53 это расширение SYS - т.е. имя кодируеся вот таким образом.

В прошивке явно есть некие XML файлы. Их можно найти, например поищи последовательность 20 58 4D 4C - по смещению 0x1A0260 можно найти что есть такой файл S-GE.XML, там еще есть S-MAIN.XML, S-NF.XML и так далее. В общем надо как-то из этого собрать FAT образ чтоб его можно было подмонтировать, где-то там должна быть File Allocation Table и прочее, это надо в правильном порядке состыковать и тогда что-то будет монтироваться