Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

157
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda