我的长期目标是弄清楚如何替换或编辑相机的流二进制文件,以使其不依赖托管的云服务器来存储和流视频。在我的房子里,视频从他们的云服务器上弹起;我必须使用他们专有的应用程序!)我的短期(当前)目标是弄清楚如何重新包装固件并重写为相机。我能够嗅探固件更新,并且可以在以下位置找到固件文件:
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。