A safe place
Description
V8? What did they mean by leaving V8 behind on the ACME servers? Perhaps the war boys deleted the manual? They must have a copy of it! Wait a minute… I remember that Joe has a little home made safe in his room. Maybe its in there?
You examine the safe, and there is a display on the front, a dial and two buttons. It feels like that the whole thing is made out of scrap electronics. The dial rotates like a rotary encoder, and the thing beeps as you press the buttons. You managed to take the cover off the dial and the next button. Bingo! You can see the rotary encoder and the button’s connectors. You hook up your trusty logic analyzer, and wait for Joe to unlock it. After a few hours, you managed to log the signals while the safe has been opened, but it looks like the encoder is not the best quality.
Your task is to figure out the code and open the safe. The counter starts from 0. After you figure out the code, you can use the webpage to enter it on the safe, and receive the flag.
https://a-safe-place.secchallenge.crysys.hu
The webpage shall be only used for code verification and flag retrieval. Please do not try to brute force the code via the webpage, you’ll not succeed.
- Author: Csf3r3ncz1
- Difficulty: medium
- Attachment: safe_challenge.sal
Solution
- Looking at other challenges already, I knew a program to open
.sal
files with, called Salae Logic 2 - The challenge said something about
rotary encoder
so I googled and found this
I opened the given file with Salae Logic 2, and started looking at the signals. Some few key points from the linked wiki page, which helped me understand and solve the challenge easily.
- If A is followed by B rotation is positive
- If B is followed by A rotation is negative
I almost started coding when I realized two things:
- The signals are noisy, which would make it problemmatic to detect by script
- There aren’t that many rotations that I cannot solve this by hand
So I started working. When you launch the site, it starts from 0, so that’s where I started, counting the rotations tirelessly. After a bit, I had the combination at hand. (Which I won’t share, since it would be a freebie after that)
The acquired flag is:
cd21{HIDDEN}