Решил попрактиковаться в переполнении буфера. Накатал быстренько уязвимую программу. При передаче такого аргумента `perl -e 'print "A"x100'` в отладчике gdb выдаёт:
Тогда как, на сколько я понимаю, регистр eip должен быть перезаписан на 0x41414141. Но такого не происходит и передать управление на шелл-код не удаётся.
В чём проблема?
Уязвимая программа:
Код:
#include <stdio.h>
#include <string.h>
int main (int argc, char *argv[])
{
char buf[10];
if (argc > 1)
strcpy(buf, argv[1]);
return 0;
}