Не удается отключить SSP - PullRequest
       105

Не удается отключить SSP

0 голосов
/ 28 сентября 2019

У меня есть простой код, который был взят из Protostar 0 (строка формата) - Код немного изменился (см. Ниже).

Я изучил кадр стека функции vuln.Я заметил, что между локальными и ebp есть два значения.

Не уверен, являются ли эти два значения канарейками или нет, потому что я скомпилировал программу следующим образом:

gcc proto_0.c -oproto_0 -fno-stack-protector -m32

Насколько я понимаю, флаг -fno-stack-protector отключает канареек, так что это за значения?

void vuln(char *string)
{
    int target = 1;
    char buffer[32];
    sprintf(buffer, string);
    if(target == 0xdeadbeef) {
      printf("you have hit the target correctly :)\n");
    }
}

int main(int argc, char **argv)
{
    vuln(argv[1]);
}

кадр стека:

адрес возврата

сохраненный ebp

0x00000000

0xf7fab3fc

target

буфер

Ожидаемый кадр стека:

ret адрес

сохраненный ebp

target

buffer

...