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?
我想我可以使用反编译工具(例如,十六进制反编译器https://www.hex-rays.com/products/decompiler/ )来估计编译器的版本。如果二进制文件不是由GCC创建的,我还想知道编译器的名称。例如,LLVM-clang。
你知道有什么工具可以用来估算创建ELF二进制文件的编译器名称和版本吗?我更喜欢使用免费的工具。
发布于 2017-12-12 10:47:11
Linux发行版的LinuxELF二进制文件被剥离,并且不包含".comment“部分。因此,我无法获得编译ELF二进制文件的编译器的信息。
大多数二进制文件还附带一个单独的debuginfo包,其中包含.comment部分,以及完整的源码包,允许您配置和构建(几乎)相同的二进制文件。
检查debuginfo或源码包是一种更容易、更可靠的方式来回答您的问题,然后从二进制文件中进行猜测。
你知道有什么工具可以用来估算创建ELF二进制文件的编译器名称和版本吗?
我怀疑这样的工具是否存在:编写这样的工具将是一项毫无意义的工作。
https://stackoverflow.com/questions/47763971
复制相似问题