Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

151
Vistas
¿Por qué un archivo binario desmontado aún puede tener información de llamada de biblioteca en el archivo desensamblado?

La plataforma de prueba es Linux de 32 bits.

Compilo el programa ac sin eliminar la información del símbolo y uso objdump para desensamblar el archivo ejecutable elf.

Aquí está parte de los resultados.

 804831c: e8 8c fe ff ff call 8048360 <printf@plt>

Si uso:

 strip binary

para eliminar la información del símbolo y usar objdump para desensamblar el archivo ejecutable elf nuevamente, todavía puedo ver los resultados como:

 804831c: e8 8c fe ff ff call 8048360 <printf@plt>

Entonces mi pregunta es:

¿Cómo puede una herramienta de desmontaje como objdump saber el nombre de ciertas funciones de la biblioteca después de haber eliminado toda la información del símbolo?

¡Gracias!

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

El archivo ELF tiene 2 tablas de símbolos: .symtab y .dynsym. Este último es para los símbolos dinámicos necesarios para la vinculación dinámica (reubicación). En su caso, printf está en .dynsym y también puede estar presente en .symtab; por defecto, strip eliminaría .symtab pero no .dynsym, que es necesario para la reubicación.

puedes intentar

tira -R .dynsym tu_binario

para eliminar la sección dynsym manualmente y encontrará que no se ejecuta debido a una falla de reubicación.

over 4 years ago · Santiago Trujillo Denunciar

0

Las llamadas importadas siempre tendrán el nombre, es necesario vincular en tiempo de ejecución. Si eliminó el nombre de importación, ¿cómo sabría su aplicación a qué llamar? Los métodos de bibliotecas externas pueden (y generalmente lo hacen) tener una dirección diferente cada vez que se ejecuta su aplicación.

En otra nota, los métodos en línea o vinculados estáticamente a veces se pueden identificar y nombrar incluso sin información de símbolos. Muchos desensambladores buscan patrones comunes asociados con algunas funciones de biblioteca estándar. memcpy() , por ejemplo, a menudo se puede identificar y etiquetar heurísticamente incluso sin información de símbolo disponible.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda