Attacking Network Protocols covers a variety of topics, but the Application Reverse Engineering chapter has to be mentioned. The Application Reverse Engineering chapter covers the difference between interpreted languages and compiled languages. James Forshaw’s explanation was pretty accurate and allowed a reader without any knowledge to understand the difference. The author went on and gave a great review of the x86 architecture by going into detail on the common x86 instructions. Furthermore, James Forshaw helped the reader understand the difference between the CPU registers and how the registers are broken down into four main categories. These explanations would help a reader without any knowledge of the x86 architecture and the CPU registers to understand the information and hopefully continue on reading without an issue. Without these explanations, a reader could potentially get confused in the chapter and potentially not want to read the remainder of the book. This may have been especially true for the IDA Pro Free Edition guide. This guides goes into some of the basics of IDA Pro Free Edition and could have confused the reader if they didn’t know the common x86 instructions and CPU registers. At the end of the chapter, James Forshaw mentions that you should not get frustrated by reverse engineering, as you may not be able to learn all the aspects very easily.