Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Offensive Shellcode from Scratch
  • Toc
  • feedback
Offensive Shellcode from Scratch

Offensive Shellcode from Scratch

By : Rishalin Pillay
4.5 (8)
close
Offensive Shellcode from Scratch

Offensive Shellcode from Scratch

4.5 (8)
By: Rishalin Pillay

Overview of this book

Shellcoding is a technique that is executed by many red teams and used in penetration testing and real-world attacks. Books on shellcode can be complex, and writing shellcode is perceived as a kind of "dark art." Offensive Shellcode from Scratch will help you to build a strong foundation of shellcode knowledge and enable you to use it with Linux and Windows. This book helps you to explore simple to more complex examples of shellcode that are used by real advanced persistent threat (APT) groups. You'll get to grips with the components of shellcode and understand which tools are used when building shellcode, along with the automated tools that exist to create shellcode payloads. As you advance through the chapters, you'll become well versed in assembly language and its various components, such as registers, flags, and data types. This shellcode book also teaches you about the compilers and decoders that are used when creating shellcode. Finally, the book takes you through various attacks that entail the use of shellcode in both Windows and Linux environments. By the end of this shellcode book, you'll have gained the knowledge needed to understand the workings of shellcode and build your own exploits by using the concepts explored.
Table of Contents (11 chapters)
close
1
Section 1: Shellcode
5
Section 2: Writing Shellcode
8
Section 3: Countermeasures and Bypasses

Anatomy of memory

Regardless of the operating system (OS) on which they operate, all processes utilize memory. The way that memory is maintained varies from one OS to another. Physical memory isn't directly accessed by processes. When a process is accessed, the CPU converts the virtual address into a physical address. As a result, numerous values (for example, 0x12345678) can be stored at the same address (in other words, 0x12345678) while in distinct processes since they all relate to different physical memory addresses.

A virtual address is allocated to a process when it is launched in the computer environment. For example, in a Win32 environment, the address range is 0x00000000 to 0xFFFFFFFF, with userland processes ranging from 0x00000000 to 0x7FFFFFFF, and kernel processes ranging from 0x7FFFFFFF to 0xFFFFFFFF.

Memory consists of a few components, which are illustrated in the following diagram. We will cover the important parts of this diagram in relation to the chapter...

bookmark search playlist font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete