Je nějaká šance vědět, jak byla sestavena binárka pod Linuxem? (a nebo jiný Unix)
Kompilátor, verze, čas, příznaky atd…
Podíval jsem se na readelf
a moc jsem toho nenašel, ale mohou existovat jiné způsoby analýzy binárního kódu/sekce atd…
Víte něco, jak extrahovat?
Přijatá odpověď:
Univerzální způsob neexistuje, ale můžete udělat kvalifikovaný odhad tím, že budete hledat věci, které provádí pouze jeden kompilátor.
GCC je nejjednodušší; zapíše .comment
sekce, která obsahuje řetězec verze GCC (stejný řetězec, jaký získáte, když spustíte gcc --version
). Nevím, jestli existuje způsob, jak to zobrazit pomocí readelf
, ale s objdump
je to:
objdump -s --section .comment /path/binary
Právě jsem si uvědomil, že jsem ignoroval zbytek vaší otázky. Příznaky se obecně nikde neukládají; pravděpodobně budou v sekci komentářů, ale nikdy jsem to neviděl. V hlavičce COFF je místo pro časové razítko, ale v ELF není žádný ekvivalent, takže si nemyslím, že je k dispozici ani čas kompilace