unit 00shared corestart here
C & Memory
Start condition Start here. Nothing required.
Learn C properly, including how memory really works. It is the shared foundation for embedded systems, robotics, and exploitation alike.
builder
Finish the full seven-course specialization. Official overview (opens in a new tab).
Course 2. Start here.
Continue immediately after Course 2.
Slow down here. This is the bridge into embedded systems and exploitation.
Focus on structs, enums, binary representation, and interfaces.
Become comfortable living in a shell.
Multi-file programs, files, libraries, Linux tools, Make.
breaker
Before Course 4: use only your own C programs. Compile with AddressSanitizer (opens in a new tab), debug with GDB (opens in a new tab), deliberately create a local fixed-buffer bug, watch it crash, inspect the stack, and then fix it.
After Course 4: begin pwn.college Computing 101 (opens in a new tab) at only 2 to 3 hours per week while Dartmouth stays primary. It is pwn.college's current replacement for its old Assembly Crash Course.
Computing 101 order
- Your First Program
- Computer Memory
- The Stack
- Nibbling on Numbers
- Software Introspection
- Output and Input
- Control Flow
- Endian Escapades
- Assembly Assortment
- The Stack, Revisited
- Numbers as Strings
- Debugging Refresher
Postpone Building a Web Server; it is not required for the low-level path yet.
fused project
Build a binary sensor-packet parser in C: header, sensor ID, timestamp, payload length, payload, checksum, strict length validation, file logging, and tests. After Course 4, inspect its memory in GDB and deliberately test malformed input.
exit gate
Without notes, explain pointer, address, dereference, array layout, struct layout, stack vs heap, allocation and free, segmentation fault, and why an unbounded copy is dangerous. Set a GDB breakpoint, inspect variables and memory, and explain a crash.
next
Unit 1. Begin modern C++ and finish pwn.college Computing 101 in parallel.