These reverse engineering posts always do that. I'm pretty good at developing software but I see people pull off insane reverse engineering efforts like extracting encryption keys from a chip with 1000 security measures and I wonder if I know anything.
It's just about poking at it and being persistent, until you figure everything necessary out. I've done similar reverse engineering efforts with a PoS terminal and an e-book reader/eInk display protocols. You don't know much at the beginning. Reverse engineering is mostly about persistence.
It may not always get you to the finish line, but without any documentation, persistence and some tools is all you have anyway. Knowledge is acquired during the process.
I found myself wondering while reading the article what the guys notes look like. Does he screenshot everything and bullet point as he goes along? Or does he hit a logical stopping point and write up what worked from A-B, B-C etc.?
The screenshots were definitely taken near the end of the project, while I still had it all in my head but before I started writing.
In general, the process looked like:
- Brainstorm and reverse engineer first. Have in the back of my mind that I'm writing this up, and releasing a tool, at the end. This guides my search: no your reader won't want to desolder something to use their camera, so yes you need to speak the stock Baichuan protocol.
- As I hit interesting things (like the Charlie Scrambler) start filling out a Google Keep note with keywords that will remind me of them when I'm writing.
- Take screenshots and produce other media, giving me a rough layout of waypoints that the article has to hit.
- Write the article, editorializing optional but recommended.
For me, my "writing mindset" is very different from my "engineering mindset." Some days, I can pound out a new piece of code and sometimes it will even be a decent design. Other days, I can write clear documentation. Very seldom can I do both on the same day.
These blogs kinda downplay the problem being broken down little by little.
Forensics work is the same... you don't naturally get a report that says the person did something, it's basically a list of things you try that lead to other things that lead to dead ends or an answer.
I'd like to know this too. Lately when I've been getting into something new or trying to solve a non-trivial bug/problem I've tried to keep notes as I go along in the hope of finally creating some blog content. I keep finding this extra step really slows me down and I forget to keep doing it at some points so what I end up with isn't even very good. I think this is just another skill I have not mastered (or even fundamentally grasped).
Oh for sure, it would have to be heavily edited from that complete set of notes. Although, even if my blog is so boring that I'm the only reader, I'd still be happy to have written it as that writing process will massively increase my chance of remembering what I learned.