Notes regarding some books
Table of Contents
1. Hacking - the Art of Exploitation
This book is what made me learn some Assembly for the first time. I find it interesting insofar, that it explains hacker culture well, while not digressing from the technical topic too much. In it's core it just teaches the reader programming (Mostly C, some x86 Assembly, some shell scripting) and finding hacks on his own. It's quite expensive and most of the knowledge can be easily obtained over the internet. I don't think it's particularly worth buying. Most readers, who get this book, probably already have "the hacker spirit" and don't need some book for them to explain what the MIT Railroad club were and what Stallman does. I think "the hacker spirit" is best obtained by sitting at your computer and actually doing stuff, instead of reading some old, kind-of pretentious book.
2. The Shellcoder's handbook
This is a rather advanced book, that requires you to know C and Assembly and such on different platform. Different platforms is the correct keyword herein, because most of the book consists on very old systems, that virtually don't exist anymore in the wild and hence might be interesting for somebody exploiting almost-retro systems, but not to anybody who wants to learn somebody about new developments in infosec, among them CISCO IOS, Solaris, ancient Linux kernel versions and even older OpenBSD versions. If you want to learn what a buffer overflow looked like in 2000s, it's the book for you, but for anything else it's rather lacking in newer developments.
3. Modern x86-64 Assembly language programming
This book mostly focuses on how to improve the performance of common algorithms with Assembly, unlike what one might think, it doesn't teach how to write entire programs in Assembly, which is probably a more nuanced way of getting to Assembly programming. The parts, that are not Assembly, are written in C++. It's rather limited in scope and for example doesn't teach you anything useful for disassembly beyond the very basics, neither does it so for anything else that isn't x8664. It focuses on the extensions of the architecture like AVX, AVX2 and AVX-512 also and doesn't spare much time on the basics. In that sense it's good for it's intended purpose, but isn't much helpful with anything beyond that.
4. Black Hat Python
This is easily one of my favorite books. The version I have is written with Python 2.7 in mind, but I think newer releases will change that. It doesn't go into great depth about any particular topic, instead it shows off some interesting tricks and tips about each topic for the length of a chapter and then continues with a new topic. The topics covered range from general networking, over miscellaneous exploitation stuff, to a tiny bit of memory forensics. The book gives just enough insight that you don't feel deprived of more book content, but nonetheless makes you want to try it, modify, and learn more yourself. It might seem mediocre to some, but to me this book is just great.
5. Absolute OpenBSD
Although everything is already documented in the FAQ, the man pages, and on the Internet, this book is a good supplementary material. The biggest problem is that it is quite outdated and a lot of workarounds and problems described in the book, such as full-disk encryption being a rather tedious feature to set up during the installation, is already fixed in the newest OpenBSD version. As such the author still uses sudo, where these days one would use doas instead.
I think that is the problem mostly with books like these, where a lot of the advice, and tips and tricks, if you will, are already outdated when you buy them and will only get more outdated as they age, making buying a physical book instead of just acquiring a PDF through legal or not-so-legal means the inferior option.
For what it's worth, the book is well-written and it's pleasant to look at, even with some humour mixed into it. Otherwise, for the not outdated parts and the parts that are applicable regardless of the age, are good. He explains things like building ports with different make flags, or goes through the /etc and elaborates on the different files therein. I think there might be a few worthwhile things, if you come from GNU/Linux and want to learn a thing or two about OpenBSD, but again, then just skimming through the PDF is probably sufficient. It might be important to point out that the subject matter is exclusively OpenBSD, thus if you're looking for a technical reference for NetBSD or FreeBSD, you'll get disappointed.
**I will review these two once I'm finished, check at some later time.