As human ac�vi�es moved to the digital domain, so did all the well-known malicious behaviors
including fraud, the�, and other trickery. There is no silver bullet, and each security threat calls for a
specific answer. One specific threat is that applica�ons accept malformed inputs, and in many cases
it is possible to cra� inputs that let an intruder take full control over the target computer system.
The nature of systems programming languages lies at the heart of the problem. Rather than
rewri�ng decades of well-tested func�onality, this book examines ways to live with the
(programming) sins of the past while shoring up security in the most efficient manner possible.
We explore a range of different op�ons, each making significant progress towards securing legacy
programs from malicious inputs. This book provides readers with some of the most influen�al
works on run-�me exploits and defenses.