Sometimes I play CTFs on the small two-man team mode13h. (The other member being poiko, a god of all things reverse/arch/VM.)

These are my notes.

Audience: I am writing these notes to some imagined fellow CTFer who looked at the same tasks that I did, but missed some critical step for the solve, or perhaps someone who did solve them and just wants to compare notes. I’ll rarely re-post the full problem as given in the CTF, nor do very detailed expositions. For the time being this isn’t intended as a pedagogical resource. The target audience (“you”) are not complete beginners, some facility with math is assumed.

Motivation: Even if I don’t participate in them competitively I’ll sometimes solve the tasks offline.

I am fascinated by the generalities behind puzzles—i.e. their mathematical expression—and I love solving problems with programming. Fascination gives off a glow, and this glow-energy is what I’d like to call motivation. The competitive element of CTFs has little bearing, and I tend to avoid CTFs with uninteresting problems.

Content: My favorite tasks are of the “puzzle”1 variety. In CTFs these would normally be found under misc and crypto. My safe space is the intersection between programming and mathematics.

full moon to reveal a bunch of points that turn out to align with certain zodiac signs in the sky, and then after translating the zodiacs into numbers using the provided plastic spy-codex, you get a number which turns out to be the Dewey decimal index where you can find the book that was used for the book cipher. (See example.) That kind of Sherlock Holmes stuff is completely orthogonal to the kind of puzzles I enjoy.

  1. by “puzzles” I mean problems that have a natural translation into mathematics and reveal there a certain simplicity and elegance in generalized form. It stands in marked contrast to “riddles”2, which tend to resist mathematical patterns, and are usually dependent on culture, language, or specific trivia.