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