# Binary Exploitation

- [Reverse Engineering for Pwn](/binary-exploitation/reverse-engineering-for-pwn.md): Understand the binary and find vulnerabilities by analyzing it
- [PwnTools](/binary-exploitation/pwntools.md): A Python library that helps in creating scripts for binary exploitation, doing many things automagically
- [ret2win](/binary-exploitation/ret2win.md): Jump to a predefined function in the binary, even with arguments
- [ret2libc](/binary-exploitation/ret2libc.md): Using a buffer overflow to call the libc system("/bin/sh") function
- [Shellcode](/binary-exploitation/shellcode.md): Writing and debugging your own shellcode
- [Stack Canaries](/binary-exploitation/stack-canaries.md): Two protections that use a secret unpredictable value to reduce exploitability in memory corruption. Learn how to bypass them in certain scenarios
- [Return-Oriented Programming (ROP)](/binary-exploitation/return-oriented-programming-rop.md): Return-Oriented Programming is a common technique for exploiting buffer overflows by executing gadgets to do what you want
- [SigReturn-Oriented Programming (SROP)](/binary-exploitation/return-oriented-programming-rop/sigreturn-oriented-programming-srop.md): A special technique in ROP to set all registers only using a syscall
- [ret2dlresolve](/binary-exploitation/return-oriented-programming-rop/ret2dlresolve.md): A way to exploit buffer overflows using ROP when not many gadgets are available, and Full RELRO is disabled
- [Sandboxes (chroot, seccomp & namespaces)](/binary-exploitation/sandboxes-chroot-seccomp-and-namespaces.md): Escaping from sandboxes environments by exploiting the capabilities that were left open
- [Race Conditions](/binary-exploitation/race-conditions.md): Multiple processes running at the same time messing with each other or interrupting code with other code to create brief flawed states
