From my experience, this book is not for the faint of heart and while it does teach a lot, it does not hold your hand. I (so far) have noticed it spends a brief amount of time on stuff I understood, and immediately jumps into the “hard stuff”.
I would describe this book as a good separator for the people that say “I can kinda read code but not really understand code” to learning how code works and understanding things like buffer overflows or references to assembly in jokes. Yeah my friends are cool like that!
After finishing the first chapter a friend suggested creating an article thinking it would be useful and I was like, “yeah that’s a good idea, and for those that have already read it, it will be a good refresher.
Intended audience: I’m writing these articles with the intent of reinforcing my own knowledge about the subject matter, and providing a refresher for those of you that have already read it or already know the material. My intention is not to simply copy the content verbatim or to save you the money in buying the book or pdf.
I’m deliberately leaving out some concepts a first timer would be better served researching on their own. A dick move? Not at all! The authors of the book put in a lot of time to make the book happen, and like myself, those that purchased the book or have already been through it also put in a lot of time studying the material and we’ve all benefit from doing so. You’re welcome!
Disclaimer: While I have written this article with a lot of summarized notes nothing will substitute getting your own copy of the book and reading through yourself. As per usual I plan on sharing my frustrations by expressing my freedom of speech. Yeah this shit is not easy, but well worth putting the work in. You will also notice a lot of this is in present tense and will likely have gaps in between chapters I finish and articles I’ve created. Each part will cover the following chapters.
Based on the table of contents in the book, the chapters are listed as 0x100 (for chapter one for example).
Part 1–Introduction & Programming (0x100-0x200)
Part 2–Exploitation (0x300)
Part 3–Networking (0x400)
Part 4–Shellcode (0x500)
Part 5–Countermeasures (0x600)
Part 6–Cryptography (0x700)
To keep the articles consistent, my notes for each part will follow this structure
- Chapter(s) covered
- Summary
- Concepts covered
- Additional resources