2014-12-26 1 views

ответ

6

Как правило, вы не позволяете этому случиться. % eip не увеличивается безоговорочно; на него влияют инструкции по управлению потоком (например, jmp, call, bcc и т. д.).

На практике это поведение непредсказуемо. На некоторых процессорах переполнение% eip вызывает ошибку. На некоторых других он молча обертывается до нуля.

Эти несоответствия привели к известному эксплойту (оригинального) загрузочного ПЗУ Xbox, поскольку наборы для разработки использовались процессорами AMD (которые были повреждены на wraparound), тогда как на аппаратных средствах использовались процессоры Intel (а это не так). Для получения дополнительной информации см. Hacking The Xbox: An Introduction to Reverse Engineering, стр. 140.