LINUX.ORG.RU

Как вырезать прошивку и бутлодер из дампа?

 , , , ,


0

1

Приветствую всех. Необходимо вырезать бинарники прошивки (конкретно OpenWRT) из дампа флешки SquareFS. Знаю как сделать это через HEX с помощью смещений. Можно ли самому (и как) найти эти смещения или возможно кто-то из вас знает их?

По всем вопросам по поводу прошивок и ответы на вопрос прошу слать сюда 3131895334@qq.com на форуме бываю редко.

С новым годом, линуксоводы!

http://fayloobmennik.cloud/7169474 //сам дамп, пароль lor



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

SquareFS?
или squashfs?
второе - есть просто образ винта, который можно подмонтировать и скопировать нужное.

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

squashfs. То есть я могу изменить и настроить все по своему вкусу и залить дамп? Неплохо конечно, но без программатора не обойтись.

Мне нужно извлечь бутлодер и сам файл прошивки (в формате .bin) для заливки через tftp на девайс.

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

Хз как там в win. Алгоритм примерно такой:

$ binwalk OpenWRT_rtl8196c_dump.bin
...
https://pastebin.com/d0nuqTbJ


$ dd if=OpenWRT_rtl8196c_dump.bin of=test.sqfs skip=$((0x1B0000)) bs=1
15007744+0 записей получено
15007744+0 записей отправлено
15007744 байт (15 MB, 14 MiB) скопирован, 12,5073 s, 1,2 MB/s

$ file test.sqfs
test.sqfs: Squashfs filesystem, little endian, version 4.0, 4119994 bytes, 1992 inodes, blocksize: 262144 bytes, created: Fri Jan 29 04:26:40 2038

$ unsquashfs test.sqfs
Parallel unsquashfs: Using 4 processors
1826 inodes (1829 blocks) to write

[==============================================================================================================================================================================================================|] 1829/1829 100%

created 1599 files
created 166 directories
created 227 symlinks
created 0 devices
created 0 fifos

$ ls squashfs-root
bin/  dev/  etc/  lib/  mnt/  overlay/  proc/  rom/  root/  sbin/  sys/  tmp/  usr/  var@  www/


А все что до 0x1B0000 можно считать загрузчиком. Распаковать можно, например, так:
$ head -c $((0x1B0000)) OpenWRT_rtl8196c_dump.bin > bootloader.bin

В теории, сам загрузчик должен быть меньше, это уж сам смещения нужные подбирай :)

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

Да, до конца :) Распаковки squashfs это не мешает.
Можно и явный кусок вырезать:

dd if=OpenWRT_rtl8196c_dump.bin of=test.sqfs skip=$((0x1B0000)) bs=1 count=4119994

И потом отдельно отрезать jffs - https://pastebin.com/gxZMQp5k

joy4eg ★★★★★
()
Последнее исправление: joy4eg (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.