beginnercat/stego~2 min read

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:

  1. Open the audio file.
  2. Click the track name dropdown → Spectrogram.
  3. 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.