Difficulty: ❄ ❄ ❄ ❄ ❄
Jingle all the wires and connect to Santa’s Little Helper to reveal the merry secrets locked in his chest!
Hints
On the Cutting Edge
From: Morcel Nougat
Hey, I just caught wind of this neat way to piece back shredded paper! It’s a fancy heuristic detection technique-sharp as an elf’s wit, I tell ya! Got a sample Python script right here, courtesy of Arnydo. Check it out when you have a sec: heuristic_edge_detection.py.”
Shredded to Pieces
From: Jewel Loggins
Have you ever wondered how elves manage to dispose of their sensitive documents? Turns out, they use this fancy shredder that is quite the marvel of engineering. It slices, it dices, it makes the paper practically disintegrate into a thousand tiny pieces. Perhaps, just perhaps, we could reassemble the pieces?
Silver trophy
To get the silver trophy we need to connect the UART bridge following the manual and geting the right parameters.
To obtain the parameters we can reconstruct the “One Thousand Little Teeny Tiny Shredded Pieces of Paper” retrieved in the “Frosty Keypad” challenge using heuristic_edge_detection.py. The shreds.zip archive extracts the folder slices which is exactly the default input folder of heuristic_edge_detection.py, so it just needs to be ran:
1 | (env) thedead@maccos act1-frosty-keypad % python3 heuristic_edge_detection.py |
Reconstructing the image to assembled_image.png:
Quickly fixing the image leads to the parameters:
Having the information, we can wire up the UART bridge (remember to invert TX & RX), set the parameters and connect:
Gold trophy
Analyzing the main.js source code I noticed the function checkit was referring to an old API version:
1 | async function checkit(serial, uV) { |
The values of serial and uV can be retrieved from a manual successful call:
1 | {"requestID":"42da0de9-2884-440c-b6c7-5ed459a991f7","serial":[3,9,2,2,0,3],"voltage":3} |
I then tried to override the API endpoint using DevTools:

And calling the checkit function directly from the console did the trick:

Funsies
#sosatisfying

Dad jokes
Looking at the main.js file, I found an interesting function called dad returning dad jokes… Let’s get them!
1 | import requests |
At your service:
1 | What do you get if you cross a snowman and a vampire? Frostbite! |
