Neste texto, vou ensinar a baixar, instalar e usar SHC, um programa que encripta o código do seus shell scritps.
Antes de mais nada, eu gostaria de dizer que encriptar seus códigos não é uma prática recomendável. O ideal é documentar todo o script, de forma que qualquer pessoa o possa entender facilmente. Códigos fonte devem ser o mais acessíveis possível – já a informação com a qual eles lidam, é que deve ser restringida.
Se você precisa usar informações, usualmente confidenciais, como senhas, de forma automática, então deve procurar outra solução.
Hmmmm… você ainda está aqui?
Tenha em mente, contudo, que um script codificado através do SHC pode não ser legível para usuários comuns (creio que este seja o seu objetivo) — Contudo, uma pessoa que tenha conhecimento do seu funcionamento pode extrair o código criado pelo software.
Em tempo, SHC quer dizer SHell script Compiler.
Download e instalação
O software de que vamos tratar aqui, foi desenvolvido por Francisco Javier R. Garciae você vai encontrar sua versão mais atualizada aqui.
Vamos começar com o download do código fonte do programa:
Uma vez baixado, desempacote e instale:
Verifique se tudo correu bem:
shc parse(-f): No source file specified |
shc Usage: shc [-e date ] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script |
Crie um shell script de exemplo
Para testar, você pode usar seu próprio shell script ou pegar este aqui:
2 |
echo -n "Quantos numeros aleatorios voce deseja gerar? " |
4 |
for (( start = 1; start |
rode o script:
Quantos numeros aleatorios voce deseja gerar? 3 |
Encriptando o seu shell script com shc
Use o comando, a seguir, para fazer o trabalho:
isto deverá gerar os seguintes arquivos:
-rwxrw-r--. 1 user group 149 Mar 27 01:09 alea.sh |
-rwx-wx--x. 1 user group 11752 Mar 27 01:12 alea.sh.x |
-rw-rw-r--. 1 user group 10174 Mar 27 01:12 alea.sh.x.c |
Dos quais:
alea.sh
é o seu script original
alea.sh.x
é o seu script em formato binário e encriptado
alea.sh.x.c
é o código fonte do script original em linguagem C
Após transformar o código do seu script, originalmente escrito em Bash para um script em C, o shc o compila, gerando o executável alea.sh.x
.
Veja como testar:
alea.sh: Bourne-Again shell script text executable |
alea.sh.x: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped |
alea.sh.x.c: ASCII C program text |
Execute o seu script encriptado
Quantos numeros aleatorios voce deseja gerar? 3 |
Determine uma data de expiração pro seu script
Com o uso do shc, é possível evitar que o seu script seja executado após uma certa data. Se for feita a tentativa de executar um script que já tenha expirado, uma mensagem de erro será exibida na tela.
Crie um novo script, usando a opção “shc -e
“, que permite a entrada de uma data de expiração (que deve ser fornecida no formato dd/mm/yyyy
:
./shc -e 31/12/2011 -f alea.sh |
Veja o que acontece quando alguém tenta executar um script vencido:
./alea.sh.x: has expired! |
Please contact your provider |
Você pode criar a sua própria mensagem de expiração, para o caso de redistribuir o seu script para pessoas que não falem inglês, por exemplo. Use a opção -m
para isto.
Divirta-se!