Thomas Piacentini
← Workshop

Learning path

Reverse Engineering

Original text · English1945 min

Read a compiled program you built yourself: parse the file, decode the instructions, lift them to pseudocode, record evidence, and prove a rebuild equal, then learn the field around that pipeline with its main tools.

  1. Program Anatomy: An ELF Reader From Scratch — 120 min
  2. Disassembly and Control Flow: From Bytes to a Graph You Can Check — 150 min
  3. Lifting to Pseudocode: IR, SSA, and Structuring From Scratch — 150 min
  4. Evidence, Confidence, and Unknowns in Binary Analysis — 105 min
  5. Rebuild and Prove Equal: Differential Tests, Byte Comparison, and the Evidence Loop — 110 min
  6. The Reverse Engineering Landscape: History, Tool Families, and How a Decompiler Is Built — 150 min
  7. Calling Conventions and Stack Frames: System V, Windows x64, and AArch64 — 140 min
  8. Compiler Idioms: What Optimization Does to Your Code and How to Read It Back — 150 min
  9. Linking, Loading, and Stripped Binaries: PLT, GOT, Imports, Fixups, and Function Identification — 160 min
  10. Recovering Data and Types: Structs, Arrays, C++ Objects, and DWARF — 140 min
  11. Dynamic Analysis of Your Own Program: Debuggers, Traces, and Confirming Static Claims — 130 min
  12. Beyond Native Code: Python, JVM, .NET, and WebAssembly Bytecode — 150 min
  13. Binary Diffing and Symbolic Execution: Matching Functions and Solving for Inputs — 150 min
  14. AI-Assisted Reverse Engineering: LLM Decompilers, Analysis Agents, and Ground Truth — 140 min
Code and artifacts 1
What you take away

Saved in your notebook on this device.

Sources and limits

Reading checkpoints are self-reported. Test results are recorded separately and apply to the executed cases.

AI Engineering from Scratch · 3f9715c · MIT

Download this file ↓