温馨提示×

如何使用binwalk提取文件系统

小樊
150
2024-09-12 07:36:55
栏目: 编程语言

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 提取了文件系统,并可以对其进行进一步的分析和研究。

0