Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Bear is driving?

by teamster_jr (Curate)
on Mar 29, 2006 at 18:17 UTC ( [id://540024] : obfuscated . print w/replies, xml ) Need Help??

But how is that possible?

This requires GD and will make a file called o.png in the directory from which it is run.
It is based on the "father of the impossible figure" (see what i did with the title now :) ) Oscar Reutersvard's most famous piece,
For those without GD you can see the output here

$_=q^use G;$i=M G::Image(FABL0,L0,L0);J l{$p=M G::C;$$_=ord(D-Lfor qw. +x y.;$p->addPt(($x+=D,($y+=D)while$#_;AfilledC($p,D}J d{E0,0,L,-HL,H-L,H +AB KFEL,HL,-H0,L,-L,HABL,0,0)}J a{d@_;E0,0,0,L,L,H0,-L,ABL,F}$_="]]?l!{!] +!? !!?0]?{N";s#(.)(.)#a"$1","$2";\n#g;/".+;/;$_.="d$&";eval;open Z,"> +g" ;binmode Z;print ZApng^;for$r(qw.$i-> colorAllocate( Polygon shift) l@ +_, KK); GD 10, I sub 153, 20 new.){$l=chr 65+$c++;s#$l#$r#g}s#\n##g;eval

UPDATE as per Pied's request, a deobfuscated version is available here, with an explanation of what's happening and the obfuscation process...
Update 2 changed link to output as old server is b0rked

Replies are listed 'Best First'.
Re: Bear is driving?
by wazoox (Prior) on May 12, 2006 at 20:38 UTC
    I haven't got any output either: Perl 5.8.7 on Debian GNU/Linux x86. The code runs, but has no effect... Any idea?
Re: Bear is driving?
by Pied (Monk) on Apr 03, 2006 at 00:25 UTC
    Impressive !!
    If you could put the clean one somewhere and tell us how you obfuscated this one...


    Are the monkeys gone yet?
      here is a completely cleaned up version, showing what is actually run:


      Considered by teamster_jr: I was thinking of moving this to mediations as an explanation of obfuscation. is it worth it?
      Unconsidered by planetscape: keep votes prevailed (keep:15 edit:3 reap:0)

Re: Bear is driving?
by Nkuvu (Priest) on May 12, 2006 at 18:22 UTC

    Hmm. I'm getting no output. I checked the syntax with -wc and got a few warnings but "Syntax OK" at the end. No o.png file is created, nothing output to screen. And a 404 on the linked output.

    This is perl, v5.8.6 built for darwin-thread-multi-2level (that is, Perl on OS X). Any ideas?

      that's really odd - do you have GD installed? since it's wrapped in an eval without any error handling it will fail silently.

      if you add ||die $! to the end it will tell you what's wrong.(or replace the eval with a print, then run the output with warnings etc).
      oh and i changed the link to the output example.

        I've added the "or die $!" part, and I have a "no such file or directory in at line 6". Uh?