Nie można wykonać kodu powłoki -> (Speicherzugriffsfehler (Speicherabzug geschrieben))

mam tę funkcję:

char code[] = "\xeb\x19\x31\xc0\x31\xdb\x31\xd2\x31\xc9\xb0\x04\xb3\x01\x59\xb2\x05\xcd\x80\x31\xc0\xb0\x01\x31\xdb\xcd\x80\xe8\xe2\xff\xff\xff\x68\x65\x6c\x6c\x6f";

int main(int argc, char **argv)
{
  int (*func)();
  func = (int (*)()) code;
  (int)(*func)();
}

(ten kod pochodzi z:samouczek powłoki)

więc skompilowałem i wykonałem go, ale otrzymałem tylko ten komunikat: Speicherzugriffsfehler (Speicherabzug geschrieben).

Dlaczego nic nie otrzymuję, tylko ten komunikat o błędzie?

p.s .: mój system to komputer ubuntu x86. kod powłoki powinien z nim współpracować. skompilowałem go za pomocą gcc i gcc-4.5, oba te same błędy ...

questionAnswers(2)

yourAnswerToTheQuestion