首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定精灵文件是可执行文件还是库

确定精灵文件是可执行文件还是库
EN

Stack Overflow用户
提问于 2018-07-04 00:44:17
回答 1查看 1.2K关注 0票数 0

我有以下问题:我有一个精灵文件,我想知道那个精灵文件是否可以作为一个独立的可执行文件运行。因此,对于共享库(例如,.so文件),我希望有False作为结果,对于准备运行的二进制文件,我希望True作为输出。我试图利用file来实现这一点,但显然所提供的信息是不够的。考虑一下

file /usr/bin/sudo /usr/bin/sudo: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=3e4fbfd5a73126630bcc22d5dee68c32e2813566, stripped

实际上,我期望输出是ELF 64-bit LSB executable,就像gcc编译器一样:

file /usr/bin/gcc-5 /usr/bin/gcc-5: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=b3417f0bc306e9b0afe35e778b5e4702f2d22b26, stripped

我在这里错过了什么,还有其他的方法来实现我的目标吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-04 04:58:01

因此,我希望有False,对于准备运行的二进制文件,我想要True作为输出。

一般来说,您的目标是无法实现的:可以构建一个准备好运行的库(例如,Linux上的/lib64/libc.so.6 ),也可以构建一个可执行文件,即使报告了ELF 64-bit LSB executable,也会在启动时崩溃。

尝试运行任何二进制文件也是不明智的,除非您知道该二进制文件的来源以及它的预期执行结果。

我在这里错过了什么

正如this answer解释的那样,许多最近的Linux发行版默认构建饼式可执行文件。

还有其他方法来达到我的目标吗?

this answer

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51164449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档