Y a-t-il une chance de savoir comment un binaire a été construit, sous Linux ? (et ou autre Unix)
Compilateur, version, heure, flags etc…
J'ai regardé readelf
et n'a pas pu trouver grand-chose, mais il pourrait y avoir d'autres moyens d'analyser le code binaire/la section etc…
Tout ce que vous savez extraire ?
Réponse acceptée :
Il n'y a pas de méthode universelle, mais vous pouvez faire une supposition éclairée en recherchant les choses faites par un seul compilateur.
GCC est le plus simple; il écrit un .comment
section qui contient la chaîne de version de GCC (la même chaîne que vous obtenez si vous exécutez gcc --version
). Je ne sais pas s'il existe un moyen de l'afficher avec readelf
, mais avec objdump
c'est :
objdump -s --section .comment /path/binary
Je viens de réaliser que j'ai ignoré le reste de votre question. Les drapeaux ne sont généralement enregistrés nulle part; ils seraient probablement dans une section de commentaires, mais je n'ai jamais vu cela fait. Il y a une place dans l'en-tête COFF pour un horodatage, mais il n'y a pas d'équivalent dans ELF, donc je ne pense pas que le temps de compilation soit disponible non plus