Basics of pwn: About GOT and PLT
2020-01-05
GOT stands for Global Offset Table. It holds sections of addresses of functions that are dynamically liked. Most binaries usually don’t include every function to reduce the binary size.
Let’s look at an example code.
int main(void){
puts("Hello");
puts("Nice to meet you");
return 0;
}
In thise case the binary it-self wouldn’t contain puts but dynamically linked.
GOT usually first points to an entry in the Procedure Linkage Table(PLT). This is where usually just jumps aka jmp to the GOT address.
GOT and PLT is really important since it is used a lot in ROP(Return Orientated Programming).