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

OP #1260606
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
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?
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
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.