![]() |
Вопросы: buffer overflow
Итак, купил вумную книжку "The Shellcoders Handbook: Discovering and Exploiting Security Holes". Пытаюсь разобраться с примерами из книжки на практике. Возникла проблема с первым же примером.
PHP код:
Потом (если я прав), смотрю результат дизассемблирования функции return_input(), для того, чтобы понять сколько места резервируется в стеке, вижу: Код:
0x08048594 <return_input+0>: push %ebpВ общем пишу программулинку, которая тупо переписывала бы адреса: PHP код:
Смотрю состояние регистров, ebp переписался значением 0x8048594, а в eip лежит 0x1. Почему? Что я не так делаю? |
Цитата:
(Потрейсил ща олькой и убедился, что это и правда так. У тебя, правда, никсы, но вроде ничего меняться не должно тут) |
Даже в таком случае, как я понимаю, eip должен переписаться на нужное мне значение, т.к. я просто переписываю лишнее.
|
Хм.. ну я составил шеллкод, который вырубает уязвимую программу. (под вин32)
char shellcode[] = "111111111111111111111111111111111111\x34\xff\x13\ x00" "\xe8\xa1\xce\x6d\x7c"; 0013FF34 - адрес места в стеке, сразу после этих четырех байт E8A1CE6D7C - код по адресу 0013FF34 - вызов ExitProcess: E8 A1CE6D7C CALL kernel32.ExitProcess |
а у кого нить в электронке есть эта книга?
|
Цитата:
|
Цитата:
Работает на ура :) А разве перезапись других данных кадра стека может за собой повлечь такое изменение EIP? че-та я в твою мысль не врубил%) |
сплоит: 0000000000000000000000000000000000(Alt+251)(Alt+18 )@
Если у кого есть в электронном варианте скинте плиз, тоже интерестно почитать |
Я б тоже почитал. Ни разу ее не видел
|
_http://slav0nic.xss.ru/books/hack_sec/THE%20SHELLCODER'S%20HANDBOOK.zip
+ сорсы к книге внутри. |
| Время: 23:17 |