2026.7.18(1)【图片隐写】刷新过的图片
题目信息项目内容题目名称刷新过的图片题目来源BUUCTF题目类型MISC / 图片隐写子分类F5 隐写考点F5 隐写算法识别与提取、ZIP 伪加密难度⭐⭐⭐最终 Flagflag{96efd0a2037d06f34199e921079778ee}️ 使用工具F5-steganography核心工具专门用于提取 F5 隐写内容010 Editor/WinHex十六进制编辑器用于修改伪加密标志 解题思路这道题的关键在于题目名称“刷新过的图片”—— 键盘上的刷新键是F5因此提示本题使用的是F5 隐写。F5 隐写是一种比 LSB 更隐蔽的图片隐写技术它基于矩阵编码进行信息嵌入常规的binwalk、StegSolve、zsteg等工具都无法检测到。F5 隐写原理F5 隐写由德国学者 Andreas Westfeld 在 2001 年提出。它不是直接修改像素点的最低有效位而是通过矩阵编码将信息嵌入到 JPEG 图片的 DCT 系数中。这种方式对图片视觉质量影响极小且能隐藏比 LSB 更多的数据因此常规隐写分析工具难以发现痕迹。第 1 步下载并解压附件下载题目附件解压后得到一张Misc.jpg图片。第 2 步快速检查排除法按照常规图片隐写流程先做快速检查检查项操作结果图片属性右键查看详细信息无有用信息binwalk 检测binwalk Misc.jpg无额外文件StegSolveLSB 通道提取无隐藏信息steghidesteghide extract -sf Misc.jpg无隐藏信息strings / 010Editor查看文件末尾无明文附加结论常规方法全部无效结合题目名称“刷新”判断为F5 隐写。第 3 步安装 F5-steganography 工具在 Kali Linux 终端中执行git clone https://github.com/matthewgao/F5-steganography克隆完成后进入目录cd F5-steganography⚠️注意F5-steganography 需要Java 8环境运行使用其他版本如 Java 11可能会报错。第 4 步提取隐写内容将Misc.jpg放入F5-steganography目录下执行提取命令 C:\Program Files\Eclipse Adoptium\jdk-8.0.492.9-hotspot\bin\java.exe Extract D:\Google浏览器下载\Misc.jpg执行后会在当前目录生成一个output.txt文件。第 5 步识别 output.txt 的真实格式用010 Editor或WinHex打开output.txt会发现文件头是50 4B 03 04这是ZIP 压缩包的文件头标志PK开头。这里补充一下如果是50 4B 03 04→ 这是 ZIP 文件如果是FF D8 FF→ 这是 JPG 图片如果是89 50 4E 47→ 这是 PNG 图片如果是47 49 46 38→ 这是 GIF 图片将output.txt重命名为output.zip。第 6 步解压并处理伪加密尝试解压output.zip发现需要密码。题目没有提供密码提示因此判断为伪加密。伪加密简单来说就是文件本质上是没有密码的但出题人修改了文件头的一个“标志位”让压缩软件误以为这个文件有密码。当你双击这个压缩包时软件会弹出一个密码输入框看起来和“真加密”一模一样。但实际上你不需要任何密码只要用十六进制编辑器把这个“标志位”改回原来的数值就能直接解压。用010 Editor打开output.zip搜索十六进制50 4B 01 02ZIP 中央目录文件头标志找到该标志后面的全局方式位标记通常在第 4-5 个字节处伪加密时该值为01 00将其修改为00 00标志位数值含义00 00未加密09 00常见伪加密标志01 00真正的加密需要密码才能解开本题是用这个方法加密的第 7 步获取 Flag保存修改后的 ZIP 文件再次解压成功解压出flag.txt。打开即可获得 Flag。 最终 Flagflag{96efd0a2037d06f34199e921079778ee}⚠️ 常见问题与解决问题解决方案java Extract命令报错切换到Java 8环境output.txt打开是乱码正常现象用 010 Editor 查看文件头确认是否为 ZIP解压 ZIP 需要密码检查是否为伪加密修改全局方式位标记修改后仍无法解压检查是否将所有01 00都改为了00 00