Показать сообщение отдельно

  #9  
Старый 21.08.2006, 19:12
BUG(O)R
Познающий
Регистрация: 15.08.2006
Сообщений: 74
Провел на форуме:
53311

Репутация: 77
По умолчанию

Смотрим, что в конце функции такой код:

00401122 |> 83C4 04 ADD ESP,4
00401125 |. 5D POP EBP
00401126 |. 90 NOP
00401127 \. C2 0400 RETN 4

Это говорит о том, что при выходе из функции адрес возврата будет находится по адресу esp+8, поидее, если бы там дальше юзался ebp то прога бы упала, т.к. он затирается и мы не в силах это изменить, ну а т.к. там дальше никаких локальных переменных нет, то можно спокойно первые 8 байт вставлять какими угодно, а вот остальные 4 должны формировать адресс возврата, после символ должен быть нулём, т.е. нам надо вписать только 3 символа, что и было сделано.

sn0w это называется не затирка eip, а адресс возврата при retn он берётся с верхушки стека, т.е. из [esp].
 
Ответить с цитированием