Audio Steganography
Find hidden messages in WAV and MP3 files using spectrograms, LSB tools, and DTMF decoding.
// prerequisite reading
Spectrogram analysis
The single most common audio stego technique: a message is encoded as bright pixels in the frequency domain. Human hearing can’t isolate it; a spectrogram makes it visible.
In Audacity:
- Open the audio file.
- Click the track name dropdown → Spectrogram.
- Zoom in with Ctrl+Scroll. Look for ASCII text or patterns in the upper frequency range.
Online: Spectrum Analyser — upload the file and the spectrogram renders in the browser.
Morse code in audio
If the audio contains beeps, it’s Morse. Use an online decoder or:
# Record the tones, then:
# morsedecoder.com / morsecode.world → upload the WAV
Listen for the rhythm: dots (short) and dashes (long).
DTMF tones
Phone keypad tones (dual-tone multi-frequency) encode digits. Each key is a unique combination of two frequencies.
pip3 install dtmf2num
dtmf2num audio.wav
Or use the online DTMF decoder.
LSB steganography in WAV
WAV files are PCM audio — each sample is a 16-bit integer. The LSB of each sample carries the hidden bit.
# WavSteg (Python)
pip3 install stegano
python3 -c "from stegano.lsb import lsb; print(lsb.reveal('audio.wav'))"
If that fails, try steghide (it supports WAV):
steghide extract -sf audio.wav -p ""
MP3-specific tools
MP3 uses lossy compression, so LSB in the raw bytes doesn’t survive encoding. Instead, look for data in the ID3 tags:
exiftool audio.mp3 # all tags including comment and lyrics fields
id3v2 -l audio.mp3 # raw tag dump
Flags are sometimes stored in the comment or unsynchronised lyrics tag.