从剥离的ELF二进制文件估计编译器(GCC或LLVM-clang)版本

时间:2017-12-12 01:15:01

标签: linux gcc elf llvm-clang decompiler

Linux发行版的ELF二进制文件被剥离,不包含“.comment”部分。 因此,我无法获得编译器构建ELF二进制文件的信息。 我猜他们中的大多数是由GCC创建的,并想知道使用哪个GCC版本。

我知道如果“.comment”部分包含在ELF二进制文件中,我可以使用“readelf”或“objdump”获取编译器信息。 该方法之前已发布在stackoverflow.com

How to retrieve the GCC version used to compile a given ELF executable?

我想我可以反编译工具(例如,Hex-Rays Decompiler https://www.hex-rays.com/products/decompiler/)来估算编译器版本。 如果二进制文件不是由GCC创建的,我也想知道编译器名称。例如LLVM-clang。

您是否知道一种估算编译器名称和创建ELF二进制文件的版本的工具? 我更喜欢使用免费工具。

1 个答案:

答案 0 :(得分:0)

  

Linux发行版的ELF二进制文件被剥离,并且不包含" .comment"部分。因此,我无法获得编译器构建ELF二进制文件的信息。

大多数二进制文件附带一个单独的debuginfo包,其中 包含.comment个部分,已满源包,它允许您配置和构建(几乎)相同的二进制文件。

检查debuginfo或源包是一个更容易和更可靠的方式来回答你的问题,然后从二进制文件中猜测。

  

您是否知道一种估算编译器名称和创建ELF二进制文件的版本的工具?

我怀疑这样的工具是否存在:编写这样的工具将是一项毫无意义的工作。