Feststellen mit welchem Compiler/und Optionen ein Program comp. wurde

OP #1260606
Lesenswert?

Hallo tuxuser,

wie kann ich nachträglich herausfinden mit welchem Compiler und
mit welchen Optionen ein Program compiliert worden ist?

Ich kenne
1
file program
so nützlich das ist, gibt es nicht die Compilerversion an.

Ich stelle mir das folgendermassen vor.
Ein Compiler legt eine Section an und verewigt sich dort.
Idealerweise auch mit Aufrufoptionen. Das würde bedeuten, dass
ich nur diese Section finden muss und mit objdump ausgeben.

Google "misleitet" mich bei der Suche :)
Gast #1260622
Lesenswert?

Ich vermut mal, das man bei "einigen" Optionen sicherlich Rückschlüsse 
aus dem Objekt-File ziehen kann. Eine vollständige 
Positiv/Negativ-Entscheidung für jede mögliche Option wird bestimmt 
ziemlich aufwendig, wenn das überhaupt möglich ist.

Wozu möchtest Du das denn wissen?
#1260635
Lesenswert?

Man kann sowas selbst machen, indem man eine Stringkonstante 
entsprechend zusammenbaut und mit einer speziellen Zeichenfolge 
markiert. Die kann man dann im Image suchen.

Wenn man make oder was vergleichbares benutzt, kann man diesen String 
dort zusammenbauen und per -D-Option als define definieren und auf 
diesem Weg in die Stringkonstante bekommen.
Gast #1260654
Lesenswert?

Es ist halt die Frage ob es Daniel darum geht ein Verfahren zu 
"erfinden" oder darum bei einem schon vorhandenen Objektfile diese 
Optionen zu ermitteln? Ich habe die Frage wie im zweiten Fall 
verstanden.

Trotzdem nette Idee von Uhu, finde ich.
Gast #1260675
Lesenswert?

Sicherlich koennte man das Binary analysieren und bestimmte "Eigenarten" 
finden und so Rueckschluesse auf den verwendeten Compiler (und vllt. 
grob die Version) ziehen (aehnlich wie z.B. nmap das Betribssystem eines 
Hosts und seine Version "erkennen" kann).

Meines Kenntnisstandes nach existiert soetwas aber noch nicht...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren