shc
shc copied to clipboard
Not working on Ubuntu 18.04
I have compiled shc from source on Ubuntu 18.04, it does not work as it suppose to work but its working fine on Ubuntu 16.04
Thanks,
What do you mean by "it does not work as it is supposed to work"?
it suppose to work as it works on Ubuntu 16.04
--- sample.sh -- #!/bin/bash echo " sample.sh output" -- end sample.sh --
shc -f sample.sh
./sample.sh.x suppose to display "sample.sh output", but it does not, even terminal does not exists, have to press ctrl+c to terminate
Thanks,
can you check with the last version and with the H flag
I can confirm this same behavior.
When I try to compile sysinfo.sh (see below), I only get a stalled output when running sysinfo.sh.x
#!/bin/bash
# sysinfo.sh
# Print identifying information and info for running services
#############
# Variables #
#############
USER=$(whoami)
HOST=$(hostname)
INTERNAL_IP=$(ip addr | grep eno1 | tail -1 | awk '{print $2}' | awk -F / '{print $1}')
EXTERNAL_IP=$(curl -s ipv4.icanhazip.com)
# Print current user and hostname
echo ${USER}@${HOST}
# Print internal and external IP addresses
echo Internal IP: ${INTERNAL_IP}
echo External IP: ${EXTERNAL_IP}
$ shc -f sysinfo.sh
$ ls -l
-rwxrwxr-x 1 user user 462 Sep 13 12:50 sysinfo.sh
-rwx-wx--x 1 user user 11400 Nov 13 18:41 sysinfo.sh.x
-rw-rw-r-- 1 user user 11943 Nov 13 18:41 sysinfo.sh.x.c
$ ./sysinfo.sh.x
(Hangs...)
System Information
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic
shc Information
$ shc -h
shc Version 3.8.9b, Generic Script Compiler
shc Copyright (c) 1994-2015 Francisco Rosales <[email protected]>
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script
...
The version is now 4.0.0 and way different than the original 3.8.9b.
The latest stable release is 3.9.8
Same Problem occured when i am executing sysinfo.sh.x in ubuntu 18.04 but same file is executing in ubuntu 16.04
Yes I can confirm the same. What I did notice is that the GNU Library is 2 different versions which generally is expected between 2 major release version of any OS distro. On 2 most current patch set of Ubuntu:
16.04 (most recent patch set): libc-dev-bin / 2.23-0ubuntu11 18.04 (most recent patch set): libc-dev-bin / 2.27-3ubuntu1
Thanks
Yes I can confirm the same. What I did notice is that the GNU Library is 2 different versions which generally is expected between 2 major release version of any OS distro. On 2 most current patch set of Ubuntu:
16.04 (most recent patch set): libc-dev-bin / 2.23-0ubuntu11 18.04 (most recent patch set): libc-dev-bin / 2.27-3ubuntu1
Thanks
Hi,
So did you managed to make it work? I am in same situation on Ubuntu 18.x.
Yes I can confirm the same. What I did notice is that the GNU Library is 2 different versions which generally is expected between 2 major release version of any OS distro. On 2 most current patch set of Ubuntu: 16.04 (most recent patch set): libc-dev-bin / 2.23-0ubuntu11 18.04 (most recent patch set): libc-dev-bin / 2.27-3ubuntu1 Thanks
Hi,
So did you managed to make it work? I am in same situation on Ubuntu 18.x.
Sorry, no I was not able to make this work. The fix from my point of view would be to make shc work with the new version of the GNU Library.
Thanks
can you check with the last version and with the H flag
Not sure if anyone else tried this, but I did and I receive the following executing an shc encoded script:
Operation not permitted
Killed
Thanks
Okay... hold the phone here. So with version 4.0.2, I encoded a couple scripts as such:
./shc-4.0.2/src/shc -v -r -f script_name.sh
Then ran the .x with success on the same 18.04 patch set of Ubuntu (libc-dev-bin / 2.27-3ubuntu1).
Did anything other than typos change since 4.0.1? https://github.com/neurobin/shc/commit/274e98da23d5dbeeefa32a62bbc7c94bb7da10c7
Thanks
Nothing worked for me as I am stuck at "make" and hence can't compile the script.
Shall we downgrade to 16.x if shc works fine with previous releases?
The version is now 4.0.0 and way different than the original 3.8.9b.
The latest stable release is 3.9.8
Hi, what's the difference between shc released by Francisco Rosales and your version?
With these setup, I can confirm that shc is working fine on my environment (LM 19 Tara based on Ubuntu 18.04 Bionic)
Environment informations
$ lsb_release -a No LSB modules are available. Distributor ID: LinuxMint Description: Linux Mint 19 Tara Release: 19 Codename: tara
$ uname -a Linux masedi-X450CC 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ shc -h shc Version 4.0.3, Generic Shell Script Compiler shc GNU GPL Version 3 Md Jahidul Hamid [email protected]
Can you run your compiled executables that hang with strace to see which syscall they hang on?
I succeeded to compile the program under 16.04 as it fails on 18.0x.
When compiled with debug flag you can see it's stuck in an endless loop:
argc=2
argv[0]=./my_script.x
argv[1]=1
argv[2]=<null>
getenv(xe9a6c2731f6572fa)=<null>
shll=/bin/sh
argc=5
argv[0]=./my_script.x
argv[1]=-c
argv[2]=exec './my_script.x' "$@"
argv[3]=./my_script.x
argv[4]=1
argv[5]=<null>
shll=main
argc=2
argv[0]=./my_script.x
argv[1]=1
argv[2]=<null>
getenv(xe9e10f35be4f92fa)=<null>
shll=/bin/sh
argc=5
argv[0]=./my_script.x
argv[1]=-c
argv[2]=exec './my_script.x' "$@"
argv[3]=./my_script.x
argv[4]=1
argv[5]=<null>
shll=main
argc=2
argv[0]=./my_script.x
argv[1]=1
argv[2]=<null>
getenv(xe9bcbcbd79aff2fa)=<null>
shll=/bin/sh
argc=5
argv[0]=./my_script.x
argv[1]=-c
argv[2]=exec './my_script.x' "$@"
argv[3]=./my_script.x
argv[4]=1
argv[5]=<null>
shll=main
argc=2
argv[0]=./my_script.x
argv[1]=1
argv[2]=<null>
getenv(xe9bc67704bbe12fa)=<null>
shll=/bin/sh
argc=5
argv[0]=./my_script.x
argv[1]=-c
argv[2]=exec './my_script.x' "$@"
argv[3]=./my_script.x
argv[4]=1
argv[5]=<null>
shll=main
argc=2
argv[0]=./my_script.x
argv[1]=1
argv[2]=<null>
getenv(xe9e1a6323aa732fa)=<null>
shll=/bin/sh
..........
and so on
The version is now 4.0.0 and way different than the original 3.8.9b.
The latest stable release is 3.9.8
I'm still having the same issue on ubuntu 18.04. I don't know if anyone already noticed it, but if you download the 4.0.0 from the link of this reply, and read the content of README.md file, they are including a way to download shc version 4.0.0 from a PPA
sudo add-apt-repository ppa:neurobin/ppa
sudo apt update
sudo apt install -y shc
dpkg -s shc
returns Version: 4.0.1-1
I reran and tested SHC on ubuntu 18.04, and the executable file finally worked as expected.