Course navigatorUnofficial student prototype · fictional course data

Overview›Seeing Through Obfuscated Code›Week 9

Studio 9 — Trace the dispatcher

Build the state table for one region by hand, and then say what the recovered graph could not have told you.

All of Week 9

Working from the flattened disassembly and the clean comparator.

  1. Find the dispatcher. Say what it switches on and where that value lives.
  2. Take the parity branch — one if/else in the source. Find every block that writes the state variable on that path, and record the constant it writes.
  3. Build the state table for that region: state in, block, state out.
  4. Now compare your table with the clean graph. Which edges did you recover, and which did you infer?
  5. One sentence: what would the recovered CFG alone have told you about this region, and what did it take your table to establish?

Step 5 is the point of the studio. Keep the answer — A2 asks for the same distinction on a function you have not seen.

Files

FileWhat it is
showcase.cthe frozen source, demo_flattening
s04_ollvm_fla/before_cfg.txtflattened blocks and edges
s04_ollvm_fla/clean_cfg.txtthe clean comparator, 21 blocks

Demonstration content. Newly written demonstration material for this prototype, following the studio pattern in comp4020-ass2-Ky787 (src/content/sessions/week-09.mdx)