Tabellab
Cybersecurity Advanced

Assembly: Reading and Debugging

Read registers, instructions and disassembly to understand, debug and analyse compiled programs.

8 lessons 48 min Certificate

One-time payment · lifetime access · lessons, labs, exam and certificate included · no subscription.

About this course

Every program becomes machine instructions, and reading them is essential for debugging, reverse engineering and malware analysis. This course focuses on reading and debugging x86-64 assembly on Linux. You learn the general-purpose registers and the argument-passing convention, write a minimal program that prints text through the write and exit syscalls, and cover the core instruction families: mov, arithmetic, cmp and conditional jumps. A stack lesson shows how push, pop, call and ret work and why the return address sits beside local data. You disassemble binaries with objdump, step through them in gdb, and use strace to see a program’s syscalls without reading an instruction. The capstone is an analyst’s skill: recognising execve shellcode and statically disassembling an authorised sample to report what it would do, without assembling or running a payload. All work is on your own systems for authorised analysis.

Lessons

  1. Down to the Metal — Why Read AssemblyReading6 min Pro
  2. Registers — the CPU’s VariablesReading6 min Pro
  3. Your First AssemblyReading6 min Pro
  4. Data, Arithmetic and JumpsReading6 min Pro
  5. The Stack — push, pop, call, retReading6 min Pro
  6. Reading Disassembly — objdump and gdbReading6 min Pro
  7. Syscalls — Talking to the KernelReading6 min Pro
  8. Recognising Shellcode in AnalysisReading6 min Pro