шеллкод asm в буфере C - пролог

Я пытаюсь построить функцию в буфере в C. с помощью GDB я могу перевести

push   rbp
mov    rbp,rsp
(...)
leave
ret

в

0x55
0x48 0x89 0xe5
(...)
0xc9
0xc3

Итак, я написал код C:

int main()
{
   char buffer[]={0x55,0x48,0x89,0xe5,0xc9,0xc3};
   void (*j)(void)=buffer;
   j();
}

но моя программа, кажется, вылетает при "push rbp" (0x55 в буфере). Знаете почему?

Ответы на вопрос(1)

Ваш ответ на вопрос