一.介绍
binwalk
是一款提取嵌入式设备固件及文件系统中隐藏数据的开源工具。它广泛应用于安全研究、数字取证和嵌入式系统开发中,能够识别文件中的签名模式(如文件头、压缩数据、文件系统等),并帮助用户提取这些内容。
简介:用于提取隐藏数据(做ctf题时可以先用binwalk看看有没有隐藏文件,这个工具用到的次数还是挺多的)
二.下载
1. binwalk2.3.2 版本(建议下载这个,点击后 点“继续”直接下载)
2.GitHub GitHub - ReFirmLabs/binwalk: Firmware Analysis Tool(这个需要按照它的教程操作)
三.安装
1.打开"binwalk2.3.2"文件夹,找到这个界面
2.在上面输入“cmd”,按enter进入cmd
3.运行python setup.py install
安装
python setup.py install
四.使用
复杂的功能自己去研究,这里我就说点比较实用的(查看隐藏文件和提取隐藏文件)
1.随便找个地方打开cmd(建议在文件夹上面打开,这样提取的文件就在文件夹内,并且不需要输入地址只需要输文件名)
2.在cmd中输入命令
(1)查看隐藏文件
python binwalk 文件名
(2)提取隐藏文件
python binwalk -e 文件名
注意:
<1>我加-m是因为我下了两个python,大家可以不用加 。
<2>如果是随便地方打开的cmd,命令就会变成:(记得自己改位置,要加双引号)
python -m binwalk -e "C:\Users\41299\Desktop\新建文件夹 (2)\welcome.jpg"
然后提取的文件在你打开cmd的位置
还没明白的可以看下面的例题
五.例题
题目: bugku的 隐写2
1.下载后有张图片welcome.jpg,把图片放到一个文件夹中
2.打开cmd
3.用binwalk查看是否有隐藏文件
发现有个名为flag的压缩包,说明有隐藏文件
4.用binwalk提取隐藏文件
这时候发现提取出一个文件夹
5.打开文件夹“_welcome.jpg.extracted”,有个压缩包“CD24.zip”,解压,有个“flag.rar”压缩包,密码是871,解压后有张图片“3.jpg”,用文本打开,发现最后有“f1@g{eTB1IEFyZSBhIGhAY2tlciE=}”,base64解码,flag是“f1@{y0u Are a h@cker!}”
六.扩展
在cmd输入python binwalk -h就能看到(我帮大家翻译了,我没怎么用到过)
python binwalk -h
以下是 Binwalk 的主要选项分类及说明:
分类 | 选项 | 参数/示例 | 说明 |
---|---|---|---|
签名扫描 | -B /--signature | 无 | 扫描常见文件签名(如 ZIP、ELF 头等) |
-R /--raw | -R "ABCD1234" | 扫描指定字节序列(十六进制或字符串) | |
-A /--opcodes | 无 | 扫描常见可执行文件的操作码(如 x86/ARM 指令) | |
提取选项 | -e /--extract | 无 | 自动提取已知文件类型(需配合 -B 使用) |
-D /--dd | -D "jpeg:jpg" | 按正则表达式提取文件,并指定扩展名 | |
-M /--matryoshka | 无 | 递归扫描提取的文件(深度由 -d 控制) | |
熵分析 | -E /--entropy | 无 | 计算文件熵(用于检测压缩/加密数据) |
-J /--save | 无 | 将熵分析结果保存为 PNG 图像 | |
二进制差异 | -W /--hexdump | 无 | 生成十六进制转储并对比文件差异 |
原始压缩扫描 | -X /--deflate | 无 | 扫描原始 Deflate 压缩流 |
-Z /--lzma | 无 | 扫描原始 LZMA 压缩流 | |
通用选项 | -l /--length | -l 4096 | 限制扫描的字节数 |
-o /--offset | -o 0x100 | 从指定偏移开始扫描 | |
-C /--directory | -C ./output | 指定提取文件的输出目录 | |
-v /--verbose | 无 | 显示详细输出信息 |