question
I made an effort as follows:
- ls display; (can be successfully displayed)
- Modify the file name; (can be copied, modified, moved normally, and the copied one still cannot run)
- Adjust the file properties to make it
777
; - cat displays the files. (able to display successfully)
- root execution file; (file not found)
- Direct input
repeat
; (display no such command) - Switch to another directory, and then execute with a relative path
repeat
; (file not found) - Absolute path execution
repeat
; (file not found) - exec:
exec ./repeat
; (file not found) - Execute in another terminal:
/bin/sh ./repeat
; (report error) - Changed a machine, it can run normally (indicating that it is not a problem with the file itself).
It's all metaphysical methods, and it doesn't work.
solve
Check the header of the file: readelf -h repeat
;
It turns out that this is a 32-bit program, and running in 64-bit Ubuntu requires the installation of 32-bit libraries in advance.
First add the i32 architecture, then update the mirror source, and then install it. The instructions are as follows:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 -y
sudo apt install lib32z1 -y
Then it works! You can run! ! !