This course covers software vulnerabilities, exploit mitigations, and advanced techniques for writing exploits. Following the historical order of arms race in cybersecurity, this course gradually introduces complex concepts in software security. Students will have hands-on experiences by playing Capture-The-Flag (CTF), which attacks a variety of vulnerable software in an emulated environment.