shc icon indicating copy to clipboard operation
shc copied to clipboard

Not working on Ubuntu 18.04

Open surjit opened this issue 6 years ago • 17 comments

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,

surjit avatar Nov 03 '18 06:11 surjit

What do you mean by "it does not work as it is supposed to work"?

catb0t avatar Nov 03 '18 15:11 catb0t

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,

surjit avatar Nov 03 '18 15:11 surjit

can you check with the last version and with the H flag

intika avatar Nov 12 '18 18:11 intika

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
...

techdev5521 avatar Nov 13 '18 23:11 techdev5521

The version is now 4.0.0 and way different than the original 3.8.9b.

The latest stable release is 3.9.8

neurobin avatar Nov 14 '18 06:11 neurobin

Same Problem occured when i am executing sysinfo.sh.x in ubuntu 18.04 but same file is executing in ubuntu 16.04

rajbasnet0007 avatar Apr 08 '19 08:04 rajbasnet0007

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

metalcated avatar May 20 '19 16:05 metalcated

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.

nama08 avatar May 29 '19 18:05 nama08

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

metalcated avatar May 31 '19 12:05 metalcated

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

metalcated avatar May 31 '19 12:05 metalcated

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

metalcated avatar May 31 '19 12:05 metalcated

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?

nama08 avatar May 31 '19 13:05 nama08

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]

joglomedia avatar Jul 15 '19 23:07 joglomedia

Can you run your compiled executables that hang with strace to see which syscall they hang on?

rouben avatar Dec 21 '19 21:12 rouben

I succeeded to compile the program under 16.04 as it fails on 18.0x.

nama08 avatar Dec 21 '19 22:12 nama08

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

Shocker avatar Dec 12 '20 15:12 Shocker

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.

Nour963 avatar Apr 13 '21 10:04 Nour963