Apakah ada peluang untuk mengetahui bagaimana biner dibangun, di bawah Linux? (dan atau Unix lainnya)
Kompiler, versi, waktu, bendera, dll…
Saya melihat readelf
dan tidak dapat menemukan banyak, tetapi mungkin ada cara lain untuk menganalisis kode/bagian biner dll...
Ada yang tahu cara mengekstrak?
Jawaban yang Diterima:
Tidak ada cara universal, tetapi Anda dapat membuat tebakan dengan mencari hal-hal yang hanya dilakukan oleh satu kompiler.
GCC adalah yang termudah; ia menulis .comment
bagian yang berisi string versi GCC (string yang sama yang Anda dapatkan jika Anda menjalankan gcc --version
). Saya tidak tahu apakah ada cara untuk menampilkannya dengan readelf
, tetapi dengan objdump
ini:
objdump -s --section .comment /path/binary
Saya baru menyadari bahwa saya mengabaikan sisa pertanyaan Anda. Bendera umumnya tidak disimpan di mana pun; kemungkinan besar mereka akan berada di bagian komentar, tetapi saya belum pernah melihatnya selesai. Ada tempat di header COFF untuk cap waktu, tetapi tidak ada yang setara di ELF, jadi saya rasa waktu kompilasi juga tidak tersedia