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