用途:用于怀疑存在隐写时的检测与提取,典型场景包括 CTF 题目、取证对象、文件尾异常、图片或音频结构异常(如 IEND 后仍有数据、EXIF 段超长、像素数与文件大小不匹配),以及多载体组合藏数。不适用于正常文件分析、密文解密(转 re-crypto-decrypt)和未知文件类型识别(先走 re-triage),也不建议无载体线索时漫无目的扫描。
主要能力:文件尾附加检测(binwalk、hexdump、pngcheck 核对 IEND 与文件尾差值、strings 弱线索);图片 LSB 扫描与提取(zsteg 全通道或指定通道/位平面,如 zsteg -E 'b1,rgb,lsb,xy',也可用 python3 + PIL 遍历像素位序列,或用 stegsolve 逐位平面查看);EXIF 与元数据查看(exiftool -a);音频隐写(sox 生成频谱图目检、steghide 提取、相位/回声类需专门工具);JPEG DCT 域(outguess 等旧工具);文件冗余区与多载体分片拼接;提取后做 magic 检查、可读性验证与嵌套再检测。
使用方式:按顺序执行并归档每步产物(路径与 sha256)。常用命令包括 gem install zsteg、apt install steghide、apt install libimage-exiftool-perl、apt install pngcheck、apt install sox、apt install foremost、apt install outguess、pip install pillow;验证可用 zsteg -h、steghide --version、exiftool -ver、pngcheck -v、sox --version。提取尾部数据可用 dd if=sample.png of=tail.bin bs=1 skip=<偏移>。
限制与坑:LSB 提取受行序、位序、通道影响,需枚举组合;JPEG 有损压缩会覆盖位平面,LSB 类方法主要针对 PNG/BMP;steghide 可能需要口令,无密钥时标注不可提取;压缩数据天然高熵,熵特征只能作怀疑线索;提取物可能先压缩再嵌入,需先查 zlib/gzip/bzip2 头再解压;工具输出存在误报,应按 magic 与可读性过滤;副本转码会改变结果,应使用原始载体并核对哈希。检测与提取的分支判定及证据分级参见 decision-tree,边界与反例参见 gotchas。