GNU/Linux >> Znalost Linux >  >> Linux

Linux – Můžeme získat informace o kompilátoru z binárního souboru Elf?

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


Linux
  1. Jak získat informace Fibre Channel HBA z Linux SOSreport

  2. Existuje způsob, jak přimět gcc k výstupu surového binárního kódu?

  3. Získejte stropní celé číslo z čísla v linuxu (BASH)

  1. Jak mohu získat informace o kontejneru Docker Linux ze samotného kontejneru?

  2. Mohu zavést Linux z VHD?

  3. Jak mohu získat binární soubor ze souboru .py

  1. dmidecode:Získejte informace o systémovém hardwaru v systému Linux

  2. Použil jsem Ctrl-Alt-F6 v Linuxu a nemohu obnovit obrazovku

  3. Spuštění plochého binárního souboru pod Linuxem