Reading {checksec
Output}
$ checksec --file=./vuln
[*] '/home/lab/vuln'
Arch: amd64-64-little
RELRO: Partial RELRO
Stack: No canary found
NX: NX enabled
PIE: No PIE (0x400000)
- RELRO: Partial — GOT still writable; GOT-overwrite is on the table.
- Stack: No canary — linear stack smash to the return address is not detected.
- NX: enabled — cannot run injected shellcode; use ROP / ret2libc.
- No PIE (0x400000) — main binary at a fixed base; its gadgets/GOT need no leak.