Re: [Cascavel-pm] Código ilegivel ao olho humando atrasa processamento?

Nilson Santos acid06 em gmail.com
Sábado Junho 11 09:43:52 PDT 2005


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.


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