我正在尝试取消通过binwalk检索到的文件。

DECIMAL     HEX         DESCRIPTION
-------------------------------------------------------------------------------------------------------------------
43892       0xAB74      U-Boot boot loader reference
131072      0x20000     Squashfs filesystem, little endian, version 4.0, compression:gzip, size: 818155 bytes,  712 inodes, blocksize: 131072 bytes, created: Wed Jan  8 16:01:03 2014 
1242666     0x12F62A    uImage header, header size: 64 bytes, header CRC: 0xBFAA8D79, created: Wed Jan  8 12:41:47 2014, image size: 1457340 bytes, Data Address: 0x80002000, Entry Point: 0x80006F30, data CRC: 0x81C66D08, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "MIPS Linux-2.6.32"
1242730     0x12F66A    LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 4631160 bytes
2705410     0x294802    Squashfs filesystem, little endian, version 4.0, compression:gzip, size: 22862751 bytes,  1711 inodes, blocksize: 131072 bytes, created: Wed Jan  8 16:01:06 2014 
26285890    0x1911742   LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 1393 bytes
26287433    0x1911D49   gzip compressed data, from Unix, last modified: Thu Jan  9 11:32:52 2014


当我得到unsquash -s file.squashfs时,我得到: br />
Found a valid SQUASHFS 4:0 superblock on file.squashfs.
Creation or last append time Wed Jan  8 15:01:06 2014
Filesystem size 22326.91 Kbytes (21.80 Mbytes)
Compression gzip
Block size 131072
Filesystem is exportable via NFS
Inodes are compressed
Data is compressed
Fragments are compressed
Always_use_fragments option is not specified
Xattrs are compressed
Duplicates are removed
Number of fragments 133
Number of inodes 1711
Number of ids 1


所以我有点困惑为什么它不会解压缩。我也尝试过使用squashfs的最新工具。任何人都可以给我一些指导,说明如何继续进行并调试此问题?

评论

检查图像是否被截断,即是否具有SquashFS标头,但它期望的压缩数据可能不存在。
您使用的文件大小是多少?

我还添加了binwalk输出,总文件大小约为25.2 MB

@LucasKauffman您能否指定此squashfs映像来自哪个固件,和/或提供下载链接?

#1 楼

供应商以修改SquashFS而臭名昭著。从历史上看,他们这样做是为了修补LZMA支持,因为SquashFS仅在4.0版之前才正式支持gzip压缩。即使SquashFS 4.0现在正式支持gzip和LZMA,许多供应商仍然使用其“ hacked”版本的SquashFS。有些人甚至在SquashFS标头中交换了gzip / LZMA标志(例如,标头报告说它实际上是LZMA时已被gzip压缩)。那里有大约20种左右的unsquashfs实用程序,一种可能有效(所包含的unsquashfs_all.sh脚本是您的朋友)。如果它们都不起作用,那么最好的选择是从供应商那里为您的设备或其他设备(供应商通常重用代码)寻找可能包含其补丁squashfs实用程序的GPL版本。

评论


不,已经尝试过

–卢卡斯·考夫曼(Lucas Kauffman)
14年1月14日在16:19

已经尝试过FMK?还是已经尝试寻找GPL代码?或两者?您可能应该编辑问题,以表明您尝试过的所有事情,以便获得更多有用的答案。另外,如果其他人要分析固件映像或SquashFS映像以尝试找到答案,则可能会有所帮助。

–devttys0
2014年1月14日下午16:58

已经尝试过FMK,它是Zyxel路由器,实际上还查看了GPL代码,在运行它之前修补了我的squashfs,没有结果:(

–卢卡斯·考夫曼(Lucas Kauffman)
14年1月14日在17:02

您修补了(即正式的)squashfs工具,还是修补了他们在GPL版本中提供的squashfs工具?您不会收到解压缩错误,这表明解压缩可能正常工作和/或它们可能已修改了SquashFS格式的其他部分。

–devttys0
2014年1月14日17:12

我修补了官方工具,是否知道在Zyxel的情况下可以找到这些工具?

–卢卡斯·考夫曼(Lucas Kauffman)
2014年1月14日17:47