Buffer Overflows: A Symphony of Exploitation