Whether you plan to develop your own shellcode in assembly or get better at understanding disassembled binaries, the following instructions will serve you well. In this section, we'll learn about instructions that copy values; instructions that will allow us to redirect program flow by jumping elsewhere in the program; instructions that allow us to add or subtract, multiply, or divide; instructions that show us how to safely zero out registers to avoid pesky NULL bytes; instructions that allow us to interact with and manipulate the stack; and many, many more. Just a word of warning: this will be a long recipe because I want to make sure we cover as many instructions in detail as possible. This will not be a complete list of instructions but will be more than enough to get us started.
This recipe will help to solidify our knowledge of...