Распаковка dump.bin

Вопросы по восстановлению, настройке, апгрейду, прошивкам и т.п.
dede
Специалист
Сообщения: 1957
Зарегистрирован: 22 мар 2017, 15:02
Откуда: Луганск

Re: Распаковка dump.bin

Сообщение dede » 17 авг 2018, 22:33

У вас наверное убунта 18.04, в ней почему-то убрали этот пакет, однако можно скачать .deb файл от 16.04 и поставить вручную. Ну а по jffs, покажите всю последовательность команд.

Аватара пользователя
Fluffykrsk
Специалист
Сообщения: 428
Зарегистрирован: 10 июн 2018, 18:25

Re: Распаковка dump.bin

Сообщение Fluffykrsk » 18 авг 2018, 18:13

dede писал(а):У вас наверное убунта 18.04, в ней почему-то убрали этот пакет, однако можно скачать .deb файл от 16.04 и поставить вручную. Ну а по jffs, покажите всю последовательность команд.
Предыстория такая. Есть дамп - жертва (как раз с jffs2). В своё время надо было пароль узнать к нему. Чтобы узнать, надо было распаковать. М-16 лихо вскрыл этот дамп и вытащил из него файл config.dat в котором был пароль. Это было возможно, это сработало и это решило задачу. Т.е это нужно, логика примерно такая). Далее эксперименты с jefferson, ему я скормил этот дамп целиком. Он распаковал его (не знаю корректно или нет, т.к я не великий специалист в сборке\разборке дампов, пока). В распакованном добре нужный файл был с паролем и задача была решена. Можно было там вырезать конечно и отдельно по кускам распаковывать, но смысла не увидел в данном случае, т.к jefferson сожрал всё целиком и выполнил поставленную задачу).
Ссылка на дамп-жертву https://yadi.sk/d/95_ljdNZ3aM5VH" onclick="window.open(this.href);return false;

Ладно, поэтапно идём, методом научно-профессионального тыка :smile: . Ещё способ (популярный, как я понял), смонтировать образ. Надо разобраться :smile:
И жертва с squashfs у меня есть и cramfs есть, доберусь и до них потихоньку :). Но лучше конечно с jffs2 сначала закончить. Я пока распаковывать тренируюсь, а так у меня бошка лопнет, ещё и запаковывать сразу).
Ну ладно, вот есть пример http://www.decker.su/2015/02/mount-jffs2-in-linux.html" onclick="window.open(this.href);return false;
Я конечно не понял, что он делает в этой строчке и что это за цифры, но допустим..... так надо.

Код: Выделить всё

sudo modprobe mtdram total_size=24576 erase_size=128
Пробуем смонтировать 1.bin этим способом, целиком (хотя не факт, что прокатит целиком, может в этом и проблема, что резать надо).
Выполняем:

Код: Выделить всё

jffs2dump -b -eimage.bin 1.bin
Получаем: какой-то длительный процесс, который не влазит в терминал целиком, но окончание такое

Код: Выделить всё

........
Wrong bitmask  at  0x000851f8, 0x7eba
Wrong bitmask  at  0x000851fc, 0xf807
Wrong hdr_crc  at  0x00085200, 0x12582d31 instead of 0x4fcb9146
Unknown node type: 0x8b37 at 0x00085200, totlen 0x39fbace4
По итогу создаётся файл какой-то куцый image.bin размером 545 280 байт (545,3Кб)
Далее

Код: Выделить всё

