Domanda

Dato un eseguibile compilato da C per essere eseguito su Solaris, è possibile determinare quale compilatore è stato usato per compilare l'eseguibile incompleto associato?

Non riesco a vedere nulla quando utilizzo le stringhe o il comando file e la magia non sembra contenere nulla di specifico.

I compilatori generalmente inseriscono un'impronta digitale nei loro file di output eseguibili?

applausi,

È stato utile?

Soluzione

Se l'eseguibile non viene rimosso, prova / usr / ccs / bin mcs-p Questo di solito mostrerà il compilatore, il linker e tutti i file di intestazione utilizzati

Altri suggerimenti

Sì, IDA è ottimo per questo. Utilizza una tecnologia chiamata FLIRT .

PEID farà il trucco. In genere funziona alla grande. Ovviamente PEID è uno strumento di Windows ma non dovrebbe importare e dovrebbe mostrarti al compilatore (a volte anche informazioni specifiche sulla versione)

Crea piccole app di prova con ogni compilatore che stai cercando di identificare. Quindi guarda i risultati in un editor esadecimale e prova a trovare schemi. Potrebbe rivelarsi davvero ovvio, ad esempio " Rich " firme dal linker di Microsoft.

Non spogliato:

$ cc -O ciao.c

$ file a.out

a.out: eseguibile MSF ELF a 32 bit SPARC32PLUS versione 1, V8 + obbligatoria, collegata dinamicamente, non eliminata

$ stringhe -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 = Sun C 5.12 SunOS_sparc Patch 148917-07 2013/10/18; backend; raw; cd;

Stripped:

$ strip a.out

$ file a.out

a.out: eseguibile MSF ELF a 32 bit SPARC32PLUS versione 1, V8 + obbligatoria, collegata dinamicamente, spogliata

$ stringhe -a a.out | grep cc

(nessuno)

Visual Studio e GCC in genere seguono diverse routine di avvio (che chiamano main). Questo forse un suggerimento. Non so degli altri però. Per le DLL, non riesco a pensare a qualcosa di simile dalla cima della mia testa.

I compilatori di solito aggiungono la propria "firma" personale come testo in chiaro nei file compilati. È possibile utilizzare uno strumento come le stringhe per estrarre il testo in chiaro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top