2010-10-04 3 views
0

Кто-нибудь знает, где относительно указателя кадра является обратным адресом функции? Есть ли разница между окнами и unix?Указатель рамки + обратный адрес

спасибо :)

+0

Это не имеет большого смысла для меня. Регистр указателя фрейма, по моему опыту, является смещением какого-то типа от указателя стека, в то время как обратный адрес живет в кодовом пространстве. Редкий случай, когда смешиваются код и пространство стека. Что вы пытаетесь сделать здесь? –

+1

@Michael Я думаю, что он означает, что такое смещение в стеке (относительно указателя кадра), где обратный адрес * сохранен *? (Я согласен с вами в том, что вы пытаетесь выполнить). –

ответ

2

Это сильно зависит от архитектуры, компилятора и т.д.

Попробуйте dissasembling некоторые игрушечные программы и выяснить (см objdump в Linux)

1

Обратный адрес находится в EBP + 4 в вашем стеке стека, но вы не сможете использовать его так, как в переполнении буфера, поскольку вы еще не контролируете поток выполнения.

Что нужно искать - это адрес обратного адреса из буфера. Это уникально для каждой уязвимости, и все, что попало между ними, должно быть предсказано или, скорее всего, просто вызовет свалку процесса.