Gerar binário de script sh, converter script sh em binario!!

Postado 15:46 14/01/2023 por THIAGO CONDÉ COMPARTILHAR

A principal vantagem de se gerar binário é ocultar o código fonte ou seja manter a integridade do script, então guarde o original para futuras modificações!! Iremos usar o shc (Shell Script Compiler), ele não é um compilador, ele em grosso converte e criptografa seu script pra C e compila em um binário e gera tbm um arquivo .c!! não há como reverter a ação!! Quando o binário é executado ele irá descriptografar e executar o código com o "shell -c" 

Talvez não seja a maneira segura esconder um código fonte, e sim de manter a integridade dele, iremos abordar mais sobre segurança!!

Temos uma simples calculadora.sh que criei com a ajuda de algumas pessoas segue a calculadora:

#!/bin/bash -i
#!/usr/bin/bash -i => iiiii Bash interativo imprimir $PS1
# @mbissaro e @PEdrArthur comunidade KDE-Brasil telegram
###################################################################################
# Script : calculador.sh
# Versão : 1.0 (/home/thiago/soma.sh)
# Autor  : Thiago Condé
# Data   : date=2022-03-07 23:35:55
# Info   : calculadora funcional bash!!
###################################################################################

alias c=calculadora.sh #(colocar no .bash_alias)
linha=$(echo $@|tr -s ',' '.' )  # retirado do grupo de t.me/shellbr
echo -n "${PS1@P}"  # contribuição @elvisvinicius telegram KDE-Brasil
echo -e "scale=2; $linha" | bc

é preciso dar permissão de execução: 

chmod +x calculadora.sh

faça um simples teste:

. calculadora.sh 6/3+2*2-3 # resposta esperada: 3.00

O script funcionando precisamos baixar e instalar o SHC  (Shell Script Compiler):

sudo apt update 
sudo apt install shc -y

agora sim vamos conveter em binario bastando apenas o seguinte codigo:

shc -U -f calculadora.sh -o calculadora

O arquivo calculadora ja é o binario do script original!! então faça um pequeno teste:

calculadora 6/3+2*2-3 # resposta esperada: 3.00

Pronto viu como é fácil gerar binário de um simples script!!