更高级的文件格式识别binwalk

安装

# apt install binwalk

使用

$  binwalk 文件

它会检查文件中的特点并输出比如:

$ binwalk /bin/bash
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             ELF, 64-bit LSB shared object, AMD x86-64, version 1 (SYSV)
4411          0x113B          mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: 8bit
852984        0xD03F8         Unix path: /usr/share/bashdb/bashdb-main.inc
864232        0xD2FE8         Unix path: /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.
869632        0xD4500         Copyright string: "Copyright (C) 2016 Free Software Foundation, Inc."
871602        0xD4CB2         Unix path: /usr/share/locale

对比两个文件的不同

$ binwalk -W 文件一 文件二

比如对比 /initrd.img 和 /initrd.img.old

$ binwalk -W /initrd.img /initrd.img.old

输出分为5栏:

当前位置
文件 1 的 十六进制输出
文件 1 的 ascii输出

文件 2 的 十六进制输出
文件 2 的 ascii输出

两个文件不同的地方以红色显示
相同的地方以绿色显示

提取分析出来的数据

$ binwalk -e 文件

:

$ binwalk -e boot.img

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Android bootimg, kernel size: 8348496 bytes, kernel addr: 0x80008000, ramdisk size: 1658256 bytes, ramdisk addr: 0x81000000, product name: ""
2048          0x800           Linux kernel ARM boot executable zImage (little-endian)
18423         0x47F7          gzip compressed data, maximum compression, from Unix, last modified: 1970-01-01 00:00:00 (null date)
8351744       0x7F7000        gzip compressed data, maximum compression, from Unix, last modified: 1970-01-01 00:00:00 (null date)
9080338       0x8A8E12        xz compressed data
10010624      0x98C000        Qualcomm device tree container, version: 2, DTB entries: 24
$ ls _boot.img.extracted/
47F7  7F7000  8A8E12  8A8E12.xz

看起来将:

18423         0x47F7          gzip compressed data, maximum compression, from Unix, last modified: 1970-01-01 00:00:00 (null date)
9080338       0x8A8E12        xz compressed data

2段数据成功提取了出来,并进行了第二次解压:

$ file ./_boot.img.extracted/
./47F7:      data
./7F7000:    ASCII cpio archive (SVR4 with no CRC)
./8A8E12:    Zip archive data, at least v2.0 to extract
./8A8E12.xz: XZ compressed data
2 个赞

服务器资源由ZeptoVM赞助

Partners Wiki Discord