LINUX.ORG.RU

Распаковка и запаковка файла, созданного в Линукс

 


0

1

Добрый день. Есть два файла https://drive.google.com/file/d/1QSYSD1Tto3pJZpK6EwIO_ljK6H0JeNZQ/view?usp=sharing созданные и работающие в системе Линукс. Эти, если можно сказать, архивы содержать в себе различные файлы. Хотел я их распаковать, но не тут то было… hexdump показывает «|PACK….l…….|», а file определяет файлы как «Quake I or II world or extension», однако найденные распаковщики quake pak’ов конечно же не сработали. Может кто подскажет как их распаковать?



Последнее исправление: kazant (всего исправлений: 1)

Ответ на: комментарий от utanho

Возможно. Похоже на часть образа какой-то прошивки какого-то компьютера-на-плате.

@kazant

  • corefs.img монтируешь командой mount в удобное место. Остальные операции выполняешь удобным тебе способом.
  • «Отрезаешь» заголовок у файла initfs.img. Например, так
dd if=initfs.img of=initfs-a.img bs=512 skip=1

initfs-a.img «превращается» в ASCII cpio archive (SVR4 with no CRC) – открывается стандартными средствами.

master_0K
()
Ответ на: комментарий от master_0K

Спасибо Вам. Распаковать initfs.img получилось. В этом архиве я заменил файл \zoneinfo\Asia\Shanghai на \zoneinfoEurope\Moscow и откорректировал localtime. А вот как все запаковать обратно как было и вернуть этот отрезанный заголовок?

kazant
() автор топика
Ответ на: комментарий от kazant

Самый корректный способ сделать это тем же тулчейном, что «исходник» собирался. Я предполагаю, что он тебе недоступен.

Запаковать в архив модифицированные файлы командой cpio. Вернуть заголовок просто:

dd if=initfs.img of=new-initfs.img bs=512 count=1
dd if=init-mod.img of=new-initfs.img bs=512 seek=1

Первая команда копирует старый заголовок из «исходника» в новый образ. Вторая дописывает после заголовка модифицированный архив в новый образ. Основное допущение модифицированный архив по размеру равен исходному архиву. Иначе, будет «Ой-ой…»

master_0K
()
Ответ на: комментарий от d00fy

Буду пробовать. Исходных инструментов у меня нет. Проверка файлов происходит через замену вручную хэш суммы старого файла на новый в «checksum.md5».

kazant
() автор топика
Ответ на: комментарий от d00fy

Цифровой подписи вероятно «не завезли». Или она где-то в другом месте хранится.

Этот заголовок всего-то 512 байт. Основная часть имя образа и нули. Сложности могут быть с первыми 28 байтами.

0000  5041 434b 0100 0000  6c8e caff 0002 0000 |PACK....l.......|
0010  007e f901 0000 8013  55ad a996 6175 746f |.~......U...auto|
0020  696f 2d69 6d61 6765  2d64 6173 6862 6f61 |io-image-dashboa|
0030  7264 2d69 6d78 3664  6c77 6973 0000 0000 |rd-imx6dlwis....|
0040  0000 0000 0000 0000  0000 0000 0000 0000 |................|
*
0200

00h .. 03h "PACK" очевидный "магик стринг"
04h .. 07h  00000001h  ? :возможно номер версии 
08h .. 0Bh  FFCA8E6Ch  ??
0Ch .. 0Fh  00000200h  ? :вероятно смещение до начала образа-архива (или размер сектора)
10h .. 13h  01F97E00h вероятно размер образа архива в байтах
14h .. 17h  13800000h ??
18h .. 1Bh  96A9AD55h ??
master_0K
()
Последнее исправление: master_0K (всего исправлений: 1)