Author: Jon Erickson
Publisher: No Starch Press, 2008
Aimed at: Hackers
Pros: Some practical advice on using programming flaws and hence how to avoid them
Cons: A lot of irrelevant material included
Reviewed by: Harry Fairhead
Books on hacking all seem to suffer from a common fault and this one is no exception. The fault in question is trying to cater for the complete beginner while dealing with material that is far too difficult for the self same beginner. The reason for this fault seems to be the desire to latch onto the enthusiasm, or supposed enthusiasm, for hacking that the young, innocent and impressionable might have.
This is silly and misguided as hacking is a serious business that takes a lot of top grade knowledge before you can even begin. Rather than trying to explain the basic concepts of programming this book would be better off assuming them and telling any reader who hasn't got them to come back later.
If you are interested in hacking techniques that go beyond the social engineering approach of tricking people into revealing their passwords or using trojans then this might well be a book for you. However it's heavily into Intel architecture assembler, Linux and, in particular, the C programming language.
The book starts off with a discussion of how to exploit overflow bugs. If you can make an application overflow its stack then you can get it to run a program of your design. Similarly, but more difficult, are heap overflows and C-style format string errors. This is the most interesting part of the book, but once you have even the vaguest hint of the idea it's obvious what you have to do and how you could elaborate it to make it better. If these ideas are new then you will find yourself constantly saying "of course".
From this point the book is all down hill. We have chapters dealing with network hacking, cryptography and wireless network hacks. Much of this part of the book is very well-known and available information. There is also a good deal of unnecessary theoretical speculation on quantum cryptography. This, and the over-long listings of outputs, gives the impression that padding was necessary to reach the final size of this book. If the extraneous material were cut and the ideas presented in a concise form you would probably have one or two magazine articles that would make good reading.
So for the few nuggets of information that it contains, this is a good book but it is it worth the price? Probably not.