我一直在玩便宜的(沃尔玛特价 15 美元)WiFi 相机。它有一个 UART 端口,可以让我进入一个 shell,我可以从中启动 telnetd 并轻松登录。然而,即使文件系统以读写方式挂载,当我编辑任何内容(即 init.d)然后重新启动时,文件系统会返回到其先前的状态并且 telnetd 不会运行。:(
我的长期目标是弄清楚如何替换或编辑相机的流式二进制文件,以便它不依赖于托管的云服务器来存储和流式传输视频。(目前从我家外面流式传输,视频从他们的云服务器反弹;我必须使用他们的专有应用程序!)我的短期(当前)目标是弄清楚如何重新打包固件并重写到相机。
我能够嗅探固件更新,固件文件位于:
https://app.isecurityplus.com/seedonk/firmware/minions/A356_upgrade_00.10.008_20161107.img
和
$ file A356_upgrade_00.10.008_20161107.img
A356_upgrade_00.10.008_20161107.img: u-boot legacy uImage, Imogen-X860-I, Linux/ARM, OS Kernel Image (Not compressed), 6709304 bytes, Mon Nov 7 02:33:58 2016, Load Address: 0x80008000, Entry Point: 0x80008000, Header CRC: 0x37467C4E, Data CRC: 0x93CBB08E
binwalk 显示:
$ binwalk -Me A356_upgrade_00.10.008_20161107.img
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 uImage header, header size: 64 bytes, header CRC: 0x37467C4E, created: 2016-11-07 02:33:58, image size: 6709304 bytes, Data Address: 0x80008000, Entry Point: 0x80008000, data CRC: 0x93CBB08E, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: none, image name: "Imogen-X860-I"
10063 0x274F xz compressed data
10284 0x282C xz compressed data
<etc..snip.. eventually it creates a 0.cpio file>
$ cpio -idv < 0.cpio
$ ls
0.cpio dev init lib32 media package run system var
bin etc ko libexec mnt proc sbin tmp
cpio-root home lib linuxrc opt root sys usr
这个社区很棒,我学到了很多关于 RE 的知识。我在这里找到了一些关于重新包装这类东西的帖子,但我仍然有足够的知识差距来不知道下一步会在哪里。任何指导?
非常感谢!