[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