[eside-ghost] Control de errores de acceso a memoria en C?

Jon Valdés juanval en gmail.com
Mie Mar 5 20:35:29 CET 2008


2008/3/5 STenyaK (Bruno Gonzalez) <stenyak en gmail.com>:
> On 3/5/08, Jon Valdés <juanval en gmail.com> wrote:
>
> > Casi nada de esto es viable, me temo. El tema es que para clase tengo
>  >  que programar dos librerías para comunicaciones con sockets. Una para
>  >  la parte cliente, y otra para la parte del servidor.
>  >
>  >  Y el tema es que hay un corrector automático que prueba si las
>  >  librerías funcionan correctamente... e intenta joder las
>  >  comunicaciones a base de meter datos erroneos, buffer overflows, etc
>
>  Me interesa ese "corrector", hay url o es privado?

Me temo que es privado privadísimo xD Está en un servidor de la
facultad al que solamente los alumnos y profesores de esa facultad
tenemos acceso, y no tenemos acceso al código fuente.

>  >  Asi que me quiero cubrir las espaldas lo máximo posible. No sé si
>  >  intentarán pasar datos en zonas de memoria no accesibles... pero el
>  >  profesor es muy crack, y parece perfectamente capaz de liarla asi de
>  >  gorda a posta, para intentar jodernos... :-S
>
>  No sé, tras un googleo rapido "how to know if a pointer has allocated
>  memory C" salen algunas soluciones poco portables que igual te
>  interesan, por ej aki:
>  http://www.thescripts.com/forum/thread215822.html

Le echaré un vistazo a ver, muchas gracias.

>  Para reemplazar el catch de excepciones de C++ en C, igual puedes
>  capturar la señal SIGSEGV para ver si la memoria no está alocada.
>  Aunque no sé si luego te permitirá continuar la ejecución.

Es un warrohack interesante. No se yo si eso permitirá continuar
elegantemente la ejecución del programa, pero le echaré un vistazo

>  En el ejemplo concreto que pones, yo creo que con evitar un cast
>  implicito, y evitar una cadena de longitud indeterminada (strNcmp)
>  seguramente valga.

Eso espero xD

Seguiré investigando :)

Taluegooo


Más información sobre la lista de distribución eside-ghost