Morse-Music [Defcamp Quals 2023]

stego crypto
writeup by: zenbassi

Challenge Description

You might need to cross listen the message within the morse code.


Putting the audio through a morse decoder, we got a message saying the something along the lines of “it’s not about the morse code” and also a password. We opened the audio in audacity and looking at the histogram we saw a QR-code.


Scanning the QR-code led to a string. We base64-decoded it which lead to some binary data. Since we had the password already, we just thought of using that to “decrypt” the message, so we cyclically xor-ed the data with the password and got the flag.

base64-encoded string from the QR: Njw0SGcLVwJVZ358MC0xBmUMClMKanlzZSpnAjVeBgVRMX0lYyliA2RaB1UDY3ghMHw0UGUPAQAH NysnNClmAjMPA1VO

./file contains the binary data from the base64-encoded string.


with open("./file", "rb") as f:
    data =;
    key1 = b"UHR3V8203RJD"
    key2 = b"uhr3v8203rjd"

    for i, x in enumerate(data):
        print(chr(x ^ key1[i % 12]), end = "")