Reverse Engineering
Disassemble and decompile software to understand inner workings, find vulnerabilities, and analyze malware.
10 Topics
Key concepts
3 Levels
Beginner to Advanced
5 Tools
Curated for this track
8 Questions
Test yourself
About this track
Read the binary when there is no source to read.
Reverse engineering is the deepest technical track here. Given only a compiled artefact, you recover its logic — to find vulnerabilities, to understand malware, or to interoperate with something undocumented.
It starts with x86 and x64 assembly, because nothing further makes sense without it, then moves through disassembly and decompilation with Ghidra and IDA, into debugging, and finally into binary exploitation where understanding becomes control.
Progress is slower here than on any other track and the early plateau is steep. The payoff is that very few people push through it, and the skill transfers directly into malware analysis and vulnerability research.
Key topics
10 topics grouped into three modules, in the order you should meet them.
- 01
Assembly & tooling
4 topics- 1.
x86/x64 Assembly
Registers, calling conventions, and the stack — the foundation for everything below.
- 2.
Disassembly
Turning machine code back into instructions and recovering control flow graphs.
- 3.
Decompilation
Ghidra and IDA reconstructing C-like output, and knowing where they lie to you.
- 4.
Debugging
GDB and x64dbg — watching memory change confirms what static reading only implies.
- 1.
- 02
Analysis
4 topics- 5.
Binary Exploitation
Stack and heap corruption, ROP chains, and modern mitigation bypasses.
- 6.
Firmware Analysis
Extracting and analysing embedded images where no operating system helps you.
- 7.
Android RE
Smali, DEX, and native libraries inside an APK.
- 8.
iOS RE
Mach-O binaries, Objective-C runtime structures, and a far more hostile toolchain.
- 5.
- 03
Exploitation & platforms
2 topics- 9.
Anti-Reversing Techniques
Packing, obfuscation, and anti-debug tricks — and how to defeat them.
- 10.
Patching
Modifying a binary's behaviour directly, the practical proof you understood it.
- 9.
What you'll be able to do
- Read x86/x64 assembly fluently enough to follow unfamiliar control flow
- Recover a program's logic using a disassembler and decompiler
- Debug a live process to confirm what static analysis only suggested
- Develop a working exploit for a memory-corruption vulnerability