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
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
.
No Gentoo e similares, use o portage que o shc já está disponível na árvore:
Para outras distribuições, exemplo derivadas do APT , instale primeiro as dependências necessárias:
Depois baixe o pacote, decompacte e compile o código:
Crie um arquivo teste pra ver como funciona: vim script.sh
Depois use o shc para transformar em binário:
E apenas rode o programa: ./binario
Se você tentar ver o conteúdo do arquivo binario , verá tudo codificado, exemplo:
cat binario
Para mais informações e opções via linha de comando, utilize a ajuda e o manual:
https://neurobin.org/projects/softwares/unix/shc/
Ficou alguma dúvida ? Comente!