- Stack overflow
- Heap overflow
- Format String
- NULL byte / Off by one
- look at registers/stack, one of them will inevitably point to another value on stack (can do arbitrary read/write with this)
- look at registers/stack, one of them will point to libc's functions
- writing null bytes after a value can be done with %ln (write long int)
- writing 2 addresses at the same time is risky, but can be done
- param on registers, then stack (RDI, RSI, RDX, RCX, R8, R9, ..STACK | XMM0..7, ..STACK [for floating point])
- To set registers, ROP to pop rdi; ret