1. tooling
  2. buffer overflows
  3. shellcode
  4. format strings
  5. source code auditing