NIXU Challenge 2020: 3D Print

The Challenge

Nixu Challenge perhaps is not that well known, but quite often it offers interesting puzzles. Particularly this one I liked a lot. It was not tricky at all, but suggested to take a view into a problem from different angle.

Challenge Description

After reading the task description I was expecting to see flag printed in hex. At least such impression you may get from the hints like ba5e16. So, I’ve downloaded attached file and opened it in the video player.

The Solution

Here we go…

Video Thumbnails Whoops!

… Oh, no! What a bad luck :(

3D printer starts to print something that looks like a text, suddenly camera moves and printing area is not visible anymore. Just a lone standing flower on the screen. Till camera’s movement it was possibly to spot only following printed text:

3d_

Nice. So, what options do I have? It might be that video is just a false path and actual flag is steganographically encoded into the file. Though, if read challenge description carefully eye might catch a tag dsp which stands to “Digital Signal Processing”.

What if analyzing audio track might help to restore printed text? Luckily printer has low quality stepper motor drivers which produce a lot of noise. First letters were printed in discrete manner meaning that nozzle was moving in single direction only at a time. Also it was sounded like tone frequency for each direction movement was slightly different. Assuming that rest of letters were printed in same way person with a sense of perfect pitch could probably mentally visualize extruder movement and see what was actually printed. Unfortunately I’m not the one. So, let’s extract audio track from the video and build spectrogram from it:

Spectrogram

Watching side by side printing of first letters on the video and spectrogram I’ve spotted that straight vertical and horizontal movements of nozzle are clearly visible on spectrogram. Luckily, drivers were producing buzzling for up / down and left / right movements on different frequencies and this would mean that I can completely restore printed text!

Let’s take a look more closely on first several seconds of the video where first visible letters were printed:

Spectrogram analyzed

Printer initialization and initial extruder positioning produce buzzling on multiple frequencies because extruder moves in several axes simultaneously. Though once head is positioned and first letter is printed in discrete manner those movements are clearly visible on the spectrogram. They are echoed on different frequencies, but have noticeable offset. By comparing direction of extruder movement on the video and dashes on spectrogram it is possible to figure out what frequency corresponds to it. After completion of printing one letter extruder is repositioned and this is also clearly reflected on the spectrogram.

Let’s check how we can restore actual letters…

Spectrogram analyzed

First number 3 is printed. On the video I’ve spotted that extruder moves to the left from starting point for few millimeters. On the spectrogram for that portion of time it is possible to spot brighter dash on certain frequency (marked by 1 for first letter on the picture above). After this extruder is returned visually to the initial point meaning that it has done movement to the right for same (or almost same) distance. For it I’ve spotted dash with almost same time length, but with slight frequency offset. So, it corresponds to the right movement (marked by 2 on the picture). Then extruder moved few millimeters in the upward direction and corresponding mark 3 is visible on the spectrogram. From the second letter d I’ve managed also to identify frequency marks for downward movements.

Using this technic I was able to restore printer’s extruder movement and get printed text.

Spectrogram analyzed

Thanks NIXU for another interesting challenge :)