jeka@Casper:~/Рабочий стол$ mkdir m
jeka@Casper:~/Рабочий стол$ sudo modprobe mmtdram total_size=24576 erase_size=128
[sudo] пароль для jeka: 
modprobe: FATAL: Module mmtdram not found in directory /lib/modules/4.15.0-32-generic
jeka@Casper:~/Рабочий стол$ sudo modprobe mtdram total_size=24576 erase_size=128
jeka@Casper:~/Рабочий стол$ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 01800000 00020000 "mtdram test device"
jeka@Casper:~/Рабочий стол$ sudo modprobe mtdblock
jeka@Casper:~/Рабочий стол$ sudo dd if=image.bin of=/dev/mtdblock0
1065+0 записей получено
1065+0 записей отправлено
545280 bytes (545 kB, 532 KiB) copied, 0,0340712 s, 16,0 MB/s
jeka@Casper:~/Рабочий стол$ sudo mount -t jffs2 /dev/mtdblock0 m
mount: /home/jeka/Рабочий стол/m: can't read superblock on /dev/mtdblock0.
Ну и заканчивается всё это какой-то проблемой. Сегодня другое пишет, странно. Вчера по другому было. Но по факту сейчас так. И папка m пустая по итогу остаётся. Скорее всего я неправильно делаю чего-то. Вот собственно и любопытно, как правильно смонтировать этот дамп по принципам этого примера. Нужно ли его резать и чтой-то за куцый файл да и вообще один сплошной косяк получается, по субъективным ощущениям :oops:

dede
Специалист
Сообщения: 1957
Зарегистрирован: 22 мар 2017, 15:02
Откуда: Луганск

Re: Распаковка dump.bin

Сообщение dede » 18 авг 2018, 19:46

Так вы пытаетесь весь дамп смонтировать как jffs2, а там jffs2 только в последних 500-1500 Кб... вам нужно сначала вырезать jffs2 в отдельный файл и потом уже его монтировать.

Рекомендую познакомиться с binwalk, решает 99% поставленных задач

Аватара пользователя
Fluffykrsk
Специалист
Сообщения: 428
Зарегистрирован: 10 июн 2018, 18:25

Re: Распаковка dump.bin

Сообщение Fluffykrsk » 18 авг 2018, 21:35

dede писал(а):Так вы пытаетесь весь дамп смонтировать как jffs2, а там jffs2 только в последних 500-1500 Кб... вам нужно сначала вырезать jffs2 в отдельный файл и потом уже его монтировать.

Рекомендую познакомиться с binwalk, решает 99% поставленных задач
Судя по информации env rootfs 13120К. Вырезал его (добавил вырезку по прошлой ссылке к дампу рядом).
Попробовал провернуть монтирование опять).

Код: Выделить всё

Wrong bitmask  at  0x000e12f8, 0xd6f0
Wrong bitmask  at  0x000e12fc, 0x99ef
Wrong bitmask  at  0x000e1300, 0xc454
Wrong bitmask  at  0x000e1304, 0xc97d
Wrong bitmask  at  0x000e1308, 0x4d2c
Wrong bitmask  at  0x000e130c, 0xf1a1
Wrong hdr_crc  at  0x000e1310, 0xb2b99a61 instead of 0xc437a2bd
Unknown node type: 0x3ac4 at 0x000e1310, totlen 0x7dc8e4dd
Ошибка сегментирования (стек памяти сброшен на диск)

Код: Выделить всё

jeka@Casper:~/Рабочий стол$ mkdir m
jeka@Casper:~/Рабочий стол$ sudo modprobe mtdram total_size=24576 erase_size=128
[sudo] пароль для jeka: 
jeka@Casper:~/Рабочий стол$ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 01800000 00020000 "mtdram test device"
jeka@Casper:~/Рабочий стол$ sudo modprobe mtdblock
jeka@Casper:~/Рабочий стол$ sudo dd if=image.bin of=/dev/mtdblock0
1801+1 записей получено
1801+1 записей отправлено
922384 bytes (922 kB, 901 KiB) copied, 0,0528372 s, 17,5 MB/s
jeka@Casper:~/Рабочий стол$ sudo mount -t jffs2 /dev/mtdblock0 m
mount: /home/jeka/Рабочий стол/m: can't read superblock on /dev/mtdblock0.
Пошарился в гугле. Я так понял это, что угодно может быть. Судя по ошибке при создании образа little-endian этого или он криво создаётся или чего-то у меня со свежастью железа или с версией оси. Путанная история).

