Encyklopedia w MarkpolReklama:Oryginalne i pierwotne znaczenie tego słowa odnosiło się do kodu źródłowego, który miał za zadanie otworzyć powłokę systemową. W dzisiejszych czasach termin ten oznacza instrukcje procesora powstałe w wyniku skompilowania programu napisanego w języku asembler. Ten specjalnie spreparowany kod wykonuje całą brudną robotę i stanowi rdzeń exploita, który ma jedynie za zadanie dostarczyć go w odpowiednie miejsce w pamięci. Shellcode służy crackerom do zdobywania uprawnień superużytkownika. Przykładowy shellcode zapisany zgodnie z notacja języka C zamieszczony jest poniżej.
char shellcode[]=
"\x31\xc0" /
mov eax, 0x0000
Instrukcje te powodują powstanie pustych bajtów (zawierających 0x0). Spowodowane jest to sposobem implementacji większości funkcji kopiujących, które po napotkaniu bajta zerowego kończą swoje działanie (0x0 oznacza koniec danych). Aby uniknąć tego typu sytuacji do, np. zerowania rejestrów procesora używa się instrukcji
xor eax, eax
Dobrze skonstruowany shellcode powinien mieć jak najmniejszy rozmiar. Do najmniejszych dziś znanych shellcodów zaliczają się te o rozmiarze 22 bajtów.
Chcesz wypromować swoją stronę w internecie?? - nie zwlekaj pozycjonowanie w Luman.biz to rozsądny wybór |
|