LINUX.ORG.RU

Как отредактировать squashfs в прошивке

 ,


1

1

Добрый день, хочу отредактировать прошивку, а конкретно файл в образе squashfs, после этого собрать все как было. Распаковать прошивку и изменить файл можно и 7-zip, но как собрать все как было, чтоб устройство ее приняло ?

root@kali:~# binwalk orig.bin

DECIMAL HEXADECIMAL DESCRIPTION --------------------------------------------------------------------------------

1556 0x614 uImage header, header size: 64 bytes, header CRC: 0x25C2417B, created: Tue Apr 29 05:48:58 2014, image size: 1162812 bytes, Data Address: 0x80008000, Entry Point: 0x80008000, data CRC: 0xD56C3525, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: none, image name: «Linux-3.0.8»

1164432 0x11C490 Squashfs filesystem, little endian, version 4.0, compression:lzma (non-standard type definition), size: 6221278 bytes, 670 inodes, blocksize: 131072 bytes, created: Thu Dec 4 12:27:11 2014



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

никак. только новая регенерация

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

«только новая регенерация» это как ? и какой утилитой пользоваться ?

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

команда для упаковки называется mksquasfs

распаковывать лучше не архиватором а тоже используя команду unsquashfs

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

Вот так пробовал, тоже че то не нравится... root@kali:~# mount 1.bin /mnt/system -t squashfs -o loop mount: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so

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

эээ а чего ты bin файл пытаешься обработать, судя по выводу binwalk, который ты дал, тебе из этого bin файла надо выдернуть образ squashfs и потом уже его потрошить.

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

Замечательно, и поскольку я совсем начинающий, как мне это сделать ? Пробовал вот так, результат тот же root@kali:~# dd if=orig.bin bs=1 skip=1164432 count=6221278 of=orig.squashfs

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

нифига ты какой прошаренный начинающий раз до такого додумался чтоб через dd сделать. Наверное надо погуглить по словам «распаковать bin binwalk» или типа того что-то.

irton ★★★★★
()
Ответ на: комментарий от GrukhvinEV

я не могу скачать, у нас трафик ограничен.

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

Вот следующие шаги root@kali:~# sudo mksquashfs squashfs-root 11.sh -comp xz Parallel mksquashfs: Using 1 processor Creating 4.0 filesystem on 11.sh, block size 131072. [===============================================================|] 342/342 100% Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072 compressed data, compressed metadata, compressed fragments, compressed xattrs duplicates are removed Filesystem size 6075.35 Kbytes (5.93 Mbytes) 39.99% of uncompressed filesystem size (15190.57 Kbytes) Inode table size 4696 bytes (4.59 Kbytes) 14.65% of uncompressed inode table size (32046 bytes) Directory table size 6248 bytes (6.10 Kbytes) 55.67% of uncompressed directory table size (11224 bytes) Xattr table size 46 bytes (0.04 Kbytes) 100.00% of uncompressed xattr table size (46 bytes) Number of duplicate files found 11 Number of inodes 670 Number of files 260 Number of fragments 30 Number of symbolic links 354 Number of device nodes 0 Number of fifo nodes 0 Number of socket nodes 0 Number of directories 56 Number of ids (unique uids + gids) 1 Number of uids 1 root (0) Number of gids 1 root (0)

root@kali:~# binwalk '/root/orig.sf'

DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- ^[[A0 0x0 Squashfs filesystem, little endian, version 4.0, compression:lzma (non-standard type definition), size: 6221278 bytes, 670 inodes, blocksize: 131072 bytes, created: Thu Dec 4 12:27:11 2014

root@kali:~# binwalk '/root/11.sh'

DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 0 0x0 Squashfs filesystem, little endian, version 4.0, compression:lzma (non-standard type definition), size: 6221154 bytes, 670 inodes, blocksize: 131072 bytes, created: Tue Jul 14 06:28:32 2015

Откуда разница в 6221278 bytes - 6221154 bytes=124 байта ? Ничего не менял, поковал одно и то же! и как прикрутить тот кусок что я отрезал ?

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

и как прикрутить тот кусок что я отрезал ?

а чем там в linux файлы склеивают? cat вроде

ты же жестко через dd отрезал, значит и склеивать придется также.

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

что делать с разницей в 6221278 bytes - 6221154 bytes=124 байта ? хотя вот если сравнить 670 inodes, blocksize: 131072 bytes то все сходится. Опять же не нравится мне разница в 124 байта. Вот тут то менять что нибудь надо или нет: 1556 0x614 uImage header, header size: 64 bytes, header CRC: 0x25C2417B, created: Tue Apr 29 05:48:58 2014, image size: 1162812 bytes, Data Address: 0x80008000, Entry Point: 0x80008000, data CRC: 0xD56C3525, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: none, image name: «Linux-3.0.8»

CRC: 0x25C2417B - это контрольная сумма самого заголовка ?

data CRC: 0xD56C3525 а это squashfs ?

И поскольку у меня разница в 124 байта вот это Data Address: 0x80008000, Entry Point: 0x80008000 не измениться ?

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

Откуда берется разница разобрался, зависит от даты создания файла. Легко правиться, если открыть в хексе оригинал и то что получилось, и в самом начале файла правим. Размер все стало сходиться. Но вот при дальнейшем анализе в хексе видно что грубо говоря первая четверть данных совпадает, дальше идут различия.

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

Хорошо, как остановить время на люнуксе ? ))) чтобы пока фал делался, время не менялось, соотвественно контрольная сумма останется прежней.

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

наверное надо найти способ нормально разделить bin на составляющие, и тогда ясно будет чем их обратно собирать. То что ты их через dd откусил и тебе удалось потом sfs модуль распаковать - удача неимоверная.

irton ★★★★★
()
Ответ на: комментарий от GrukhvinEV

грубо говоря первая четверть данных совпадает, дальше идут различия.

Потоковое сжатие же. Раз повезло, что образ стал меньше, то давай, dd его обратно и скрести пальцы

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

А не боишься, что после прошивки останешься с кирпичом?

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

Раз повезло, что образ стал меньше, то давай, dd его обратно и скрести пальцы

А если там перед каждым блоком - его длина?

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

то либо сработает какая-нибудь защита, либо в конце squash-образа будет немного мусора. звучит довольно безобидно.

t184256 ★★★★★
()
Ответ на: комментарий от anonymous

Хотя вроде нету, только в конце что-то вроде паддинга нулевыми байтами. Так что может и прокатить.

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

В коде комментарии на китайском. Думаешь, наши узкоглазые друзья позаботились о защите?

root:$1$xSuwu/pt$9IeFFvoWUZ1SlgsaEPkgs/:0:0:root:/root:/bin/sh

Ну хоть не DES.

2 ОП: что вообще за железка? Какая-то IP-камера от Topsee? Telnet-доступ есть? И как вообще впечатления от нее?

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

Teleneta нет, ssh нет, http тока есть )) Ну работает вроде ))) А вообще если кирпич получится, что мне помешает распотрошить ее и прошить программатором ?

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

И еще, камера не примет прошивку пока не будут верно указаны все контрольные суммы + размеры разделов

GrukhvinEV
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.