Skip to main content

Architecture 1901: From zero to QEMU - A Gentle introduction to emulators from the ground up!

OpenSecurityTraining2

About This Course

This course explores the fascinating world of emulation, guiding learners from the fundamentals of CPU architecture to the inner workings of QEMU and advanced instrumentation techniques. It provides a hands-on journey through the layers of abstraction that make software capable of imitating hardware—showing how emulation powers development, debugging, and security research.

Learners will progressively build their own 8-bit CPU emulator in Python (SimpleProc-8), implement registers, memory, and instruction decoding, and extend the system with interrupts, MMIO, and UART I/O. The course culminates in an exploration of QEMU internals, where participants will analyze translation blocks, experiment with Just-In-Time (JIT) compilation, and add custom instrumentation helpers to collect runtime telemetry.

Through a combination of interactive labs, lectures, and browser-based exercises, students will bridge the gap between theory and practice. Each module builds directly on the previous one, leading up to a final project that demonstrates a working, instrumented emulator.

By the end of this course, you will not only understand how emulators function—you will be able to design, modify, and analyze them to support research, debugging, or vulnerability discovery.

Requirements

Students should have a basic understanding of programming in Python and be familiar with fundamental concepts in computer architecture such as registers, memory, and instruction flow. Prior exposure to operating systems or embedded development is helpful but not mandatory. No previous experience with QEMU or emulation frameworks is required—everything will be built step by step.

Course Staff

Antonio Nappa

Antonio Nappa

Antonio Nappa is the Application Analysis Team Leader at Zimperium Inc. He has been in the cybersecurity game since 17 years old. He holds a PhD in Software and Systems from the Madrid Institute of Advanced Studies. He has been a visiting scholar at UC Berkeley. His contributions have been published and recognized in international peer-reviewed venues. Since the DEFCON 2008 Finals, he never goes to sleep with a segfault.

Frequently Asked Questions

Can I follow this course without previous experience in emulation?

Yes. The course is designed for learners new to emulation or reverse engineering. Each concept builds progressively—from the basic CPU loop to QEMU instrumentation— so you can follow comfortably even with limited prior exposure.

Do I need to install any software locally?

No installation is required. All labs run in the browser using cloud-based containers provided by FuzzSociety.org.

Course Summary

  1. Course Number

    Arch1901_Zero2QEMU
  2. Classes Start

Enroll