Forum: PC Hard- und Software Feststellen mit welchem Compiler/und Optionen ein Program comp. wurde


von Daniel -. (root)


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 :)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Ein Compiler legt eine Section an und verewigt sich dort.
> Idealerweise auch mit Aufrufoptionen.

Das Dumme daran ist, daß die Compilerhersteller nichts von dieser von 
Dir gerade erfundenen Konvention wissen und sich auch nicht daran 
halten.

von Ahem (Gast)


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?

von Thomas K. (muetze1)


Lesenswert?

Für einen kleinen Richtungszeig schau mal hier: http://www.peid.info/

Aber wie schon geschrieben, ist das soweit nicht leicht möglich.

PS: Der Link von oben funktioniert nur bei Windows Modulen (DLL, EXE, 
etc)

von Uhu U. (uhu)


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.

von Ahem (Gast)


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.

von Sascha (Gast)


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...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.