Exploiting software: how to break code - Hoglund, Greg (Addison-Wesley Software Security Series, 2004)