Инструкции Movs, вызывающие проблемы при переполнении буфера - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь выполнить Stack Buffer Overflow 4 на root .org (https://www.root-me.org/en/Challenges/App-System/ELF-x86-Stack-buffer-overflow-basic-4?action_solution=voir&lang=en), но есть инструкция rep movs DWORD PTR es:[edi],DWORD PTR ds:[esi], которая вызывает много проблем. Через несколько часов я прочитал в описании, что на ebp+0x8 есть адрес назначения инструкции movs (который я не понял, потому что он отличается от адреса, содержащегося в регистре edi) . Чтобы использовать переполнение, я установил для переменной среды PATH предыдущее значение (которое на самом деле является путем) и добавил разные буквы «А», адрес возврата к вредоносному шеллкоду и адрес, который заменил предыдущий пункт назначения. адрес ebp+0x8. Перезапись работала хорошо, но эта (movs) инструкция всегда вырабатывала ошибку «Ошибка сегментации». Затем, во время отладки, я заметил, что регистры esi и edi были перезаписаны буквами «A», и я не знаю почему. Я пытаюсь решить эту задачу, но не могу. Поэтому я спрашиваю вас, есть ли у кого-нибудь идея решить эту проблему.

Большое спасибо.

...