[SP-pm] Perl Quiz
Stanislaw Pusep
creaktive at gmail.com
Wed Feb 2 09:19:27 PST 2011
E para quem quiser trollar, o módulo que faz esse tipo de ofuscamento é o
Acme::EyeDrops (
http://search.cpan.org/~asavige/Acme-EyeDrops/lib/Acme/EyeDrops.pm). Já para
converter imagem em texto, o Image::Magick (
http://search.cpan.org/~jcristy/PerlMagick-6.66-1/Magick.pm.in) quebra o
galho.
ABS()
2011/2/2 Gabriel Andrade <gabiruh em gmail.com>
>
> On Feb 2, 2011, at 9:54 AM, Stanislaw Pusep wrote:
>
> > E nesse caso, vai imprimir o que?
> >
> > #!/usr/bin/perl
> > eval eval '"'.
> >
> >
> > ('['^'+').('['^"\)").( '`'|')')
> > .('`'|'.').('['^'/').('{'^ '[' ).'('.
> > '('."'".('`'^('&')). "'".(('{')^ (( '[')
> > )).('['^'#'). ('{'^'[').('^'^('`' | '/')).
> > (('^')^( '`'|"\.")).( ( '^')^('`'|
> > (( ( '.'))) )) .( '^'
> > ^ ( '`'|'.')).')' .('{'^ '['). ('.').( ((
> > (( ( ( ( '{') ))))))^'[').'('. "'". ((( '{')
> > )^ '.' )."\'".( '{'^'[') .('['^'#').( '{' ^((
> > '[') )).+( ';'&'=' ). (('^')^( '`'| '.' )).
> > ((( '^'))^( ( ('`'))| (( '.' ))) ).')' .
> > ((( ( "\{")))^ '['). ( "\.").(
> > '{' ^ (( '[' ))). ('('). ( (( "'"))).
> > (( '!') )."'".(
> > '{' ^'[' ).''. ('['^'#'
> > ).+( ( (( ( '{')) ))^'[' ) .(('^')^(
> > "\`"| (( ( (( ',') ))))) ).+( '^'^(
> > '`'|'.')). "\)".( '{' ^+
> > "\["). '.'.('{'^'[').'\\'. '"' .((
> > '\\' )).'\\'.('`'|'.'). '\\'.
> > '"'.')'.';'.('!'^'+').'"'
> > ;$:='.'^'~';$~='@'
>
> Pros que ainda estão coçando a cabeça (como eu, que ficava quando via
> códigos assim):
>
> $ perl -MO=Deparse trollface.pl
> eval eval qq["print (('F' x 1000) . ('U' x 900) . ('!' x 20) .
> \\"\\\\n\\");\n"];
> $: = 'P';
> $~ = '@';
>
> A mágica desse código reside na possibilidade de se realizar operações
> bitwise sobre string de bits em perl.
>
> '[' ^ '+' produz 'p'
> '[' ^ "\)" produz 'r'
> '`' | ')' produz 'i'
>
> e assim por diante, até formar a string usada no 'eval'. O resto é usar a
> imaginação e ir inserindo espaços em branco no código pra formar o desenho.
>
> Em python isso não iria dar certo... o parser daria chilique no primeiro
> parágrafo mal indentado.
>
> =begin disclaimer
> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110202/cf91582e/attachment-0001.html>
More information about the SaoPaulo-pm
mailing list