This document provides an introduction to binary exploitation. It outlines the course, which will cover basic stack overflows, shellcode injection, and exploit mitigation technologies. It explains how buffer overflows can be used to overwrite the return address and change the flow of execution. By injecting shellcode into the buffer and overwriting the return address to point to it, arbitrary code can be executed to gain unauthorized access. Modern defenses like ASLR and NX are discussed, as well as future topics like return-oriented programming and format string vulnerabilities. The overall goal is to understand software exploitation and how to identify vulnerabilities in programs.