buffer overflow

Iniciado por Meg, 5 Febrero 2009, 23:46 PM

0 Miembros y 1 Visitante están viendo este tema.

Meg

Buenas.

Nose si el tema va aqui si no es asi por favor movedlo.

Estoy empezando a leer cosillas sobre el desbordamiento de buffer, la pila etc..

Me estoy leyendo un tutorial bajado desde esta misma pagina pero hay una cosilla de un ejemplo que no entiendo.Dejo una foto adjunta:

http://img300.imageshack.us/img300/8106/dibujodv7.jpg

El caso es que no entiendo muy bien lo que hace en:

ret = buffer1 + 28

porque en el tutorial pone que es la direccion de retorno de la funcion , si no me equivoco la direccion de retorno esta justo antes de buffer1 en la pila y sera la direccion que esta despues de la llamada call a la funcion en el main, pero nose porque razon le suma 28...

gracias

Amerikano|Cls

Yo no se mucho de exploits pero si te puedo recomendar unos tutoriales que estan excelentes y te podrán servir  ;).

http://ricardonarvaja.info/WEB/CONCURSOS%202008/CONCURSO%203/Solucion%20a%20ExploitMe%2001-08%20Concurso%203%202008-Boken.rar

Y podras encontrar mas aquí:

http://ricardonarvaja.info/WEB/OTROS/EXPLOIT/

Si lees el primer link que puse podrás comprender de que se trata el BOF, allí nuestro amigo Boken, muestra a traves de unos exploitmes algunos conceptos básicos de este tema, son muy buenos realmente, y pues en el otro link hallarás otra gran cantidad de tutes que te pueden ir guiando por el tema  ;D.

salu2





Mi blog:
http://amerikanocls.blogspot.com

Shaddy

Cita de: Meg en  5 Febrero 2009, 23:46 PM
Buenas.

Nose si el tema va aqui si no es asi por favor movedlo.

Estoy empezando a leer cosillas sobre el desbordamiento de buffer, la pila etc..

Me estoy leyendo un tutorial bajado desde esta misma pagina pero hay una cosilla de un ejemplo que no entiendo.Dejo una foto adjunta:

http://img300.imageshack.us/img300/8106/dibujodv7.jpg

El caso es que no entiendo muy bien lo que hace en:

ret = buffer1 + 28

porque en el tutorial pone que es la direccion de retorno de la funcion , si no me equivoco la direccion de retorno esta justo antes de buffer1 en la pila y sera la direccion que esta despues de la llamada call a la funcion en el main, pero nose porque razon le suma 28...

gracias

Medianamente explicado, normalmente, cuando haces un desbordamiento, el objetivo es pisar una zona de redirección, por ende lo típico es llegar al SEH (siempre y cuando no tenga Safe SEH xD), pisarlo, y una vez lo pisas sobreescribirlo para redireccionar al código que dejaste en el Búffer... Para ello ya verás en OllyDBG cuadno haces el overflow como dice, fallo al intentar cargar tal direccion, si pones todo 'A' sería 0x41414141... Pero bueno, en CracksLatinos tienes ya unos cuantos tutes que explican ésto.

Salu2...

P.D: Mírate los "Abos"!!
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com