binwalk почти всё там поставил, только Capstone и pyqtgraph не ставил вроде. Попробую воткнуть их тоже.
Последний раз редактировалось Fluffykrsk 18 авг 2018, 21:47, всего редактировалось 1 раз.

dede
Специалист
Сообщения: 1957
Зарегистрирован: 22 мар 2017, 15:02
Откуда: Луганск

Re: Распаковка dump.bin

Сообщение dede » 18 авг 2018, 21:47

sudo modprobe mtdram total_size=13120 erase_size=128
sudo modprobe mtdblock
cat 1\ \(rootfs\).bin > /dev/mtdblock0
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp

На выходе получаете примонтированную ФС, без ошибок, endian не надо конвертировать в данном случае

Аватара пользователя
Fluffykrsk
Специалист
Сообщения: 428
Зарегистрирован: 10 июн 2018, 18:25

Re: Распаковка dump.bin

Сообщение Fluffykrsk » 18 авг 2018, 22:19

dede писал(а):sudo modprobe mtdram total_size=13120 erase_size=128
sudo modprobe mtdblock
cat 1\ \(rootfs\).bin > /dev/mtdblock0
sudo mount -t jffs2 /dev/mtdblock0 /mnt/tmp

На выходе получаете примонтированную ФС, без ошибок, endian не надо конвертировать в данном случае
После cat 1\ \(rootfs\).bin > /dev/mtdblock0
вылетает bash: /dev/mtdblock0: отказано в доступе
Где-то с правами косяк какой-то похоже. Чего-то мешает. Пробовал перебраться с рабочего стола в другое место, та же история.

dede
Специалист
Сообщения: 1957
Зарегистрирован: 22 мар 2017, 15:02
Откуда: Луганск

Re: Распаковка dump.bin

Сообщение dede » 18 авг 2018, 22:56

cat 1\ \(rootfs\).bin | sudo tee /dev/mtdblock0

Аватара пользователя
Fluffykrsk
Специалист
Сообщения: 428
Зарегистрирован: 10 июн 2018, 18:25

Re: Распаковка dump.bin

Сообщение Fluffykrsk » 18 авг 2018, 23:04

dede писал(а):cat 1\ \(rootfs\).bin | sudo tee /dev/mtdblock0
Попробую))))...

Я чего-то методом профессионального тыка организовал, совместил инструкцию и ваши рекомендации, пробуя разные варианты).

Код: Выделить всё

jeka@Casper:~/Рабочий стол$ sudo modprobe mtdram total_size=13120 erase_size=128
[sudo] пароль для jeka: 
jeka@Casper:~/Рабочий стол$ cat 1 /proc/mtd
cat: 1: Нет такого файла или каталога
dev:    size   erasesize  name
mtd0: 01800000 00020000 "mtdram test device"
jeka@Casper:~/Рабочий стол$ cat  /proc/mtd
dev:    size   erasesize  name
mtd0: 01800000 00020000 "mtdram test device"
jeka@Casper:~/Рабочий стол$ sudo modprobe mtdblock
jeka@Casper:~/Рабочий стол$ sudo dd if=1.bin of=/dev/mtdblock0
26240+1 записей получено
26240+1 записей отправлено
13434881 bytes (13 MB, 13 MiB) copied, 0,748593 s, 17,9 MB/s
jeka@Casper:~/Рабочий стол$ mkdir m
jeka@Casper:~/Рабочий стол$ sudo mount -t jffs2 /dev/mtdblock0 m
Появился какой-то том на 25Мб с файлами и там походу оно самое)))). Вижу старый добрый файл config.dat

И папка m не пустая и том этот клон папки... интересно, как-то он примонтировался без .tar.gz всяких.

Аватара пользователя
Fluffykrsk
Специалист
Сообщения: 428
Зарегистрирован: 10 июн 2018, 18:25

