Questions about this topic? Sign up to ask in the talk tab.

Category:Shellcode

From NetSec
Revision as of 09:14, 7 June 2012 by Levi99Vmsb (Talk | contribs) (cant move into category so just have to recreate)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
c3el4.png
Shellcode, also known as bytecode, is assembly which has been translated into properly formatted machine code (binary represented in hexadecimal) for use during buffer overflow exploitation.

Every programming language eventually becomes binary, whether at compile-time or runtime. When writing a buffer overflow there are many obstructions from security infrastructure, such as DEP, ASLR, firewalls, or IDS and IPS appliances, thus many filter bypass and IDS evasion techniques (such as alphanumeric shellcode) must be utilized for successful exploitation in modern environments in conjunction with anti-heuristics and obfuscation for maximum effectiveness. There are primarily two types of shellcode: executable shellcode and return-oriented shellcode.

Protip: Machine code can be used by a programmer to write any application from an assembly approach because it is just as powerful as any other programming language.



Executable shellcode is typically translated from assembly written for its respective target Operating System.

Return oriented shellcode utilizes return oriented programming in cases when the vulnerable buffer is non-executable, bypassing the need for an executable stack.

Shellcode is part of a series on programming.
<center>
Shellcode is part of a series on exploitation.
<center>
</center>