From the telltales signatures, we are dealing with a packed UPX executable file.
UPX is a free, portable, extendable, high-performance executable
packer for several executable formats.
Usually UPX is used to pack/mask binaries/malware/viruses as it's signatures/core are whitelisted in most AV solutions.
Be aware that in some malware executable files, UPX can be the outer layer, and you may have another "inner" packer of other packing/compression technology after "unpacking" the UPX layer.
To unpack the binary, it is necessary to install upx
.
Installing UPX in MacOS using MacPorts:
sudo port install upx
Installing UPX in Debian and derivates:
sudo apt-get install upx-ucl
To unpack the executable binary file:
upx -d exe_file
To pack it:
upx exe_file
For comparison, after unpacking exe_file
with:
upx -d exe_file
We rerun the commands in the question and the results are quite different:
$ file exe_file
exe_file: 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]=3c233e12c466a83aa9b2094b07dbfaa5bd10eccd, stripped
$ ldd exe_file
linux-vdso.so.1 (0x00007ffd431d3000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f7f7fb7d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7f7f7de000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f7f7f56b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7f7f367000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7f7ffc6000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7f7f14a000)
# ls -la exe_file
-rwxr-xr-x 1 root root 130736 Jan 22 15:26 exe_file
related question Understanding what a Linux binary is doing
file
command as a statically linked binary.