With a team of people from work we participated in this years HackTheBox Cyber Apocalypse CTF 2022. And while my teammates managed to solve several challenges, some of them with some thinking from me, I personally solved zero challenges. Which was a bit dissapointing. I was especially interested in the hardware hacking challenges because that is a subject I am quite interested in.Hardware / Space pulses
This challenge had a .sal file. After I learned about Salea Logic Analyzer in the 2021 HackTheBox Cyber Apocalypse I opened the file in this logic analyzer and started trying to find out what I was looking at. It was a one-channel digital signal. It turned out to have a variable duty cycle, with complete cycles being 255 and a bit milliseconds. I noticed the maximum duty cycle was somewhat less than 50%. I spent a lot of time trying to decode this, mostly thinking in the direction of it being a pulse width encoded signal with probably 4 bits of information per cycle to get 54 characters which seemed reasonable for a flag. But with the assumption that the smallest pulse is the representation of 0000 and the widest pulse is the representation of 1111 I could not get valid data from it, and it was nowhere near decoding a flag. I was sure I was overthinking it somewhere, but couldn't find out where. A while after the CTF I read Writeup] Cyber Apocalypse 2022 — Space Pulse [Hardware] and I obviously made a big "D'Oh!" sound as I was getting to the solution, but indeed overthinking it.Hardware / Secret Codes
With this challenge I also downloaded a .sal file with two signals: a digital one and an analog one. The digital one stops after the first 'databurst' while the analog one is clearly the 'unpolished' version of the digital signal. I first tried to decode the digital signal as an async serial signal and found nothing. I also tried manchester encoding and also found nothing. Staring and pondering never fixed this. I found a writeup at HTB 2022 Cyber Apocalypse CTF - Hardware - Secret Codes which made me go "D'Oh!" again: it was manchester encoding. BUT (big but) Manchester encoding has 2 changes per bit and I left the bitrate at the same as for the async serial decoder.