Re: Распаковка dump.bin

Сообщение Fluffykrsk » 18 авг 2018, 23:43

dede писал(а):cat 1\ \(rootfs\).bin | sudo tee /dev/mtdblock0
Это для названия файла 1 (rootfs).bin как я понял. Там чего-то странное получилось. Терминал с ума сошёл. Начал выдавать артефакты какие-то, листал, листал чего-то, забиваясь мусором каким-то и потом завис :).

В общем почему-то у меня так получилось:

Вырезаем rootfs (13120К)

sudo modprobe mtdram total_size=13120 erase_size=128 (указываем его размер без всяких конвертаций в little-endian)
sudo modprobe mtdblock
sudo dd if=1.bin of=/dev/mtdblock0 (для названия файла 1.bin переименовал вырезку, чтобы 1 (rootfs).bin не писать)
mkdir m (без создания папки нефига не работет, проверил)
sudo mount -t jffs2 /dev/mtdblock0 m

Вот тогда только монтируется добро :)

dede Спасибо большое, что подсказывали. Я вас замучил уже наверное сегодня, своими страданиями. Просто, чего-то инструкция с нюансом))).

Аватара пользователя
Fluffykrsk
Специалист
Сообщения: 428
Зарегистрирован: 10 июн 2018, 18:25

Re: Распаковка dump.bin

Сообщение Fluffykrsk » 19 авг 2018, 21:38

Sonya писал(а):По распаковке и упаковке cramfs я как-то давно уже писал на хабре.
По перепаковке squashfs всё аналогично:
Распаковать:

Код: Выделить всё

unsquashfs -d ./extracted/user ./unpacked/user-x.cramfs
Упаковать:

Код: Выделить всё

mksquashfs ./user ./user-x.cramfs -noappend -no-progress -b 256k -comp xz
Я чего-то не пойму, а чем распаковка модулями отличается от обычной распаковки 7z под виндой). Вроде как, тоже самое и получается)).
Смонтировал и распаковал, смотрел на всё это дело и разницы не почувствовал. В конце озадачился вопросом, а нафига я страдал :smile: пытаясь всё это в линуксе распаковать по фуншую.
Или распаковка 7z при сборке обратной потом пакостит...

В статье кстати, про файл passwd упоминается, там какаята интересная история, оно не всегда файл, оно может быть ярлык, ведущий в некий busybox, какой-то мерзкий контейнер и походу ещё зашифрованный :smile:

dede
Специалист
Сообщения: 1957
Зарегистрирован: 22 мар 2017, 15:02
Откуда: Луганск

Re: Распаковка dump.bin

Сообщение dede » 19 авг 2018, 21:56

7зип уже научился mksquashfs делать? Распаковать он все сможет. Запаковать - что-то сомневаюсь. jffs2 вообще нужно только монтировать как блочное устройство, для внесения изменений.

Аватара пользователя
Fluffykrsk
Специалист
Сообщения: 428
Зарегистрирован: 10 июн 2018, 18:25

Re: Распаковка dump.bin

Сообщение Fluffykrsk » 19 авг 2018, 22:35

dede писал(а):7зип уже научился mksquashfs делать? Распаковать он все сможет. Запаковать - что-то сомневаюсь. jffs2 вообще нужно только монтировать как блочное устройство, для внесения изменений.
Запаковать-то нет конечно. Ну, т.е получается, теоретически разобрать cramfs и squashfs можно 7зипом без опасений возникновения проблем в дальнейшем. Всё время в винде им пытался распаковывать, куски с соответствующими файловыми системами, что-то распаковывалось, а насколько корректно это происходило было непонятно. Некоторые папки пустые, неизвестно, все ли файлы на месте и т.д. А тут экспериментально получилось, что вроде как тоже самое и есть после распаковки). Получается, что jffs2 самая такая затруднённо вскрываемая (без софта) из них из всех (обычно встречающихся).

Ответить

Вернуться в «Восстановление и настройка»