listen (Write Up)

今日はADCTF2014のlistenという問題について書いていきたいと思います。

I couldn't listen it, can you? という問題文とともにliste.wavというファイルが与えられます。

まず始めにこのファイルがどのようなファイルなのか知るためfileコマンドを使って調べてみます。

$file listen.wav 
listen.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 1 Hz
のような結果が表示され、本当にWAVEの音声ファイルであることが、わかります。


実際にこのファイルを聞いてみると、再生はされているのに、音量を上げても音声が全く聞こえません。ここで先ほどのfileコマンドの結果をもう一度見てみると、1Hzと書いてあります。

1Hzって人間の耳に聞こえる音なのか!?

という疑問が浮かびググってみると、人が聞こえる周波数というのは、20Hz~20,000Hzらしく、1Hzという周波数は人間には聞こえないことがわかりました!!

これがわかれば、ファイルのフォーマットを調べて、バイナリを弄るだけです!!ここを参考に、listen.wavをバイナリエディタに突っ込み、Hzをラジオ音質の22,050Hz (リトルエンディアンなので22 56)に書き換えたら綺麗に聞こえるようになりました!!

ADCTF_SOUNDS_GOOD


今回は、ファイルのフォーマット弄るの楽しいという感じの問題でした!!


杉山