
21.08.2006, 19:12
|
|
Познающий
Регистрация: 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].
|
|
|