2026.7.13(7)【补充】用 binwalk、foremost 分离文件

📦 “分离”是什么意思?

在CTF中,出题人经常会把多个文件拼接(合并) 成一个文件。比如:

一张正常的图片.jpg + 一个藏着flag的压缩包.zip = 一个看起来是图片的文件

当你用图片查看器打开这个“合并文件”时,只会显示前面的图片部分,后面的压缩包数据会被忽略,所以你根本看不到里面还藏着东西。

“分离”就是把这个合并文件拆开,还原成原本的多个独立文件


🛠️ binwalk 和 foremost 是干什么的?

工具作用特点
binwalk分析文件中是否包含其他已知格式的文件(如 ZIP、RAR、Zlib 等),并可以提取出来快速、准确,适合检测文件尾部拼接的文件
foremost按照文件头(如 FF D8 FF 是 JPG 开头,50 4B 03 04 是 ZIP 开头)自动从文件中切分出独立的文件适合“数据恢复”场景,即使文件被部分损坏也能尝试恢复

🔍 实际操作示例

场景:一张图片里藏了一个ZIP压缩包
  1. 使用 binwalk 检测
binwalk picture.jpg

输出可能如下:

DECIMAL       HEXADECIMAL     DESCRIPTION
0             0x0             JPEG image data
40235         0x9D2B          Zip archive data, at least v2.0 to extract

这表示:在文件的 40235 字节 处,检测到了一个 ZIP 压缩包的开始。

  1. 使用 binwalk 提取
binwalk -e picture.jpg

执行后,binwalk 会自动把检测到的 ZIP 文件提取出来,放在 _picture.jpg.extracted 文件夹里。

  1. 使用 foremost 提取
foremost picture.jpg

执行后,foremost 会按照文件头类型,把所有能识别的文件都提取出来(即使文件头被部分覆盖,也能尽可能恢复)。
![[Pasted image 20260713154020.png]]
![[Pasted image 20260713154847.png]]


❓ “没有额外文件”是什么意思?

在解题记录中,我写的“没有额外文件”是指:

经过 binwalk 和 foremost 分析后,发现这张图片 没有捆绑其他文件(如 ZIP、RAR、TXT 等),就是一张纯粹的图片。

这意味着:

  • ✅ 题目没有采用“文件拼接”的隐藏方式。
  • ✅ 接下来应该尝试其他方向的隐写(如 LSB、文件尾部字符串、图片高度修改等)。

📋 对于一个图片的快速检查的完整流程

  1. 查看图片属性 → 无有用信息
  2. binwalk 检测
    • 命令:binwalk steg.png
    • 结果:只检测到 PNG 图片及其正常的 IDAT 压缩数据块,未发现额外文件拼接的迹象
  3. foremost 分离 → 未分离出其他文件
  4. strings / 十六进制检查 → 未发现 flag 等相关字符串
  5. 结论:排除文件拼接和文件尾部附加信息,下一步尝试 LSB 隐写

🎯 总结

当你在解题记录中看到:

用 binwalk、foremost 分离,没有额外文件

意思就是:

我用专业工具检查过了,这张图片没有被拼接其他文件。接下来我们可以把精力放在其他隐写方向上(比如 LSB、文件尾部字符串、修改图片高度等)。

这是一个标准的“排除法”步骤,目的是快速缩小解题范围。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值