[Cascavel-pm] Encriptar/Ofuscar codigo fonte

Eden Cardim edencardim em gmail.com
Terça Janeiro 2 12:38:22 PST 2007


On 1/2/07, Matheus Cucoloto <matheuscucoloto em gmail.com> wrote:
> Ola pessoal, espero que eu consiga me expressar.
>
> De que maneira eu posso encriptar o meu codigo fonte em Perl? O
> objetivo é bloquear o codigo fonte, para quem terceiros nao possam
> ver.

Essa questão é meio controversial e já foi até arduamente discutida
aqui e no Perl Monks. Estou com preguiça de procurar nos arquivos a
discussão toda então vou expressar minha opinião de novo aqui mesmo.

A princípio, não há nenhuma forma eficaz de "bloquear" código fonte em
perl. Você pode até obfuscar o código para dificultar a leitura, mesmo
assim, qualquer programador Perl razoável conseguirá ler o seu código.
Você pode gerar código com perlcc também, mas se você RTFM, verá que o
código gerado assim não tem garantia nenhuma de funcionar.

Não vejo porque obfuscar código, principalmente relacionado a
administração de sistemas. Se você está tentando obter "security
through obscurity", pare enquanto ainda há tempo. O único prejudicado
será você mesmo, quando seu código estiver "imanutenível", tão cheio
de bugs que qualquer moleque leitor das notícias do security focus irá
conseguir burlar seu sistema.

Se estiver querendo impedir que outras pessoas descubram os "truques e
macetes" que "só você sabe". Taí uma receita do Casey West:

<code>
map{s[[^\@\$]][]go=>chomp,$_=[split/(\@+\$*)/=>$_]=>map{$_?do{s(
(\@+)(\$*))(chr((length$1)*10+length$2))ex=>print}:1}@$_}<DATA>,__END__
sub proto(@@@@@@@$$$$@@@@@@@@@@@$$$$$$$@@@@@@@@@@@$$$$$
@@@@@@@@@@@$$$$$$@@@$$@@@@@@@@@$$$$$$$@@@@@@@@@@@
@@@@@@@@@@@$@@@@@@@@@@@$$$$$$@@@@@@@@@@$$$$
@@@@@@@@@@$@@@@@@@@@@@$$$$@@@$$@@@@@@@@
@@@@@@@@@@$@@@@@@@@@@@$$$$@@@@@@@@@@$$$$$$$$
@@@$$@@@@@@@$$@@@@@@@@@$$$$$$$@@@@@@@@@$$$$$$$$$
@@@@@@@@@@$$$$$$$@@@@@@@@@@$@@@@@@@@@@@$$$$@){&proto}
</code>

Perl só existe e é bom porque pessoas colaboraram e nos
disponibilizaram o seu trabalho, se depender de mim, vai continuar
sendo assim.

-- 
Eden Cardim
Instituto Baiano de Biotecnologia
Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas
Laboratório de Bioinformática
--
"you seem to think that 'close enough' is close enough...
please learn to be 'literal' around programming."
merlyn - on irc.freenode.net#perl


Mais detalhes sobre a lista de discussão Cascavel-pm