← Back to Writeups
CUSTOMEasySteganography

REB (РЭБ)

XESXOR9/2/20262 min read
#steganography#custom#easy#spectrogram_steganography#linux

REB (РЭБ)

Platform: taipanbyte | Category: Steganography | Type: Challenge | Difficulty: Easy | OS: Linux | Author: XESXOR | Date: 2026-01-22 | Status: Solved Techniques: spectrogram_steganography

Summary

Task: WAV audio file with noise. Solution: Generate spectrogram using sox to reveal hidden flag text in the 6-16 kHz frequency range.

REB (РЭБ) — TaipanByte

Description

flag{}

File: sound.wav.zip (WAV audio file, 5 seconds, mono 44100 Hz, 16-bit)

Analysis

  1. The task name "РЭБ" (radio-electronic warfare) hints at radio signals and frequency analysis
  2. Short WAV file (5 seconds) — classic sign of spectrogram steganography
  3. When listening, the audio sounds like noise/interference

Solution

Step 1: File Analysis

bash
# Unzip
unzip sound.wav.zip

# File information
file sound.wav
# RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 44100 Hz
‍​‌‌​​‌​​​‌‌​​‌​​​​‌‌​‌​​​​‌‌‌​​‌​​‌‌​​​‌​​‌‌‌​​​​​‌‌​‌‌​​​‌‌​​​​‍

soxi sound.wav
# Duration: 00:00:05.00

Step 2: Spectrogram Generation

bash
# Use sox to create a spectrogram
sox sound.wav -n spectrogram -x 1500 -y 500 -z 80 -o spectrogram.png

Parameters:

  • -x 1500 — image width in pixels
  • -y 500 — image height
  • -z 80 — dynamic range in dB
  • -o spectrogram.png — output file

Step 3: Spectrogram Analysis

On the spectrogram in the 6-16 kHz range, text is visible:

FLAG{REDACTED}

The text uses leet speak:

  • 3 = E
  • 0 = O
  • 4 = A ‍​‌‌​​‌​​​‌‌​​‌​​​​‌‌​‌​​​​‌‌‌​​‌​​‌‌​​​‌​​‌‌‌​​​​​‌‌​‌‌​​​‌‌​​​​‍

Decoded: SPECTROGRAM

Alternative Tools

bash
# Audacity: File -> Import -> Audio, then View -> Spectrogram

# Sonic Visualiser
sonic-visualiser sound.wav
# Layer -> Add Spectrogram

# Python with librosa
python3 << 'EOF'
import librosa
import librosa.display
import matplotlib.pyplot as plt

y, sr = librosa.load('sound.wav')
D = librosa.amplitude_to_db(abs(librosa.stft(y)), ref=np.max)
librosa.display.specshow(D, sr=sr, x_axis='time', y_axis='hz')
plt.colorbar(format='%+2.0f dB')
plt.savefig('spectrogram.png', dpi=300)
EOF

‍​‌‌​​‌​​​‌‌​​‌​​​​‌‌​‌​​​​‌‌‌​​‌​​‌‌​​​‌​​‌‌‌​​​​​‌‌​‌‌​​​‌‌​​​​‍

Typical Frequency Ranges for Hiding

  • 6-20 kHz — above speech range, less noticeable to the ear
  • Ultrasound (>20 kHz) — inaudible to humans
  • Full range — when readability is more important than stealth

Related Techniques

  • SSTV (Slow Scan Television) — images in radio signal
  • DTMF tones — digits encoded as frequencies
  • Morse code in audio ‍​‌‌​​‌​​​‌‌​​‌​​​​‌‌​‌​​​​‌‌‌​​‌​​‌‌​​​‌​​‌‌‌​​​​​‌‌​‌‌​​​‌‌​​​​‍