我正在尝试提取路由器的squashfs文件系统。这是固件。

首先,我解压缩文件。接下来,我运行binwalk以获得有关该文件的一些信息。我得到了三个文件:

DECIMAL     HEX         DESCRIPTION
-------------------------------------------------------------------------------------------------------
58          0x3A        TRX firmware header, little endian, header size: 28 bytes,  image size: 6656000 bytes, CRC32: 0x2B1713B2 flags/version: 0x10000
86          0x56        LZMA compressed data, properties: 0x5D, dictionary size: 65536 bytes, uncompressed size: 3614368 bytes
1282426     0x13917A    Squashfs filesystem, little endian, non-standard signature,  version 3.0, size: 5367357 bytes,  853 inodes, blocksize: 65536 bytes, created: Wed Aug  7 05:08:47 2013 


binwalk -e上运行unsquashfs失败,表示无法找到魔术块。这是因为文件使用的是非标准魔术。将魔术更改为标准魔术后,13917A.squashfsunsquashfs会将其检测为squashfs文件系统。但是file未能成功完成:

.
├── 13917A.squashfs
├── 56
└── 56.7z


我还尝试使用Jeremy Collake的Firmware Mod Kit提取文件系统。这也失败了:

caff@UbunutuX2:~/Netgear/test$ unsquashfs 13917A.squashfs 
Reading a different endian SQUASHFS filesystem on 13917A.squashfs
Filesystem on 13917A.squashfs is (768:0), which is a later filesystem version than I support!


如何解压缩此squashfs文件系统?

#1 楼

解压缩归档文件后,运行带有

binwalk -eM *.chm


binwalk,标志e代表自动提取,M代表--matryoshka或递归扫描和提取。经过几次递归解压缩后,您将获得一个squashfs根目录,其中包含您想要的内容。

对于它的价值,我在binwalk版本1.2.1中进行了尝试。

评论


谢谢!它必须是我的binwalk版本。 Ubuntu存储库中的一个是V1.0。

– 0xcaff
2014年4月7日在16:45