Kamera Reolink P330M má uvnitř přístupné piny sériové linky, konzole je chráněná heslem bc2020. Procesor je ARMv7 (NA51089), 128MB SPI Flash (4bit, 8 MHz) a 512 MB RAM.
Použil jsem busybox-1_36_1 (https://github.com/mirror/busybox/archive/refs/tags/1_36_1.zip)
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
Pak už klasicky, v mém případě bylo potřeba vypnout podporu TC (traffic control, Networking Utilities ---> tc)
make defconfig
make menuconfig
make -j 6
Ještě k exkrakci dat z paměti:
Linuxové jádro nám vypíše toto:
11 fixed-partitions partitions found on MTD device spi_nand.0
Creating 11 MTD partitions on "spi_nand.0":
0x000000000000-0x000000040000 : "loader"
0x000000040000-0x000000080000 : "fdt"
0x000000080000-0x000000180000 : "uboot"
0x000000180000-0x000000580000 : "kernel"
0x000000580000-0x000001480000 : "rootfs"
0x000001480000-0x000001f80000 : "app"
0x000001f80000-0x000002380000 : "para"
0x000002380000-0x000002400000 : "sp"
0x000002400000-0x000002480000 : "ext_para"
0x000002480000-0x000004000000 : "download"
0x000000000000-0x000004000000 : "all"
Creating 11 MTD partitions on "spi_nand.0":
0x000000000000-0x000000040000 : "loader"
0x000000040000-0x000000080000 : "fdt"
0x000000080000-0x000000180000 : "uboot"
0x000000180000-0x000000580000 : "kernel"
0x000000580000-0x000001480000 : "rootfs"
0x000001480000-0x000001f80000 : "app"
0x000001f80000-0x000002380000 : "para"
0x000002380000-0x000002400000 : "sp"
0x000002400000-0x000002480000 : "ext_para"
0x000002480000-0x000004000000 : "download"
0x000000000000-0x000004000000 : "all"
Takže nám stačí uložit "all" tedy /dev/mtd10, která obsahuje všechno.
Na začátku je loader, pak device tree, ten můžeme exportovat a převést na kód takto:
dd if=mtd10_dump.bin of=dt.bin bs=262144 skip=1 count=1
dtc -I dtb -O dts -o device_tree.dts dt.bin
To samé můžeme udělat s U-Bootem (výraz si zjednodušíme zadáním přímo hodnot v hexa :-)):
dd if=mtd10_dump.bin of=uboot.bin bs=512k skip=$((0x80000/512/1024)) count=$(((0x180000-0x80000)/512/1024))
dd if=mtd10_dump.bin of=sp.bin bs=512K skip=71 count=1
V oddílu sp jsem našel prvátní klíč:
echo "-----BEGIN RSA PRIVATE KEY-----" > private.key
grep -a '<PrivateKeyRsaPem>' sp.bin | sed 's/<PrivateKeyRsaPem>//g; s/<\/PrivateKeyRsaPem>//g' >> private.key
echo "-----END RSA PRIVATE KEY-----" >> private.key
openssl rsa -in private.key -check
Funguje. :-)
https://serhack.me/articles/operating-system-reolink-rlc-810-a/

Žádné komentáře:
Okomentovat