Capstones and Next Steps

TL;DR


Capstone 1: RV32 “binaryISC” - a tiny firmware monitor in QEMU

Goal

Build a minimal bare-metal RV32 program that:

Deliverables

Suggested implementation sketch

Test plan

Stretch goals


Capstone 2: “C → Assembly” explanation pack (teaching deliverable)

Goal

Create a set of teaching artifacts that explain how 5 small C functions compile to assembly at -O0 and -O2.

Pick functions that cover:

Deliverables

Test plan


Capstone 3: Firmware triage report (static-first)

Goal

Take a firmware image (your own or a known training image) and produce a structured triage report.

Deliverables

A report containing:

Test plan


Capstone 4: Dynamic analysis mini-lab (Frida)

Goal

Hook a decision point in a userland program:

Deliverables

Stretch goals


Capstone 5: Hardware validation worksheet (UART/SPI/I2C)

Goal

Create a “field worksheet” that students can use on any board.

Deliverables

A template that includes:

Test plan


Teaching plan: how to run this series for a class

How to evaluate students


Exercises

  1. Choose one capstone and write a 1-page project plan with milestones.
  2. Create a rubric for grading Capstone 2 (C→assembly explanation pack).
  3. Write 10 “micro-questions” students can answer from objdump output.

How to test your answers


Summary

You now have a set of realistic projects that combine the entire toolchain: compilation, ELF reading, assembly reasoning, stack/ABI understanding, debugging, firmware triage, and hardware interface validation.

If you want to expand this book next, the most valuable additions are: