Course
Reverse Engineering Fundamentals
How working reverse engineers take a stripped binary apart — disassembly, Ghidra, decompilers, dynamic analysis, and patching — and build a mental model of a program they will never see the source of.
Reviews
Enrolled members can rate this course.
No reviews yet.
Reading the Machine
What a binary actually contains after compilation, the x86-64 literacy you really need, and how control flow maps back to the code that was written.
- 01What the Compiler Actually Throws AwayA binary is the fossil record of a program — mechanism survives, intent is erased. Learn which artifacts are still legible before you try to read them.20mOpen
- 02Reading x86-64 Without PanickingFifteen instructions cover ninety percent of real disassembly. Learn the vocabulary, the calling convention, and the stack frame — the pattern-matching does the rest.22mOpen
- 03Control Flow: Finding the Shape of the CodeAssembly is flat; programs are trees and loops. Learn the five control-flow shapes and how disassemblers actually find the code — including where they get fooled.22mOpen
Static Analysis in Practice
Ghidra as a working environment: triage through strings and xrefs, reading decompiler output skeptically, and rebuilding structure.
- 01A First Session in GhidraGhidra is free, scriptable, and what most pros reach for first. The learning curve is the interface, not the analysis — a dozen habits carry a whole investigation.22mOpen
- 02Triage: Strings, Imports, and Cross-ReferencesNobody reads a binary front to back. Find a legible anchor, follow its references down, and expand outward — the excavation loop that finds the interesting code fast.24mOpen
- 03Reading Decompiler Output SkepticallyThe decompiler produces C-shaped output that reads fluently and lies fluently — every type is a guess. Audit it against the listing and inject understanding through retyping.24mOpen
Dynamic Analysis and the Craft
Debuggers, watchpoints, patching, and the hypothesis-driven workflow that turns instructions into intent.
- 01Debuggers, Breakpoints, and WatchpointsStatic analysis shows every path a program can take; the debugger shows the one it does take. Four commands and one mindset dissect almost anything.24mOpen
- 02Patching: Changing Behavior Without SourceThe constraint that shapes everything: you can't insert bytes, only overwrite them. Classic patches, code caves, and the integrity checks that punish careless edits.22mOpen
- 03From Instructions to Intent: Building the ModelThe skill isn't reading assembly faster — it's building a theory of the program, knowing when it's wrong, and proving it by reimplementation.26mOpen