Lion Cipher Lab

Read Ghidra's decompiled functions: find the config parser, the network code, and the persistence routine

Why it matters

Strings and imports tell you what a binary CAN do; the decompiled functions tell you what it is actually wired to do, and in what order. But decompilation is the slow, expensive move in reverse engineering — reading reconstructed C function by function can burn an hour, so the professional skill is not 'read everything', it is triaging first and then decompiling only the two or three functions that matter. This lab builds the eye that makes that pay off: given a screen of Ghidra pseudocode, you learn to read a function's API calls and its loops and say 'this one decodes the config', 'this one…

What you'll learn

Steps in this lab

  1. What this drill is — reading decompiled functions, a layer below strings and imports
  2. The third rule: WHEN decompiling a function is worth the time (triage first)
  3. How to read Ghidra's pseudocode — a 60-second orientation
  4. Function 1 — read it and name it (the one with no API calls)
  5. Function 2 — read it and name it (the one that loops forever)
  6. Function 3 — read it and name it (the one that writes the registry)
  7. Function 4 — read it and name it (the one that starts something)
  8. Map the call graph — read main() as the program's story
  9. HOW a pro navigates — xref from a clue to the function, not top to bottom
  10. The limits — when NOT to decompile, and confirming before you believe

Open the full interactive lab →