[ misc 知识点 ] 音视频隐写
2026-08-22 20:05:38
  • 波形图隐写
  • 频谱图隐写
  • 高低频提取
  • 音频差分
  • 曼切斯特编码
  • 音频倒放
  • 帧提取
  • DTMF
  • SSTV
  • MP3隐写
  • DeepSound
  • 电话音
  • StegoVideo

🏷️ 例题:
| 20251206Mini VN wav也能像png那样美丽吗
| 20260124SpringCTF 启程目标塔卫二(Deepsound)
| 20251201ISCTF 美丽的风景图(RGB通道隐写)
| 20260130furryCTF 余音藏秘(SSTV)
| LitCTF2026 lit_sstv

常用工具

  • Audacity
工具特点 常见情况 冷知识 题干暗示
- [x] Deepsound 听上去很正常

但是文件体积比预期大很多 比如说30秒的语言有20MB

用binwalk或者foremost扫描可能发现隐藏的文件结构
藏在心底的声音
- [x] Silenteye 轻量级 电子蜂鸣 滴答声 高频啸叫 非人声/音乐

波形在AU里呈现规整脉冲或者方波

电子噪音
寂静之眼

无言
- [x] Oursecret 一个很老但是经典的工具

bmp jpg wav比较常见
体积大 冷知识:电视剧《暗格里的秘密》的英文名就是Oursecret

010打开wav结尾多出来的内容的头是9E 97 BA 2A

我们的秘密
- [x] QSSTV&&SOX 在kali运行 电子噪音

短促的 缓慢持续变化的电音
我们用接收机收到了来自空间站传来的信息, 尝试解开答案

Hear, this voice maybe in space

波形图隐写

2.音视频隐写-01

频谱图

| 例题-音视频隐写
| 例题-音视频隐写
| 例题-音视频隐写
| 例题-音视频隐写

高低频提取

| 例题-音视频隐写

发现OurSecret的第二个方法

第二个方法,观察wav文件的编码域,在结尾部分有多出来一个内容:

2.音视频隐写-02

你去搜索这个多出来的内容的头9E 97 BA 2A,也可以发现这是oursecret隐写的典型特征:

2.音视频隐写-03

从出题人mrl64的wp摘录的嗯嗯

| 例题-音视频隐写

音频差分

曼切斯特编码

原理:每个比特中间有一次电平跳变,0高→低,1低→高

我还没见过例题

工具可以搜搜看universal-radio-hacker

脚本可以试试这个

| 例题-音视频隐写

音频倒放

原理:整段从结尾到开头反向播放

听上去像是怪异的人声 有节奏有音节感的咕噜声

像是周董《你听得到》2分10秒的声音 倒放是”只有你能听得到”

在AU里 你可以Ctrl+A选择目录栏的效果器→传统→反向(时间)

帧提取

关键视频很短 故意让关键帧快速闪过 用播放器慢放也看不清楚

命令行 FFmpeg

1
ffmpeg -i video.mp4 frame_%04d.png
1
ffmpeg -i video.mp4 -vf "select=eq(pict_type\,I)" -vsync vfr iframe_%04d.png
1
ffmpeg -i video.mp4 -r 1 frame_%04d.png
1
2
3
4
5
6
7
8
9
10
11
import cv2

cap = cv2.VideoCapture("video.mp4")
frame_num = 0
while True:
ret, frame = cap.read()
if not ret:
break
cv2.imwrite(f"frame_{frame_num:04d}.png", frame)
frame_num += 1
cap.release()

DTMF

原理:按键是双频叠加的复合音,每个数字对应一组特定频率

  • 1 → 同时发出 697Hz + 1209Hz 的声音
  • 5770Hz + 1336Hz
  • *941Hz + 1209Hz

https://dtmf.netlify.app/

2.音视频隐写-04

SSTV

慢扫描电视Slow Scan Television

听起来是短促的电音

原理:图像逐行转成连续变化的音频信号,颜色/亮度对应不同频率,接收端按频率重画成图

