Smashing Stack в Ubuntu 11.10

Кто-нибудь из вас сталкивался со следующей проблемой при попытке перезаписать указатель $esp?

Конечно, попытка использовать допустимый размер буфера всегда работает! Но когда вы пытаетесь увеличить размер буфера, чтобы перезаписать $esp, и вам удается коснуться первого байта, второго байта или третьего байта $esp, все работает отлично. . Но как только вы попытаетесь перезаписать все 4 байта $esp, это полностью изменит его содержимое, а также адрес. Он больше не показывает 41, так как я использовал "A" для заполнения буфера. Я прикрепил скриншот, может быть, он объяснит более подробно. Спасибо всем.

#include <stdio.h>
#include <string.h>
int main(int argc, char** argv)
{
    char buffer[500];
    strcpy(buffer, argv[1]);
    return 0;
}

smash attempt

7
задан Cody Gray 30 December 2016 в 07:22
поделиться