Shellcode

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 20. März 2004 um 17:24 Uhr durch 217.186.1.216 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Shellcode bezeichnet die umgewandelte Form von Assembler (asm) Befehlen, die einen oder mehrere bestimmte Befehle ausführen soll. Die Umwandlung findet hierbei nur zu dem Zweck statt, die Anweisung so im Speicher (Bereich: Stack) zu platzieren (dies wird meist über einen sog. Buffer Overflow erreicht), dass der Prozessor sie aussführt.

Shellcodes werden so gut wie immer in buffer overflow exploits benutzt, um Anweisungen, die z.B. eine Shell erzeugen die an einem bestimmten Port lauscht, ausführen zu lassen.

Zur Erzeugung von Shellcode kann der auszuführende Befehl in C geschrieben und mit einem Compiler übersetzt werden. Das erzeugte Programm wird nun disassembliert (rückerübersetzt) und die Funktionsweise des Programms in eigenem, adressunabhängigen Assembler (asm) Code nachgeschrieben. Mit einem Debugger können nun die Hexdezimalen Befehle ausgelesen und zu einem String zusammengefügt werden.