Переполнение буфера в стеке и вывод символа - PullRequest
0 голосов
/ 18 ноября 2018
static const int answer = 0x21072107;

int main(int argc, char **argv)
{   
    setvbuf(stdin,  NULL, _IONBF, 0);
    setvbuf(stdout, NULL, _IONBF, 0);

    int x = 0;
    char buffer[32];

    printf("What do you want to put in buffer? ");
    fflush(stdout); 
    gets(buffer);

    printf("\nExpected value of x: %x\n", answer);
    printf("Actual value of x: %x\n", x);
        fflush(stdout);

    if(x == answer)
    {
        printf("\nYou win!\n");
            fflush(stdout);
    }
    else
    {
        printf("Try again!\n");
            fflush(stdout);
        return 1;
    }

    return 0;
}

Основываясь на коде выше, я пытаюсь угадать правильный ответ. Я пытаюсь ввести 'A' * 50 раз, и я думаю, что буфер переполнится. Я немного застрял, потому что я не знаю, что мне еще вводить, чтобы угадать правильный ответ. Любые намеки или помощь, пожалуйста?

...