m00nwalk picoCTF 2019 Solution

Published: April 2, 2026

Description

Find the flag in the audio file. This is an SSTV transmission.

Download the audio file.

bash
wget <url>/message.wav
  1. Step 1Identify the SSTV signal
    Play the audio file. You will hear the characteristic chirp and tone sequence of an SSTV (Slow Scan Television) transmission. The audio encodes an image by mapping pixel brightness values to audio frequencies over time.
    Learn more

    SSTV (Slow Scan Television) is a method used by amateur radio operators to transmit images over audio channels. Different SSTV modes (Martin 1, Scottie 1, Robot 36, etc.) use different image sizes and encoding timings. The mode is announced at the start of the transmission with a VIS (Vertical Interval Signaling) code.

  2. Step 2Decode with QSSTV or RX-SSTV
    Install QSSTV (Linux) or RX-SSTV (Windows). On Linux, configure QSSTV to receive from a virtual audio loopback device, then play the WAV file to the loopback. On Windows, set RX-SSTV to listen to the sound card and play the WAV file.
    bash
    sudo apt install qsstv
    bash
    # Configure: set audio input to virtual loopback
    bash
    # Then play: aplay message.wav
    Learn more

    A simpler approach: use the command-line tool qsstv or the Python library pysstv. Another popular approach is to open the WAV in Audacity and visually inspect the spectrogram - SSTV appears as distinctive horizontal lines in the frequency domain.

    You can also pipe the audio directly: sox message.wav -t raw -r 44100 -e signed -L -b 16 - | multimon-ng -t raw -a SSTV - using the multimon-ng tool.

  3. Step 3Read the flag from the decoded image
    QSSTV will render the audio as an image. The flag text is visible in the image that appears.
    Learn more

    SSTV was originally developed for transmitting images from the Moon during the Apollo missions - hence the challenge name. The Apollo 7 mission used SSTV to broadcast the first live TV from an American spacecraft in 1968.

Flag

picoCTF{...}

Decode the SSTV audio transmission using QSSTV or multimon-ng to reveal the image containing the flag.

Want more picoCTF 2019 writeups?

Useful tools for Forensics

Related reading

What to try next