logoJulio Cardoso Tutoriais e Dicas


Compilando scripts shell (shell-script) usando o shc

Postado em Shell-Script Por julio em 12/05/09

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 .


Deixe seu Comentário