¿Cómo desordenar objetos compartidos?

1

Sé que ha habido preguntas similares sobre ese tema, pero creo que la mía difiere de las otras. Tengo esta aplicación que puedo bloquear, pero el error parece ocurrir dentro de una biblioteca de objetos compartidos, que la aplicación carga. Así que mi pregunta es, ¿cómo puedo seguir adelante? Adjunté la aplicación a GDB y dejé que la aplicación fallara. Pero, ¿cómo podría saber si el error se basa en la biblioteca?

    
pregunta Dirk 25.04.2014 - 11:58
fuente

1 respuesta

0

No puedes. Por ejemplo, si llama a printf() con NULL como cadena de formato, obtendrá un segfault en libc, aunque no será un error de libc.

Pero puede estar casi seguro de que la biblioteca compartida no comprueba algunas de las estructuras de datos que obtiene del programa principal (o de otros archivos DLL). Las bibliotecas de C no necesitan hacer eso (normalmente).

Y si algo no se verifica contra la desreferencia del puntero NULO, probablemente no se verificó también contra la saturación del búfer. Y tales errores son causados principalmente por una nula desreferencia. Siempre debe verificar el nivel de asm (incluso con el gdb), lo que causó el bloqueo, y para hacer una suposición, ¿cuál fue su nivel en el nivel C.

    
respondido por el peterh 15.05.2014 - 18:37
fuente

Lea otras preguntas en las etiquetas