Приобрёл IP камеру V380E, плата MVR3313S-A4-V3.8. Подключиться через telnet не удалось, т.к. пароль на рута найти не вышло. Распаял UART и подключился к консоли
screen /dev/ttyUSB0 115200
Так я получил адреса образов в памяти. Так же можно получить их утилитой binwalk.
Считал дамп из SPI flash программатором на CH341
341spi -r V380E.binКоманды для flashrom:
flashrom -p ch341a_spi -r V380E.bin
Далее отделил образ squashfs
dd if=V380E.bin of=V380E-A.bin bs=1 count=1966080 skip=2490368
Распаковал ФС
unsquashfs V380E-A.bin
Сгенерированный хэш пароля сохранил в etc/shadow
mkpasswd -m sha-512 -S 12345678 -s <<< 1
Получится
root:$6$12345678$U6Yv5E1lWn6mEESzKen42o6rbEmFNLlq6Ik9X3reMXY3doKEuxrcDohKUx0Oxf44aeTIxGEjssvtT1aKyZHjs.:10933:0:99999:7:::
bin:*:10933:0:99999:7:::
daemon:*:10933:0:99999:7:::
nobody:*:10933:0:99999:7:::
Упаковал обратно в squashfs образ
cd squashfs-root mksquashfs . ../V380E-A.squashfs -comp xz -progress -Xbcj armthumb
Если указать иную архитектуру, будет ошибка
SQUASHFS error: Filesystem uses "unknown" compression. This is not supported No filesystem could mount root, tried: squashfs
Затем нужно переписать в дампе памяти образ
cd .. dd status=progress if=V380E-A.squashfs of=V380E.bin seek=2490368 bs=1 conv=notrunc
И залить обратно в память, предварительно стерев на всякий случай память, а после прошивки проверить содержимое
341spi -e 341spi -w V380E.bin 341spi -r V380E.tmp diff V380E.tmp V380E.binКоманды для flashrom:
flashrom -p ch341a_spi -E flashrom -p ch341a_spi -w V380E.bin flashrom -p ch341a_spi -v V380E.bin
После загрузки можно войти в систему и удалить или заменить противные звуки, которые находятся в /mnt/mtd/mvsound, доступной для записи.
Дамп с паролем «1» и удалёнными звуками.