如果你拿到一个 .wav 文件,但听上去只是嗡嗡的噪音,它可能其实是一张图

| 例题-音视频隐写
| 例题-音视频隐写

如何使用QSSTV解码

安装QSSTV工具

sudo apt-get install qsstv

设置输入源为文件

qsstv->Options->Configration->Sound->from file

调整音频采样率

很多.wav文件的采样率不是QSSTV的标准值,无法直接打开

使用sox工具修改音频参数

安装sox工具

sudo apt-get install sox

修改音频

cd /home/kali/Desktop

sox "Call the Alien.wav" -r 48000 -b 16 -c 1 output.wav

改成 48000Hz、位深16、单声道(QSSTV 标准),这样output.wav就可以成功被QSSTV读取了

运行QSSTV解码

打开 加载output.wav点击decode 获得一张图像

2.音视频隐写-05

MP3隐写

两条路:在 MP3 帧(压缩数据层)里动手脚 / 利用标签/元数据区域

| 例题-音视频隐写
| 例题-音视频隐写
| 例题-音视频隐写

MP3Stego

原理:编码时用 parity bit(奇偶校验位)嵌入数据,改它不影响音质

关键点:

  • 压缩过程嵌入:WAV→MP3 压缩时顺便嵌入,有 WAV+MP3 对就能从 MP3 提取
  • 需要密码:信息是加密后嵌入的,没密码基本不行

MP3 帧结构

帧头 FF FB(MPEG1 Layer3)/ FF FA(带保护位),隐写可发生在 ancillary data(辅助数据)区

在 010 里打开 MP3,看到大量 FF FB 开头的块,那就是帧边界。

DeepSound

Windows GUI 隐写工具,藏信息进 WAV/FLAC(载体须无损/未压缩)

特征:

  • 音频文件体积异常大——比如 30 秒的语音有 20MB
  • 用 binwalk 或 foremost 扫描可能发现隐藏的文件结构
  • 题干出现”藏在心底的声音”之类关于”深”的表达(DeepSound → 心底的声音)

使用(在 Misc tools 里也有):

  1. Open carrier files 放入载体音频
  2. 填入密码(如果有)
  3. Extract secret files 提取隐藏文件

虽然名字叫 DeepSound,但它在 010 里没有像 OurSecret(9E 97 BA 2A)那样明显的尾部签名。识别主要靠体积异常和题目暗示。

电话音

“电话音”是 CTF 一类题的统称:音频内容是模拟电话拨号、按键音、忙音等场景

常见考点:

  1. DTMF 按键音:电话按键拨号声,提取方式见 2.音视频隐写
  2. 拨号盘脉冲(Pulse Dialing):老式旋转电话拨号时发出的”咔嗒”声,不同数字对应不同次数的脉冲
  3. 电话忙音/回铃音中的摩斯密码:在电话背景音里嵌入摩斯密码
  4. 北美电话键盘字母映射:老式手机键盘上 2=ABC, 3=DEF…这部分见 2.音视频隐写

遇到电话相关的音频,先 DTMF 在线工具扫一遍,如果没有,再手动听有没有摩斯密码或者脉冲声。

StegoVideo

原理:信息藏在视频帧像素的 LSB 中,和图片 LSB 一个原理,载体换成视频

常见工具:

  • OpenPuff:老牌隐写工具,支持视频/图片/音频。需要多个密码(至少 3 个,A/B/C 三类密码各一)
  • 自己写脚本:用 OpenCV 逐帧读视频,提取每个帧的 LSB

一般出题不会给你几十秒的正常视频让你逐帧分析——要么视频很短(几帧),要么关键帧故意让你看到一闪而过的内容(用 ffmpeg 帧提取法,见 2.音视频隐写)。

如果视频看着完全正常但文件体积比预期大,并且没有明显的帧异常,那可能是把文件藏在了视频容器的 metadata 或者末尾——binwalk 扫一下通常能分离出来。

上一页
2026-08-22 20:05:38
下一页