Pergunta

Dado um executável que é compilada a partir de C para executar no Solaris, é possível determinar qual o compilador foi usado para compilar a associada incompleta executável?

Não consigo ver nada ao usar as cordas ou o comando de arquivo, e magia não parece conter nada específico.

compiladores geralmente colocar uma impressão digital em seus arquivos de saída executáveis?

aplausos,

Foi útil?

Solução

Se o executável não é despojado, tente / usr / ccs / bin mcs-p Isso geralmente irá mostrar o compilador, vinculador e todos os arquivos de cabeçalho usado

Outras dicas

Sim IDA é ótimo para isso. Ele usa uma tecnologia chamada FLIRT .

PEID irá fazer o truque. Ele geralmente funciona muito grande. Obviamente PEID é uma ferramenta de janelas, mas não deveria importar e deve mostrar-lhe a compilador (às vezes até informações específicas da versão)

Construir pequenos aplicativos de teste com cada compilador que você está tentando identificar. Então olha para os resultados em um editor hexadecimal, e tentar encontrar padrões. Pode vir a ser realmente óbvio - por exemplo, os "rico" assinaturas de linker da Microsoft.

Não despojado:

$ cc -O hello.c

$ file a.out

a.out: ELF 32 bits MSB executável SPARC32PLUS Versão 1, V8 + Obrigatório, ligado dinamicamente, não descascada

$ cordas -a a.out | grep cc

/opt/solarisstudio12.3/prod/bin/cc -O hello.c

$ dwarfdump -i a.out | grep compile_o

DW_AT_SUN_compile_options Xa; O; R = Sol C 5,12 SunOS_sparc remendo 148917-07 2013/10/18; backend; cru; CD;

Stripped:

$ tira a.out

$ file a.out

a.out: ELF 32 bits MSB executável SPARC32PLUS Versão 1, V8 + Obrigatório, ligado dinamicamente, despojado

$ cordas -a a.out | grep cc

(nenhum)

Visual Studio e GCC normalmente seguem diferentes rotinas de inicialização (que chamar principal). Que talvez uma dica. Eu não sei sobre os outros embora. Para DLLs, não consigo pensar em algo semelhante fora do topo da minha cabeça.

Os compiladores normalmente adicionar a sua própria "assinatura" pessoal como texto simples nos arquivos compilados. Você pode usar uma ferramenta como cordas para Süss o para fora texto simples.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top