Reverse Engineering: Read Software You Never Had the Source For
Reverse engineering is the discipline of analyzing compiled software to understand how it works — without access to the original source code. Security researchers use it to find vulnerabilities, malware analysts use it to dissect hostile code, and firmware engineers use it to understand embedded systems. This track covers the full stack: from raw binary formats and Assembly through static and dynamic analysis, all the way to exploit development and advanced anti-RE techniques.
What You Will Learn
You will start with binary fundamentals — executable formats, memory layout, and how high-level code maps to machine instructions. From there you will read and reason about x86/x64 Assembly as it appears in real disassembly output. You will use static analysis tools to examine binaries without running them, then shift to dynamic analysis and debugging to observe live execution. Later courses cover malware analysis, compiler optimizations and how they obscure intent, scripting for automated static analysis, and anti-reverse-engineering tricks used in the wild. The track closes with firmware and embedded systems RE, vulnerability research, exploit development, and a survey of where the field is heading.
The Learning Path
Twelve courses span A1 through C2. The opening course introduces core concepts at the A1 level with a free first look; the next two courses (A2–B2) build binary literacy and Assembly reading skills. Four B2/C1 courses then cover the main analysis workflows: static tools, dynamic debugging, malware fundamentals, and scripting. The final four courses operate at C1–C2 and tackle the hardest material: compiler optimizations and their effect on disassembly, firmware and embedded targets, vulnerability research and exploit development, and advanced topics including current trends in the field.
How It Works
Each course is broken into short, focused lessons with hands-on exercises in the built-in editor — you read Assembly, annotate binaries, and work through real analysis tasks with real-time feedback. An AI tutor is available at every step when you get stuck on an instruction sequence, a tool flag, or an unfamiliar binary structure.