эксплойт: SIGSEGV, ошибка сегментации - PullRequest
0 голосов
/ 30 сентября 2018

Для моего задания hw я пытаюсь использовать файл переполнения c.Я не могу редактировать исходный файл, и я также не могу перекомпилировать его.

Я дошел до своего предполагаемого адреса.Однако после того, как он некоторое время выполнял код, я получаю следующее:

   0xffffcc38                  pop    %eax
   0xffffcc39                  push   %eax
   0xffffcc3a                  pop    %ecx
 → 0xffffcc3b                  xor    0x30(%ebp), %eax
   0xffffcc3e                  xor    %eax, 0x30(%ebp)
   0xffffcc41                  xor    %esi, 0x30(%ebp)
   0xffffcc44                  xor    0x30(%ebp), %esi
   0xffffcc47                  pop    %ax
   0xffffcc49                  push   $0x68736538
   0xffffcc3b in ?? ()


gef➤

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.

Он выполнялся нормально с 0xfffcc30-> 0xffffcc3a, но внезапно остановился на 0xffffcc3b.Могу ли я знать, почему это могло произойти?

1 Ответ

0 голосов
/ 30 сентября 2018

Могу ли я узнать, почему это могло произойти?

Если эта инструкция выдала SIGSEGV:

0xffffcc3b                  xor    0x30(%ebp), %eax

, тогда это безопасная ставка что $EBP + 0x30 указывает на недоступную память.

Скорее всего, вы "наступили" на $EBP ранее в вашем эксплойте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...