![]() |
Прочитал довольно много статей. Вроде все понятно, но не выходит реализовать
Собственно, вот код: Код:
#include [CODE] int main(int argc, char *argv[]) { char buf[100]; strcpy(buf, argv[1]); cout P.S. При удачном исполнении программа должна просто проспать 15 секунд. |
Что даешь на вход buf?
|
Цитата:
Код:
memset(buf,0x00,sizeof(buf)); |
Цитата:
Я думаю дело в этой строчке. *(long *)&buf[112] = 0x0022FF60; |
Вот так тебе нужно сделать:
Код:
#include PS. Я уменьшил длину массива до 10 байт, если тебе обязательно нужно больше, то увеличивай первую секцию шеллкода (до call esp) пока регистр EIP не перетрется нашем адресом и всё. PPS. Адрес интсрукции call ESP может у нас отличаться. У меня Windows XP SP3 En x86 |
А как ты call esp нашел? Я всю программу перерыл в поисках call или jmp esp, так ничего и не нашел. IDA поиском не находит.
|
Цитата:
2. Открываешь список подгруженных библиотек (Alt + E) 3. Ищем среди них Kernel32.dll (эта библиотека как и ntdll.dll, msvcrt.dll всегда подгружены к любой программе в Windows) 4. Кликаешь правой кнопкой на ней и выбираешь "Follow Entry" и тебя перекидывает по базовому адресу загрузки Kernel32.dll 5. Далее будем искать нужную нам команду в этой библиотеке. Наживаем Ctrl + F и вводим команду call esp 6. И о чудо мы видим её)) (в крайнем левом столбце будет адрес этой команды) Ну как-то так! |
Цитата:
|
Цитата:
|
Цитата:
Upd. Код:
#include http://s020.radikal.ru/i703/1302/bc/4c89a1d32f93.jpg Судя по всему call esp выполняется, чтобы проверить записываем после call esp перед шеллом 5 нопов. http://s018.radikal.ru/i524/1302/31/4cadd39abc27.jpg Теперь в выводе видим, что эти 5 нопов появились в команде, значит call esp выполнился и нас перебросило на шеллкод. Так вот не понимаю, почему он не выполняется http://s45.radikal.ru/i110/1302/b2/9766dabef1da.jpg P.S. Вопрос для знатоков, можно ли в IDA, при вызове одной программы из другой, как в данном случае например, дизассемблировать вызываемую программу? То есть если exec.exe вызывает overflow.exe - IDA во время вызова overflow.exe, подключается к ней. |
| Время: 00:50 |