提取基于 SquashFS 的文件系统

逆向工程 米普 垃圾桶
2021-07-06 15:42:05

我正在尝试使用 binwalk 提取 Ubiquiti Networks ER-X 的固件。目前我已经下载了固件的副本并解压缩了它。我打开了包含文件系统内容的文件夹,发现compat squashfs.tmp squashfs.tmp.md5 version.tmp vmlinux.tmp vmlinux.tmp.md5. 我检查了哪个文件最大,发现squashfs.tmp最大,大小约为 78MB。我用 -e 标志运行 binwalk ,但没有提取文件系统。链接到固件

1个回答

我能够很好地提取文件系统。我使用了 Binwalk v2.1.2b 并已sasquatch安装。

提取的文件系统:

_squashfs.tmp.extracted/squashfs-root $ ls
bin  boot  config  dev  etc  home  lib  media  mnt  opt  proc  root  root.dev  run  sbin  selinux  srv  sys  tmp  usr  var

它确实适用于 MIPS 设备:

$ file bin/bash
bin/bash: ELF 32-bit LSB  executable, MIPS, MIPS-II version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=1b20797b11fa0a481a334f911ac5dfa27ce20c75, stripped

确保您的所有工具都是最新的,并且安装了必要的插件。安装页面

Binwalk 依赖多个外部实用程序来自动提取/解压缩文件和数据:

# Install standard extraction utilities
$ sudo apt-get install mtd-utils gzip bzip2 tar arj lhasa p7zip p7zip-full cabextract cramfsprogs cramfsswap squashfs-tools sleuthkit default-jdk lzop srecord

# Install sasquatch to extract non-standard SquashFS images
$ sudo apt-get install zlib1g-dev liblzma-dev liblzo2-dev
$ git clone https://github.com/devttys0/sasquatch
$ (cd sasquatch && ./build.sh)

# Install jefferson to extract JFFS2 file systems
$ sudo pip install cstruct
$ git clone https://github.com/sviehb/jefferson
$ (cd jefferson && sudo python setup.py install)