C'è qualche possibilità di sapere come è stato creato un binario, sotto Linux? (e/o altro Unix)
Compilatore, versione, ora, flag ecc...
Ho guardato readelf
e non sono riuscito a trovare molto, ma potrebbero esserci altri modi per analizzare il codice binario/sezione ecc...
Qualcosa che sai come estrarre?
Risposta accettata:
Non esiste un modo universale, ma puoi fare un'ipotesi plausibile cercando le cose fatte solo da un compilatore.
GCC è il più semplice; scrive un .comment
sezione che contiene la stringa della versione di GCC (la stessa stringa che ottieni se esegui gcc --version
). Non so se c'è un modo per visualizzarlo con readelf
, ma con objdump
è:
objdump -s --section .comment /path/binary
Mi sono appena reso conto di aver ignorato il resto della tua domanda. Le bandiere generalmente non vengono salvate da nessuna parte; molto probabilmente sarebbero in una sezione di commenti, ma non l'ho mai visto fatto. C'è un punto nell'intestazione COFF per un timestamp, ma non c'è un equivalente in ELF, quindi non credo che sia disponibile nemmeno il tempo di compilazione