Tools and resources for developing shellcode
As you read this book, you will need to make use of various tools to compile shellcode. In this section, we will focus on compilers, assemblers, and tools that are common when creating shellcode. We will begin by looking at tools that can be used to compile and assemble shellcode that you may write using a high-level programming language. After, we will look at automated tools that can create shellcode for you.
Netwide Assembler (NASM)
The Netwide Assembler (NASM) is a portable and modular assembler for x86-64 architectures. It makes use of syntax that is easy to read and understand. It also enables support for macros and a wide range of x86 architecture extensions.
NASM supports a wide range of formats. You can find this extensive list at https://www.nasm.us/xdoc/2.09.10/html/nasmdoc7.html.
NASM is available for almost every x86-based operating system (including macOS), and it's also accessible as a cross-platform assembler...