【问题标题】:i am unable to execute binary file in ubuntu. it gives error: bash, cant execute binary file我无法在 ubuntu 中执行二进制文件。它给出错误:bash,无法执行二进制文件
【发布时间】:2014-04-22 16:18:30
【问题描述】:

$file as1 as1:ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),静态链接,未剥离

$文件/bin/ls /bin/ls:ELF 32 位 LSB 可执行文件,Intel 80386,版本 1 (SYSV),动态链接(使用共享库),用于 GNU/Linux 2.6.15,已剥离

如何运行二进制文件?

代码:

  SECTION .data
msg1 db "HELLO WORLD !!!",0ah   ;msg to be print
msg1len equ $-msg1
SECTION .bss

SECTION .text
GLOBAL _start
_start:
mov rax,1                       ;system read call
mov rdi,1
mov rsi,msg1
mov rdx,msg1len
syscall

mov eax,60          ;system end call
mov edi,0
syscall

【问题讨论】:

    标签: ubuntu nasm ld


    【解决方案1】:

    我假设 as1 是您编译的汇编文件。根据file /bin/ls 的结果,您似乎正在运行一个32 位系统。您可以使用uname -m 确认您拥有 32 位内核。在这种情况下,您的程序无法运行,因为您似乎正在使用 64 位寄存器 rax ...

    您可以设置 64 位系统或重写程序以仅使用 32 位系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      • 2011-04-14
      • 1970-01-01
      相关资源
      最近更新 更多