我一直在玩一个便宜的(沃尔玛有售$ 15)WiFi相机。它具有一个UART端口,可将我放入一个外壳中,从该外壳中可以启动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有了很多了解。的东西,但我仍然有足够的知识空白,不足以知道下一步是什么。任何指导?

#1 楼


但是,即使文件系统以读写方式安装,当我编辑任何内容(即init.d)然后重新启动时,文件系统又回到其先前状态,并且telnetd无法运行。 >
在这种情况下,听起来好像是为了使文件系统的修改在设备重新启动后仍然存在,必须对固件映像本身进行更改,然后使用“升级”功能将修改后的映像写入内存由设备提供。以下是根据Google Code上的固件mod kit存档页面的常规工作流程:固件的文件系统或Web UI(webif)
重建固件
将修改后的固件闪存到设备上并将其固定(ha)



似乎没有问题,并且由于文件系统格式是cpio而不是更奇特的东西,您可以使用GNU cpio实用程序,而无需任何特殊工具来修改文件系统,然后重新压缩它。

修改后的文件系统可能需要位于引导加载程序期望的重建固件映像中的偏移处。作为参考,devttys0在他的文章“固件补丁:修复TEW-632BRP”中有完整的演练。自定义固件

bitsum论坛

如何查看,修改和重新创建initrd.img。