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二进制文件的版本的工具? 我更喜欢使用免费工具。
答案 0 :(得分:0)
Linux发行版的ELF二进制文件被剥离,并且不包含" .comment"部分。因此,我无法获得编译器构建ELF二进制文件的信息。
大多数二进制文件还附带一个单独的debuginfo
包,其中 包含.comment
个部分,和已满源包,它允许您配置和构建(几乎)相同的二进制文件。
检查debuginfo或源包是一个更容易和更可靠的方式来回答你的问题,然后从二进制文件中猜测。
您是否知道一种估算编译器名称和创建ELF二进制文件的版本的工具?
我怀疑这样的工具是否存在:编写这样的工具将是一项毫无意义的工作。