Compilando scripts shell (shell-script) usando o shc
Esse tutorial irei falar desse compilador escrito em C que compila um script shell usando a linguagem C .
Qual seria a utilidade de se compilar um script? na verdade seria uma forma de guardar as informações, que não possa ser visualizada por terceiros.
O Francisco Javier Rosales García desenvolveu um compilador em C para shell script, na verdade ele converte o script shell para linguagem C . http://www.datsi.fi.upm.es/~frosal/ .
Caso você não tenha o gcc e o make instalado .
sudo apt-get install make gcc
Verifique se existe uma versão mais nova .
http://www.datsi.fi.upm.es/~frosal/
No meu caso usarei essa versão abaixo .
Agora vamos baixar e compilar .
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz
julio16@julio16-desktop:~$ wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz
–2009-05-12 18:56:48– http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz
Resolvendo www.datsi.fi.upm.es… 138.100.9.22
Conectando a www.datsi.fi.upm.es|138.100.9.22|:80… conectado.
HTTP requisição enviada, aguardando resposta… 200 OK
Tamanho: 35071 (34K) [application/x-tar]
Salvando para: `shc-3.8.6.tgz’100%[===============================================================>] 35.071 36,9K/s em 0,9s
2009-05-12 18:56:50 (36,9 KB/s) – `shc-3.8.6.tgz’ Salvo [35071/35071]
Vamos descompactar .
tar -xzvf shc-3.8.6.tgz
julio16@julio16-desktop:~$ tar -xzvf shc-3.8.6.tgz
shc-3.8.6/CHANGES
shc-3.8.6/Copying
shc-3.8.6/Makefile
shc-3.8.6/match
shc-3.8.6/pru.sh
shc-3.8.6/shc
shc-3.8.6/shc.1
shc-3.8.6/shc.c
shc-3.8.6/shc.html
shc-3.8.6/shc.README
shc-3.8.6/test.bash
c/test.csh
Vamos entrar no diretório .
cd shc-3.8.6 .
Se você tiver curiosidade de olhar o código fonte antes de compilar .
Agora vamos compilar .
make
julio16@julio16-desktop:~/shc-3.8.6$ make
*** ?Do you want to probe shc with a test script?
*** Please try… make test
Depois.
make test
Depois .
make strings
Depois como root .
sudo make install
Ele vai perguntar se você quer instalar. você digita (y) .
julio16@julio16-desktop:~/shc-3.8.6$ sudo make install
*** Installing shc and shc.1 on /usr/local
*** ?Do you want to continue? y
install -c -s shc /usr/local/bin/
install -c -m 644 shc.1 /usr/local/man/man1/
julio16@julio16-desktop:~/shc-3.8.6$
Agora para compilar um script .
shc -r -v -f teste.sh
“Texto tirado do Dicas-L”
* -r = compatibilidade entre distribuições de Linux
* -v = demostra as linhas utilizadas na compilação
* -f = qual shell será compilado
julio16@julio16-desktop:~/shc-3.8.6$ shc -r -v -f teste.sh
shc shll=bash
shc [-i]=-c
shc [-x]=exec ‘%s’ “$@”
shc [-l]=
shc opts=
shc: cc teste.sh.x.c -o teste.sh.x
shc: strip teste.sh.x
shc: chmod go-r teste.sh.x
Ele converte na linguagem C teste.sh.x.c depois compila gerando teste.sh.x .
Referências .
http://www.dicas-l.com.br/dicas-l/20060601.php
http://www.datsi.fi.upm.es/~frosal/sources/shc.html
http://www.datsi.fi.upm.es/~frosal/sources/CHANGES
Não esqueça de deixar seu comentário .
