MEDIUM
Steganography / Audio Forensics
🏆 175 pts
Challenge #12: The Silent Signal
steganography audio wav lsb python
📋 Mission Brief
A suspicious audio file was recovered from a suspect device during a forensic investigation. To the human ear it sounds like a normal tone — but our analysts believe it contains a hidden message encoded in the audio samples.
🎯 The Challenge
You have been given a WAV audio file recovered from a suspect’s device. The file plays a normal tone, but the data may contain a steganographically-hidden message.
The technique: Least Significant Bit (LSB) encoding hides data in the lowest bit of each audio sample. The human ear cannot detect 1-bit changes in audio amplitude.
Extraction method:
– Read audio samples as 16-bit integers
– Extract the LSB (bit 0) from each sample
– Group 8 consecutive bits into bytes
– Convert bytes to ASCII characters
– Continue until you hit a null byte (\x00)
Python starter:
The technique: Least Significant Bit (LSB) encoding hides data in the lowest bit of each audio sample. The human ear cannot detect 1-bit changes in audio amplitude.
Extraction method:
– Read audio samples as 16-bit integers
– Extract the LSB (bit 0) from each sample
– Group 8 consecutive bits into bytes
– Convert bytes to ASCII characters
– Continue until you hit a null byte (\x00)
Python starter:
import wave, struct
wav = wave.open('suspicious_audio.wav')
frames = wav.readframes(wav.getnframes())
samples = struct.unpack('<' + 'h' * (len(frames)//2), frames)
⬇ DOWNLOAD CHALLENGE FILE
ch12_audio_steg.zip
🚩 Submit Flag
Flag format: PlainlySec{...}