Como Converter seu Shell Script em Binário

Como criar um arquivo binário do seu Shell Scripting.


Bin Bash

Este artigo irá ajudá-lo a criar um arquivo binário do seu Shell Scripting, para que ninguém possa ver o código-fonte do seu script e podemos usá-lo como um comando. Para criar um arquivo binário a partir de um script, usamos o compilador SHC

Introdução

shc , um compilador de Shell Script, produz o código-fonte em C. O código fonte gerado é então compilado e vinculado para produzir um executável binário separado.

O binário compilado continuará a ser dependente do shell especificado na primeira linha do código de shell (ou seja, shebang) (ou seja, #!/bin/sh), portanto shc não cria binários completamente independentes.

O próprio shc não é um compilador como o gcc, ele codifica e criptografa um script em shell e gera o código-fonte em C com o recurso de expiração adicionado. Em seguida, ele usa o compilador do sistema para compilar um binário separado que se comporta exatamente como o script original. Após a execução, o binário compilado irá descriptografar e executar o código com a opção shell -c.

Instalação

No Gentoo e similares, use o portage que o shc já está disponível na árvore:

emerge dev-util/shc

Para outras distribuições, exemplo derivadas do APT , instale primeiro as dependências necessárias:

sudo apt-get install libc6-dev # Debian, Ubuntu, Mint, ...
sudo yum install glibc-devel # RHEL, CentOS, Fedora, ...

Depois baixe o pacote, decompacte e compile o código:

wget https://github.com/neurobin/shc/archive/release.zip
cd shc-*
make
sudo make install

Utilização

Crie um arquivo teste pra ver como funciona: vim script.sh

#!/bin/bash

echo -e "Os 3 primeiros caracteres de cada arquivo/diretório de local, são:\n"
for i in *; do
	echo "$i" | cut -c 1-3 | tr '\n' '\ '
done
echo

Depois use o shc para transformar em binário:

shc -f script.sh -o binario

E apenas rode o programa: ./binario

Se você tentar ver o conteúdo do arquivo binario , verá tudo codificado, exemplo:

cat binario

...
@x@�@�@�@�@�@�@�@�@�@�H�H��/H��t��H���5�/�%�/@�%�
�@����%�/h
          �0����%�/h
�����%r/h�����%j/h������%b/h
...

Para mais informações e opções via linha de comando, utilize a ajuda e o manual:

shc --help
man shc

Página Oficial do shc

https://neurobin.org/projects/softwares/unix/shc/

Ficou alguma dúvida ? Comente!

Compartilhe

Marcos Oliveira

Autor
Marcos Oliveira
Desenvolvedor de Software
youtube.com/TerminalRootTV

Pacote Promocional com Todos os Cursos

Adquira todos os cursos para se tornar um ninja do Terminal e do Linux.

Artigos Relacionados



Comentários