使用“cat”克隆块设备

使用“cat”克隆块设备

我能够远程登录到运行定制 Linux 固件的路由器。它是使用“buildroot”编译的。

我能够挖掘出路由器的一些规格。我打算克隆路由器的固件以供进一步研究。 “dd”不可用,因此我尝试使用 cat 将闪存驱动器 (mtdblock0) 的全部内容通过 netcat 扔到我的电脑上:

路由器:

cat /dev/mtdblock0 | nc ip port

个人电脑:

nc -lp port > routerFirmware

然后在我的电脑上我使用“binwalk”来检查下载的文件。结果是:

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Squashfs filesystem, little endian, non-standard signature, version 4.0, compression:gzip, size: xxxxxxx bytes, xxx inodes, blocksize: xxxxxx bytes, created: xxxx-xx-xx xx:xx:xx

到目前为止看起来不错。但“# unsquash routerFlash”会导致:

Can't find a SQUASHFS superblock on routerFlash

我认为最可能的原因是“cat”和“nc”无法按照我的意图克隆整个闪存。我被困在这里了。任何帮助,将不胜感激!

答案1

事实证明“克隆”步骤不是问题。我的路由器供应商使用非标准的“幻数”来创建 squashfs 系统。我被建议给大脚野人一枪。幸运的是,sasquatch 正确读取并理解了文件压缩和其他细节,而 unsquash 没有正确报告。

结果:我的电脑上有一个路由器固件的副本,我可以按照我的意愿研究和分析它。到目前为止看起来不错。

相关内容