win()function lying around - shellcode is a way to run your own instructions, giving you the ability to run arbitrary commands on the system.
radare2and work out where in memory the buffer starts; this is where we want to point the return pointer to.
gets()and find the exact address.
0xffffcfd4; if we run the binary multiple times, it should remain where it is (if it doesn't, make sure ASLR is disabled!).
context.binaryto our binary; this grabs stuff like the arch, OS and bits and enables pwntools to provide us with working shellcode.
p.interactive(), which enables us to communicate to the shell.