---
# System prepended metadata

title: EV3 Player
tags: [HITCON CTF 2019 Quals]

---

# EV3 Player

A youtube video with EV3 playing an audio, and a pcap capture, is provided.

So this is a "forensics" pcap question where you need to find the audio.

Referening the last year's EV3 question, and i found we can see the data stream using wireshark display filter `btrfcomm.channel == 1`.

I wrote a small script to dump all the filtered data, and two filename stand out to me: `fl.rsf` and `ag.rsf`.

Apparently it is the flag audio. I search up the `.rsf` format.

I looked up the format and I found [(Link)](https://forums.usfirst.org/forum/general-discussions/first-programs/first-lego-league/the-challenge/products-equipment/ev3-specific/12890-custom-sound-files-for-ev3) that it is just an alias for `.rso` files.

And then I found an online conversion service for `.rso` to `.wav` [(Link)](https://conversionai.com/file/audio/rso-nxt-brick-audio-file/wav-waveform-audio).

So whats left is to retrieve the `.rsf` / `.rso` files.

With a little search I found a description [(Link)](https://wiki.multimedia.cx/index.php/RSO) of RSO file format and stated that it start with either `0x0100` for unsigned 8-bit PCM or `0x0101` for IMA ADPCM. As most audio is PCM so I searched `0x0100` on the data.

And I founded that there is 14 bytes prefix before the actual file content in each packet.

So I retrieve the files and convert it to `.wav` and played the flag :)

{%gist harrier-lcc/643900fb859d005f9f7bf82b5dbfb517%}

###### tags: `HITCON CTF 2019 Quals`