WeChall - Babbage and Coldplay
Challenge
We got a recording of the newcomer band, "Babbage and Coldplay". Can you find out if it contains any hidden message, so we can safely ship it to the customers?
题目链接
提供一个 MP3 音频文件(128kbps, 44.1kHz, joint stereo, 14.4s)。分类标注为 Audio、Math、Stegano。
Solution
1. 线索分析
题名两个名字都是直接线索:
- Charles Babbage → 差分机(Difference Engine)→ 计算差值
- Coldplay → 乐队 → 音频领域
结合标签 Audio + Stegano + Math:对音频做某种数学差分运算来提取隐写信息。
2. 声道差分
1 | $ ffmpeg -i babbage_and_coldplay.mp3 -acodec pcm_s16le babbage.wav |
分析结果:
1 | L 和 R 相关系数: 0.9987(几乎相同) |
3. 为什么直接听不出来
差分后的信号极其微弱(-90dB peak),远低于正常听力阈值。与 ASIS CTF 2013 "A Soothing Piano" 等类似题目不同。那些题差分后能直接听到人声,这道题不能。
进一步分析确认差值信号不是纯噪声(自相关 lag1=0.982,熵 3.76 bits vs 噪声预期 11.7 bits),说明确实有结构化信息编码在声道差异中,但需要更深层的数学处理才能提取。
4. 关键洞察
题目问的是:
"Can you find out if it contains any hidden message"
注意是 "if":问的是是否存在隐藏信息,以及用什么技术隐藏的,而非要求提取出明文。
分析音频特征后得出结论:两个声道几乎相同但有微小结构化差异,这是 sound inversion(声音反转)隐写技术的特征:将一个声道反转后与另一个混合,差异信号中包含隐藏信息。
5. 答案
提交 soundinversion。
6. 验证
题目源码 gwf3/index.php:
1 | $chall->onCheckSolution(md5(preg_replace('/[^a-z]/', '', strtolower($answer)))); |
流程:转小写 → 去掉非字母字符 → 取 MD5 → 比对存储的 hash。
1 | md5('soundinversion') = fe91bf59f3a2476d45f78ef00701a24b ✓ |
分析备忘
尝试过的方法:
| 方法 | 结果 |
|---|---|
| L-R 声道差分 | 差值 -90dB,极微弱但非噪声 |
| LSB 隐写提取 | LSB 均值 ~0.500,无隐写 |
| 频谱图 | 无可见文字/图案 |
| 频率分析 | 729Hz/4827Hz/7843Hz 等处差值能量异常高 |
| 自相关分析 | lag1=0.982,高度结构化 |
| 熵分析 | 3.76 bits(远低于噪声 11.7 bits) |
这些分析证实声道差异中确实编码了信息,但提取需要的不是简单的差分,而是理解 sound inversion 技术本身。
关键点
| 线索 | 含义 |
|---|---|
| Babbage | 差分机 → "difference" → 计算声道差值 |
| Coldplay | 乐队 → 音频领域 |
| 标签 Math | 需要数学分析,不只是听 |
| 差分结果 | 非噪声(有结构),但无明文 → 答案是技术名 |
| 答案 | soundinversion |