Gibt es eine Chance zu wissen, wie eine Binärdatei unter Linux erstellt wurde? (und/oder andere Unix)
Compiler, Version, Zeit, Flags etc…
Ich habe mir readelf
angeschaut und konnte nicht viel finden, aber es könnte andere Möglichkeiten geben, den Binärcode/Abschnitt usw. zu analysieren…
Weißt du irgendetwas, wie man extrahiert?
Akzeptierte Antwort:
Es gibt keinen universellen Weg, aber Sie können eine fundierte Vermutung anstellen, indem Sie nach Dingen suchen, die nur von einem Compiler erledigt werden.
GCC ist am einfachsten; es schreibt einen .comment
Abschnitt, der die GCC-Versionszeichenfolge enthält (die gleiche Zeichenfolge, die Sie erhalten, wenn Sie gcc --version
ausführen ). Ich weiß nicht, ob es eine Möglichkeit gibt, es mit readelf
anzuzeigen , aber mit objdump
es ist:
objdump -s --section .comment /path/binary
Mir ist gerade aufgefallen, dass ich den Rest Ihrer Frage ignoriert habe. Flags werden im Allgemeinen nirgendwo gespeichert; Sie wären höchstwahrscheinlich in einem Kommentarbereich, aber ich habe das noch nie gesehen. Es gibt einen Platz im COFF-Header für einen Zeitstempel, aber es gibt kein Äquivalent in ELF, also glaube ich nicht, dass die Kompilierzeit auch verfügbar ist