"Low-Level" curriculum
- Learn to write C: Write an http webserver
- Learn (an) assembly: Compile, then
objdump
this:#include <stdio.h> int main() { int x = 1337; while(x--) { printf("ayo\n"); } return 0; }
- Learn to reverse-engineer compiled programs: try some crackmes
- Get a microcontroller, and learn to write C for it
Some books:
- The Ghidra Book: The Definitive Guide (Eagle, Nance)
- Blue Fox: Arm Assembly Internals and Reverse Engineering (Markstedter)
- Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation (Dang, Gazet et. al.)
- Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software (Sikorski)