exorvio.
← CTF foundations

CTF TOPIC · 8 FLAGS · 22 MIN

Reversing fundamentals

Reading a check, strings built at runtime, and undoing a single-byte XOR.

Reverse engineering means working out what a program does, often without its source. Start by reading any logic you can see: client-side password checks reveal their own answer. Watch for flags assembled from parts at runtime to defeat a simple search. And learn XOR: data XOR-ed with a key is recovered by XOR-ing with the same key again. These ideas scale up to real binaries later.

A first example

if (input === expected) ; a + b + c ; byte XOR 0x42 twice = byte.

First moves

  1. Run strings before anything else
  2. Find the comparison: what is input checked against?
  3. Trace values built at runtime
  4. Invert transforms in reverse order
  5. XOR again with the same key to undo XOR

The challenges

  • Read the check backwards · Easy · 20 XP
  • Trace every byte · Medium · 30 XP
  • Follow the accumulator · Medium · 30 XP
  • Read the check · Easy · 20 XP
  • Rebuild the string · Easy · 20 XP
  • Undo the XOR · Hard · 40 XP
  • String.fromCharCode · Medium · 30 XP
  • Undo the transforms · Hard · 40 XP

Find the flags yourself.

Sign in to open the evidence, use the in-browser tools and submit flags. Your progress stays with your account.

Open this topic →