0

While trying to run an executable called lmcrypt on a 64-bit Ubuntu 16.04.6 LTS system, I'm getting the following error:

$ ./lmcrypt
-bash: ./lmcrypt: No such file or directory

As far as I can tell, the file is a valid 64-bit executable:

$ file ./lmcrypt
./lmcrypt: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 2.6.18, stripped

For comparison:

file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 2.6.32, BuildID[sha1]=d0bc0fb9b3f60f72bbad3c5a1d24c9e2a1fde775, stripped

What am I missing?

Edit: readelf -l lmcrypt returns the following output

Elf file type is EXEC (Executable file)
Entry point 0x40512c
There are 8 program headers, starting at offset 64

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x0000000000400040 0x0000000000400040
                 0x00000000000001c0 0x00000000000001c0  R E    8
  INTERP         0x0000000000000200 0x0000000000400200 0x0000000000400200
                 0x000000000000001a 0x000000000000001a  R      1
      [Requesting program interpreter: /lib64/ld-lsb-x86-64.so.3]
  LOAD           0x0000000000000000 0x0000000000400000 0x0000000000400000
                 0x00000000000fcaf4 0x00000000000fcaf4  R E    200000
  LOAD           0x00000000000fd000 0x00000000006fd000 0x00000000006fd000
                 0x0000000000009219 0x000000000000d808  RW     200000
  DYNAMIC        0x00000000000fd788 0x00000000006fd788 0x00000000006fd788
                 0x0000000000000220 0x0000000000000220  RW     8
  NOTE           0x000000000000021c 0x000000000040021c 0x000000000040021c
                 0x0000000000000020 0x0000000000000020  R      4
  GNU_EH_FRAME   0x00000000000da9c0 0x00000000004da9c0 0x00000000004da9c0
                 0x0000000000004ae4 0x0000000000004ae4  R      4
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     8

 Section to Segment mapping:
  Segment Sections...
   00
   01     .interp
   02     .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .textidx .fini .rodata .eh_frame_hdr .eh_frame
   03     .init_array .fini_array .jcr .data.rel.ro .dynamic .got .got.plt .data .fnp_dir .fnp_marker .bss
   04     .dynamic
   05     .note.ABI-tag
   06     .eh_frame_hdr
   07
5
  • What does readelf -l lmcrypt return for the interpreter? Does the specific interpreter exist on your system?
    – doneal24
    Sep 24 '21 at 15:36
  • @doneal24 I've added the output to the description
    – geschema
    Sep 24 '21 at 15:39
  • Second part of my question was does /lib64/ld-lsb-x86-64.so.3 exist on your system. I don't think so for an Ubuntu 16.04 setup. My guess is that the binary was compiled on a different distribution, perhaps CentOS.
    – doneal24
    Sep 24 '21 at 15:44
  • @doneal24 no /lib64/ld-lsb-x86-64.so.3 does not exist on this system
    – geschema
    Sep 24 '21 at 16:11
  • /lib64/ld-lsb-x86-64.so.3 is provided by the package redhat-lsb-core : CentOS, RHEL, Fedora. Sep 24 '21 at 17:17
2

As per this post, it looks like you should install the lsb package:

sudo apt install lsb

This should give you the required package on /lib64/ld-lsb-x86-64.so.3 (just tested it on Ubuntu 16.04.7 and it does).

1

As an answer so that this question does not get orphaned. The elf interpreter for the binary does not exist on the target system. The interpreter exists by default on REL-compatible systems but not on Ubuntu 16.04. Using apt-get install lsb might help but I cannot verify since the OS is already past end-of-life.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.