Computing hardware would have no value without software; software tells hardware what to do. Software therefore must have special authority within computing systems. All computer security problems stem from that fact, and Exploiting How to Break Code shows you how to design your software so it's as resistant as possible to attack. Sure, everything's phrased in offensive terms (as instructions for the attacker, that is), but this book has at least as much value in showing designers what sorts of attacks their software will face (the book could serve as a checklist for part of a pre-release testing regimen). Plus, the clever reverse-engineering strategies that Greg Hoglund and Gary McGraw teach will be useful in many legitimate software projects. Consider this a recipe book for mayhem, or a compendium of lessons learned by others. It depends on your situation. PHP programmers will take issue with the authors' blanket assessment of their language ("PHP is a study in bad security"), much of which seems based on older versions of the language that had some risky default behaviors--but those programmers will also double-check their servers' register_globals settings. Users of insufficiently patched Microsoft and Oracle products will worry about the detailed attack instructions this book contains. Responsible programmers and administrators will appreciate what amounts to documentation of attackers' rootkits for various operating systems, and will raise their eyebrows at the techniques for writing malicious code to unused EEPROM chips in target systems. --David WallTopics covered: How to make software fail, either by doing something it wasn't designed to do, or by denying its use to its rightful users. Techniques--including reverse engineering, buffer overflow, and particularly provision of unexpected input--are covered along with the tools needed to carry them out. A section on hardware viruses is detailed and frightening.
It's a catchy title. But it's also an inaccurate, disingenuous bait-and-switch. This is not a book about how to write exploits or malware. It does have a good bit of reverse engineering and debugging discussion within the context of IDA Pro (this is virtually all of Chapter 3, which is only useful if you have IDA Pro and care more about disassembling than crafting malware). As an analogy, imagine picking up a book on boating and finding that most of it was about how to take the engine apart.
The text is generally wordy and repetitive, not well-organized, and some topics that really should have been low-hanging fruit (like the nearly one hundred pages on buffer overflows) flounder and meander and never really get at the essence of the subject (FWIW: Erickson's "Hacking" is excellent on this topic). Happily, the closing chapter on Windows rootkits is interesting and there are some worked examples on how to develop and deploy rootkits on Windows XP. Overall, this book is like a growing band of modern cybersecurity books: it's fluffy and wordy, lacking solid, pragmatic content.
Outdated. Barely skims over certain topics, and repeats simple things throughout the book. It does things like throw pages full of sample IDA plugin code at the end one of the first chapters - despite later chapters at times tending to treat the reader like a novice. (Annoyingly, there's no source code or other examples available online - really?)