Existe algum metadado útil dentro de objetos compartilhados e, em caso afirmativo, como extraí-lo?

1

Eu tenho um arquivo chamado mod_dav_svn.so . Gostaria de saber se esta é uma versão personalizada do arquivo ou uma versão padrão.

Eu tentei pesquisar no Google pelo md5sum do arquivo, mas nada apareceu, sugerindo que seja uma compilação personalizada.

Existe uma maneira de extrair metadados desse arquivo, como tempo de compilação / opções / etc?

    
por Rich 07.06.2011 / 14:07

2 respostas

2

Use o gerenciador de pacotes da sua distro e verifique o pacote para ver se o arquivo é original. Por exemplo, na minha distro baseada em rpm, posso fazer o seguinte:

 # Find the full path to the file
 $ locate mod_dav_svn.so
 /usr/lib/apache/mod_dav_svn.so

 # Find out what package it belongs to
 $ rpm -qf /usr/lib/apache/mod_dav_svn.so
 apache-mod_dav_svn-1.6.16-1.i686

 # Verify that package to make sure the file hasn't been tampered with
 $ rpm -vV apache-mod_dav_svn
 ........     /usr/lib/apache/mod_dav_svn.so

Os pontos indicam que todos os testes são normais para esse arquivo. Se tivesse sido alterado, poderia ter indicado uma incompatibilidade de soma de verificação, uma alteração de data, uma alteração de tamanho, etc.

    
por 07.06.2011 / 14:14
1

A primeira etapa é file mod_dav_svn.so para ver para que serve a arquitetura e ldd mod_dav_svn.so para ver com quais bibliotecas (e versões) ela está vinculada.

Você pode pesquisar por sequências imprimíveis com strings ( strings mod_dav_svn.so ).

Você pode exibir muitas informações no formato de texto legível com objdump . Tente inspecionar o arquivo com objdump -s mod_dav_svn.so | less , o compilador pode ter deixado uma pista em algum lugar.

    
por 08.06.2011 / 01:22