Ho un semplice programma:
void bug(char *arg1)
{
char name[128];
strcpy(name, arg1);
printf("Hello %s\n", name);
}
int main(int argc, char **argv)
{
if (argc < 2)
{
printf("Usage: %s <your name>\n", argv[0]);
return 0;
}
bug(argv[1]);
return 0;
}
Macchina: Ubuntu 14.04.1 32-Bit / gcc version 4.8.2
Il file compilato con -fno-stack-protector
e ALSR è disattivato
Questo è ciò che ottengo dopo aver provato ad eseguirlo da gdb:
Quello che mi aspettavo è vedere l'EIP impostato su 0x43434343
e EBP su 0x42424242
, ma vediamo che entrambi sono 0x41414141
Per favore aiuto. Cosa c'era di sbagliato?