This lecture covers code injection attacks, control-flow hijack attacks, and deployed defenses such as Data Execution Prevention, Stack Canaries, and Address Space Layout Randomization. It explains how attackers force memory corruption to redirect control-flow and discusses the weaknesses and limitations of these defenses.