2.4.4 binwalk

Binwalk 介绍

Binwalk 是一个快速,易于使用的工具,用于分析,逆向工程和提取固件映像。 官方给出的用途是提取固件镜像,然而,我们在做一些隐写类的题目的时候,Binwalk 这个工具非常方便。

最好在 *nix 系统下使用,如果你的 Windows 版本是 1703 及以上,那么在 WSL 中安装 binwalk 是个不错的选择。

安装

如果你是在 Ubuntu 下,那么使用下面的命令安装:

$ sudo apt install binwalk

快速入门

扫描固件

Binwalk 可以扫描许多嵌入式文件类型和文件系统的固件镜像,比如:

$ binwalk firmware.bin

DECIMAL     HEX         DESCRIPTION
-------------------------------------------------------------------------------------------------------------------
0           0x0         DLOB firmware header, boot partition: "dev=/dev/mtdblock/2"
112         0x70        LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 3797616 bytes
1310832     0x140070    PackImg section delimiter tag, little endian size: 13644032 bytes; big endian size: 3264512 bytes
1310864     0x140090    Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 3264162 bytes,  1866 inodes, blocksize: 65536 bytes, created: Tue Apr  3 04:12:22 2012

文件提取

可以使用 binwalk 的 -e 参数来提取固件中的文件:

$ binwalk -e firmware.bin

如果你还指定了 -M 选项,binwalk 甚至会递归扫描文件,因为它会提取它们:

$ binwalk -Me firmware.bin

如果指定了 -r 选项,则将自动删除无法提取的任何文件签名或导致大小为 0 的文件:

$ binwalk -Mre firmware.bin

参考资料

Last updated