comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Dudas Taller #2 [Bug Hunting]

  • 3 Respuestas
  • 2225 Vistas

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

Desconectado snakingmax

  • *
  • Underc0der
  • Mensajes: 87
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Blog de SnakingMax
    • Email
« en: Junio 15, 2011, 01:03:56 pm »
Aquí las dudas que surjan en el segundo taller de bug hunting.
« Última modificación: Julio 10, 2011, 12:49:43 am por ANTRAX »

Desconectado ryan parker

  • *
  • Underc0der
  • Mensajes: 27
  • Actividad:
    0%
  • Reputación 0
  • 0x000000
    • Ver Perfil
    • Email
« Respuesta #1 en: Junio 30, 2011, 01:50:58 am »
Holas aqui mi duda, aunque en si entiende muy bien esto:
Citar
El ancho de palabra de nuestro procesador de 32 bits, por aquello de 8 bits es 1 byte, hablamos de un procesador de 4 bytes (hablamos también de un ancho de palabra de 4 bytes). Por tanto:
Buffer1 que se declara de 5 bytes →Ocupa en memoria realmente 2 palabras, es decir, 8 bytes.
Buffer2 que se declara de 10 bytes →Ocupa en memoria realmente 3 palabras, es decir, 12 bytes.
A q se refiere con ancho de palabra ?

Citar
El ancho de palabra de nuestro procesador de 32 bits, por aquello de 8 bits es 1 byte
No se entende de veras. Haber 8 bits es 1 byte de acuerdo, entonces una palabra ocupa 8 bits, q es lo mismo a decir 1 byte...
Ah entonces se puede entender que una palabra es 1 byte ?

Citar
hablamos de un procesador de 4 bytes (hablamos también de un ancho de palabra de 4 bytes)
mmm de donde salio esos 4 bytes, mmm no sera 4 bits o un nible en este caso ...

Solo esta parte hace q no pueda entender muy bien esta entrega, ahora mismo estoy leyendo un libro ASM para poder comprender algunas partes. :P

Espero q me tengas paciencia con estas preguntas.

Salud0s
Your kung-fu is not strong!

Desconectado snakingmax

  • *
  • Underc0der
  • Mensajes: 87
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Blog de SnakingMax
    • Email
« Respuesta #2 en: Junio 30, 2011, 10:49:28 am »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
A q se refiere con ancho de palabra ?
Con ancho de palabra me refiero al número de bits que maneja en paralelo el procesador.

No tienes permisos para ver links. Registrate o Entra con tu cuenta
Ah entonces se puede entender que una palabra es 1 byte ?
No, porque hemos dicho que trabajamos con un procesador de 32 bits. Y sabemos que 32 bits son 4 bytes.
(Para pasar de bits a bytes se divide entre 8 )

No tienes permisos para ver links. Registrate o Entra con tu cuenta
Espero q me tengas paciencia con estas preguntas.
La que haga falta, cualquier duda para estamos.

Creo que hay una errata respecto a donde digo "1Byte para el puntero RET"
Un puntero a entero debería ocupar 4Bytes, ese Byte que falta para sobreescribir el RET es por otro motivo diferente al que menciono. Pero no te preocupes, en general se entiende el funcionamiento.

Simplemente ten paciencia, se que es algo complejo al principio.
Saludos

Desconectado snakingmax

  • *
  • Underc0der
  • Mensajes: 87
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Blog de SnakingMax
    • Email
« Respuesta #3 en: Junio 30, 2011, 01:18:10 pm »
Error en el paper 2:

La pila quedaría de la siguiente manera si miramos el tutorial "Smashing The Stack for fun and profit":
                                 buffer2       buffer1   sfp    ret    a      b     c
                               [            ]      [        ]   [    ]  [    ] [    ] [    ] [    ]
Tamaño en Bytes:        10                8          4

De forma que la distancia al ret son 8 Bytes de Buffer1 + 4 Bytes de SPF = 12 Bytes
Y el cálculo y esquema de la pila es correcto :-)
Yo he hecho cuadrar el código en el paper para que sumase 13 y funcionase en los nuevos compiladores GCC.

Distancia desde el comienzo de buffer1 hasta el ret:
8 + 4 = 12 Bytes (+1 byte por la version del compilador gcc que, ahora, reserva mas espacio)
En el paper dice que ese byte se debía a un puntero declarado llamado RET, pero no es por esa razón. Es por la versión del compilador GCC.

Si queréis mas detalle sobre esto podéis mirar aquí:
No tienes permisos para ver links. Registrate o Entra con tu cuenta

 

¿Te gustó el post? COMPARTILO!



[Propuesta] Taller de Pentesting desde 0

Iniciado por blood_rec

Respuestas: 38
Vistas: 14169
Último mensaje Octubre 06, 2012, 09:38:16 am
por Barym
Dudas Taller #1 [Bug Hunting]

Iniciado por snakingmax

Respuestas: 20
Vistas: 6893
Último mensaje Junio 03, 2011, 10:37:50 pm
por Draxo16