Symbols, PLT, and GOT (Preview)
- Symbols: names for functions/globals (
main,system).nm,info functions, or pwntoolself.symbols['main']resolve them. - PLT (Procedure Linkage Table): small stubs used to call external library functions (e.g.
printf@plt). - GOT (Global Offset Table): a writable table of resolved library addresses that the PLT jumps through.
Key Takeaway
Because the GOT is writable, overwriting a GOT entry can redirect a library call to attacker-controlled code — a technique we return to after we cover ret2libc and format strings.