Я пытаюсь выполнить 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», и я не знаю почему. Я пытаюсь решить эту задачу, но не могу. Поэтому я спрашиваю вас, есть ли у кого-нибудь идея решить эту проблему.
Большое спасибо.