321 字
2 分钟
MISC——图片隐写之JPEG DCT隐写

JPEG和PNG的LSB隐写在底层逻辑上完全不同:PNG是把数据直接写进像素的最低有效位,而JPEG是有损压缩,像素值会在压缩中变化,所以LSB隐写在JPEG上不成立。
为了在 JPEG 中隐藏信息,出题人通常会将数据嵌入到 DCT(离散余弦变换)的量化系数中。这就是所谓的“压缩域/变换域”隐写。
推断前提:
-
附件是
.jpg/.jpeg格式。 -
常规手段(
strings、exiftool、binwalk)均未发现明显线索。 -
尝试使用
zsteg或StegSolve无任何反应。
我们可以使用stegdetect命令来检验指纹
即stegdetecd 文件名
如果输出类似 jphide(***) 或 outguess,就可以对应去寻找提取工具。
不过stegdetect 是概率性检测,存在误报和漏报。如果它没报出结果,不代表绝对没有隐写,依然需要手动尝试下面最常用的工具。
- Steghide 支持JPEG/BM/WAV,方式:steghide info 文件名(查看是否嵌入) 提取:steghide extract -sf 文件名 -p “密码” 如果没有密码可以使用/usr/share/wordlists/rockyou.txt字典爆破
- QutGuess //无密码 outguess -r 图片.jpg 输出.txt //带密码 outguess -k “密码” -r 图片.jpg 输出.txt
- jpseek 图片.jpg 输出文件.txt