Re: [Cascavel-pm] Código ilegivel ao olho humando atrasa processamento?
Gabriel Vieira
gabriel.vieira em gmail.com
Sábado Junho 11 12:42:29 PDT 2005
Mas Nilson,
você está sendo um tanto quanto radical...
Digo.. até mesmo o Larry Wall já disse que o Perl pode ser utilizado
comercialmente...
Quando você desenvolve um sistema e quer vendê-lo (seu ganha pão) você
provavelmente não irá querer que o cliente fique com a fonte e passe pro
resto do planeta ou até mesmo venda o seu código...
Bom.. não é a toa que muitos 'encryptadores' de código foram
desenvolvidos... até mesmo compiladores.. (perl2exe, par, tinyperl -
graciliano concorda? :D).. é isso..
Cada um cada um... o perl é uma linguagem onde você pode fazer a mesma coisa
de diversas maneiras.. então fazer com que eu nao permita que uma pessoa
veja meu codigo nao faz com que a funcao de tal codigo seja excluisva
minha.. mts outras maneiras sao possiveis...
capiche? :P
Abração ;)
Gabriel Vieira
----- Original Message -----
From: "Nilson Santos" <acid06 em gmail.com>
To: "João Gabriel" <jamorreu em gmail.com>; "Cascavel Perl Mongers"
<cascavel-pm em pm.org>
Sent: Saturday, June 11, 2005 1:43 PM
Subject: Re: [Cascavel-pm] Código ilegivel ao olho humando atrasa
processamento?
On 6/10/05, João Gabriel <jamorreu em gmail.com> wrote:
> Estava pensando em fazer isso em futuras aplicações web minhas para
> que nenhum "espertinho" tentasse copiar e entender o código para tirar
> proveito de algo alheio.
Já ouviu falar no B::Deparse?
Seu código após uma passada por ele:
<code>
use CGI::Carp ('fatalsToBrowser');
read STDIN, $buffer, $ENV{'CONTENT_LENGTH'};
@pairs = split(?&?, $buffer, 0);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair, 3);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack 'C', hex $1;/eg;
$form{$name} = $value;
}
</code>
O ponto é: se você quer esconder código dos outros, Perl não é pra você.
Mude para Java/.NET e um dos seus obfuscators comerciais.
Mas... mascarar o código pra ficar mais feio não deixa nada mais lento
nem mais rápido. Na verdade, existe um módulo que faz isso:
Perl::Squish
(http://search.cpan.org/~adamk/Perl-Squish-0.01/lib/Perl/Squish.pm)
Claro, nada que o B::Deparse não possa desfazer. Mas o objetivo do
Perl::Squish é outro e muito mais nobre: diminuir o tamanho do script
para diminuir o tamanho de um pacote de distribuição, por exemplo.
Para objetivos claros de obfuscating, existe o PAR::Filter::Obfuscate.
Mas mesmo pra ele, existe um B::Deobfuscate que funciona pro esquema
padrão do filtro ou caso você tenha o YAML usado para encoding.
Assim sendo... me disseram que o livro do Deitel e Deitel é uma bom
material pra se aprender Java. Acho que tem pra C# também.
Sugiro que você reavalie os seus conceitos, uma vez que por eles, você
mesmo está sendo um "espertinho" ao fazer uso do Perl, Apache, módulos
na CPAN...
-Nilson Santos F. Jr.
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm
Mais detalhes sobre a lista de discussão Cascavel-pm