Compilando Shell-script com o SHC

Olá,

Aproveitando o assunto do último post, segue mais uma boa dica para aplicativos em Linux.

Atualmente há uma vulnerabilidade nos shell-scripts, no qual seu código é visível para qualquer um que tiver permissão de leitura. Isso impacta em situações em que é necessário implementar alguma solução em shell-script com interação com usuários finais, vulneráveis a acessos não autorizados, etc.

 

Existe um software de nome shc, que é um compilador capaz de ler um código de programação shell-script e gerar um arquivo executável binário, com código totalmente protegido. Este compilador foi desenvolvido por Francisco Rosales <frosal@fi.upm.es>.

 

O Dowload deste compilador está disponível na página do desenvolvedor [1], e a utilização do mesmo será abordada a seguir:

O primeiro passo após baixar o pacote do site [1], é descompacta-lo conforme abaixo:

[root@localhost ~]# tar -xvzf shc-3.8.6.tgz

 

Depois, basta copiar o executável de nome shc da pasta gerada para um PATH padrão de seu sistema, como o /bin ou /usr/local/bin:

[root@localhost ~]# cp shc-3.8.6/shc /usr/local/bin/

 

Agora basta utilizar o “novo comando” para gerar seus binários comforme a sintaxe a seguir:

shc [OPÇÕES] -f [SHELL-SCRIPT]

 

Abaixo segue algumas opções:

-v : Mostra detalhes do processo de compilação

-r : Gera um binário compatível com mais de um sistema, portando o mesmo tipo de sistema operacional, e mesmos recursos contidos na shell-script (o binário será dependente dos recursos contidos no shell-script, como comandos, softwares terceiros, etc).

-f : Opção necessária para o compilador buscar o arquivo shell-script a ser compilado.

-T : Opção para gerar um binário “rastreavel” por software de debug, como strace.

 

Agora, vamos citar um exemplo de compilação simples de uma shell-script:

[root@localhost ~]# shc -v -r -f ARQUIVO.sh

O compilador nesta situação vai gerar um arquivo binário de nome ARQUIVO.sh.x. Agora basta renomeá-lo para um nome padrão e fazer uso do mesmo normalmente.

Por: Franklin Moretti

 

[1] – http://www.datsi.fi.upm.es/~frosal/

Fonte de pesquisa: http://www.vivaolinux.com.br/dicas/impressora.php?codigo=2271

Leave a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *