首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux -无法执行二进制文件

Linux -无法执行二进制文件
EN

Stack Overflow用户
提问于 2015-01-02 08:06:13
回答 1查看 12.3K关注 0票数 4

我知道这个问题已经被问了很多,但问题仍然存在于我身上:

我有一个64位的ELF可执行文件,我正尝试在我的Kali VM上运行它,但它一直告诉我该文件不存在。

这个问题的解决方案大多是体系结构的差异,但我的Kali是x86-64:

代码语言:javascript
复制
$ uname -m
  x86_64

就像我正在尝试执行的文件(名为'8'):

代码语言:javascript
复制
file 8
8: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.27, BuildID[sha1]=0xf3b096c69086131b091d1805894fde4fae0537a0, stripped

编辑:错误:

代码语言:javascript
复制
 $ chmod +x 8
 $ ./8
 bash: ./8: No such file or directory

编辑2: lld:

代码语言:javascript
复制
linux-vdso.so.1 =>  (0x00007fffe37fe000)
libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f680fac8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f680f73c000)
libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f680f343000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f680f13f000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f680ef28000)
/lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007f680fd49000)

我试图安装32位库,但它也没有解决任何问题。我也在我的Ubuntu上尝试过,同样的问题。

有没有人知道如何运行它?如果你们中的一些人想在其他体系结构上尝试,这里有一个链接:https://www.dropbox.com/s/s3ucka4ufd00zmy/8?dl=0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-05 05:39:16

bash:./8:没有这样的文件或目录

这是由于系统中没有安装elf解释器而导致的。

你可以通过运行下面的命令找出你的文件是用哪个elf解释器编译的

代码语言:javascript
复制
readelf -l ./8 | grep interpreter

我猜您已经编译了/lib/ld-linux-x86-64.so.2,而标准的64位elf解释器是/lib64/ld-linux-x86-64.so.2

最好的修复方法是更正可执行文件的构建脚本(其中包含类似于-Wl,--dynamic-linker=/lib/ld-linux-x86-64.so.2的内容)。

或者,创建一个符号链接:

代码语言:javascript
复制
sudo ln -s /lib64/ld-linux-x86-64.so.2 /lib

也可以解决这个问题。

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

https://stackoverflow.com/questions/27735915

复制
相关文章

相似问题

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