CRIPTOGRAFANDO SHELL SCRIPT

Olá!

Aqui, você verá uma forma simples de “criptografar” um Shell Script que você quer passar a alguém, mas não quer liberar o fonte ou que seja editável por qualquer um.

BÁSICO DE CRIPTOGRAFIA

Bom, um conceito básico sobre criptografia:

Criptografia (do Grego kryptós, “escondido”, e gráphein, “escrita”) é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível.

Mais sobre isso: Criptografia – Wikipédia, a enciclopédia livre

NECESSÁRIO

Para realizar o procedimento, iremos usar o seguinte:

Acesse: Francisco Rosales, home page

Faça download do arquivo (estava nessa versão ate o momento) shc-3.8.9.tgz.

Descompacte o arquivo, entre no diretório de download e execute:

 tar -xzvf shc-3.8.9.tgz

Entre no novo diretório com os arquivos e execute:

 make test

Logo após:

 make

Obs.: em caso de erro, ignore. Para mim deu erro, mas funcionou.

Será criado um arquivo shc. Se tiver, o arquivo está correto.

Para mais informações o manpage mesmo, diz:

“shc em si não é um compilador, como cc, antes a codifica e criptografa um Shell Script e gera o código fonte C com a capacidade de expiração adicionada. Em seguida, ele usa o sistema compilador para compilar um binário despojado que se comporta exatamente como o script original. Após a execução, o compilado binário irá descriptografar e executar o código com a opção shell -c. Infelizmente, não lhe dará qualquer velocidade ou melhoria como um programa C verdadeiro faria.”

Resumindo, ele pega o fonte do script, gera um arquivo de C e dele, gera um binário.

ENCRIPTANDO SEU SHELL SCRIPT

Com isso, a sintaxe é básica:

 ./shc -f seu_script.sh

Obs.: a única opção obrigatória é o -f, caso queira, pode colocar o binário shc criado no seu PATH. Daí, não é necessário o ./ na frente.

Com isso, será criado um arquivo com o mesmo nome, mais .x: seu_script.sh.x = binário

E um outro arquivo com o mesmo nome, mais x.c, com o fonte em C: seu_script.sh.x.c = fonte em C

Outras opções válidas:

  • -e :: a data de vencimento no formato dd/mm /aaaaa. Ou seja, validade para que o script seja executado, se passar dessa data, uma mensagem será exiba: “Por favor, contacte o seu fornecedor”.
  • -m :: mensagem a ser exibida após a expiração. Você informa qual a mensagem que será exibida quando expirar a data (usada no -e).
  • -f :: nome do script do arquivo para compilar.
  • -v :: verbose.
  • -T :: compatibilidade para usar o strace, ptrace, truss, etc.
  • -r :: relaxe a segurança. Faça um binário redistribuível que executa em sistemas diferentes executando o mesmo sistema de pacote ( 😀 ).
  • -h :: ajuda.

 

EXECUTANDO

Após criar o binário, você pode executar das seguintes formas:

 ./seu_script.sh.x
Ou
$ bash -c seu_script.sh.x

Ou ainda, colocar no seu PATH e executar:

 seu_script.sh.x

EXTRA: ENCRIPTANDO ARQUIVO DE TEXTO

Dica rápida para criptografar um arquivo de texto, você pode fazer da seguinte forma, usando o Vim (vi):

Opção: -x

 vim -x senhas_bla.txt

Processo:

  • Irá pedir a “palavra passe” duas vezes, digite a mesma;
  • Edite o arquivo e saia (não precisa editar, mas é necessário sair SALVANDO);
  • Após isso, ele já está “criptografado”;
  • Se tentar editar com o Vim (vi), será solicitado a senha;
  • Se der um cat no arquivo, irá aparecer criptografado.

 

CONCLUSÃO

Era isso pessoal, espero que seja útil!!

Fonte:

Abraço.

Rolar para cima