Binwalk 是一个用于分析、提取和逆向工程固件文件的工具
-
安装 Binwalk: 在 Ubuntu 或 Debian 系统上,可以使用以下命令安装 Binwalk:
sudo apt-get update sudo apt-get install binwalk
对于其他操作系统,请参考 Binwalk 的官方文档(https://github.com/ReFirmLabs/binwalk)。
-
分析固件文件: 首先,使用 Binwalk 分析固件文件以查找文件系统和其他有趣的信息。运行以下命令:
binwalk
将
替换为你要分析的固件文件名。 -
提取文件系统: 根据 Binwalk 的输出结果,找到文件系统的偏移量。例如,如果 Binwalk 输出了以下内容:
DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 0 0x0 LZMA compressed data, properties: 0x5D, dictionary size: 65536 bytes, uncompressed size: 798416 bytes 1468032 0x170000 Squashfs filesystem, little endian, version 4.0, compression: xz, size: 1468032 bytes, 317 inodes, blocksize: 131072 bytes, created: 2021-01-01 00:00:00
从上面的输出中,我们可以看到 Squashfs 文件系统的偏移量为
0x170000
。 -
使用 dd 命令提取文件系统: 现在我们知道了文件系统的偏移量,可以使用 dd 命令将其提取到单独的文件中。运行以下命令:
dd if=
of= bs=1 skip= 将
替换为你要分析的固件文件名,
替换为你想要保存提取的文件系统的文件名,
替换为文件系统的偏移量(不要忘记将偏移量转换为十进制)。例如:dd if=firmware.bin of=filesystem.squashfs bs=1 skip=1468032
-
解压文件系统: 最后,使用 unsquashfs(如果你已经安装了 squashfs-tools 包)或其他适当的工具解压提取的文件系统文件。运行以下命令:
sudo apt-get install squashfs-tools unsquashfs
将
` 替换为你在上一步中保存的文件系统文件名。这将在当前目录下创建一个名为 “squashfs-root” 的文件夹,其中包含文件系统的内容。
现在你已经成功地使用 Binwalk 提取了文件系统,并可以对其进行进一步的分析和研究。