如何使用binwalk提取文件系统

avatar
作者
猴君
阅读量:0

Binwalk 是一个用于分析、提取和逆向工程固件文件的工具

  1. 安装 Binwalk: 在 Ubuntu 或 Debian 系统上,可以使用以下命令安装 Binwalk:

    sudo apt-get update sudo apt-get install binwalk 

    对于其他操作系统,请参考 Binwalk 的官方文档(https://github.com/ReFirmLabs/binwalk)。

  2. 分析固件文件: 首先,使用 Binwalk 分析固件文件以查找文件系统和其他有趣的信息。运行以下命令:

    binwalk <firmware_file> 

    <firmware_file> 替换为你要分析的固件文件名。

  3. 提取文件系统: 根据 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

  4. 使用 dd 命令提取文件系统: 现在我们知道了文件系统的偏移量,可以使用 dd 命令将其提取到单独的文件中。运行以下命令:

    dd if=<firmware_file> of=<output_file> bs=1 skip=<offset> 

    <firmware_file> 替换为你要分析的固件文件名,<output_file> 替换为你想要保存提取的文件系统的文件名,<offset> 替换为文件系统的偏移量(不要忘记将偏移量转换为十进制)。例如:

    dd if=firmware.bin of=filesystem.squashfs bs=1 skip=1468032 
  5. 解压文件系统: 最后,使用 unsquashfs(如果你已经安装了 squashfs-tools 包)或其他适当的工具解压提取的文件系统文件。运行以下命令:

    sudo apt-get install squashfs-tools unsquashfs<output_file> 

    将<output_file>` 替换为你在上一步中保存的文件系统文件名。这将在当前目录下创建一个名为 “squashfs-root” 的文件夹,其中包含文件系统的内容。

现在你已经成功地使用 Binwalk 提取了文件系统,并可以对其进行进一步的分析和研究。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!