Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

An obfu by any other name

by teamster_jr (Curate)
on Nov 27, 2011 at 22:30 UTC ( #940286=obfuscated: print w/ replies, xml ) Need Help??

$_='my($w,$h,$x,$y,$z,$b,$v,$q,@s,@u,@a,@d)=(200,350,1,0,1,32000,chr(3 +9),65521," 2582500861661521092082371081121531251811863301540361932582502020800771 +0624914813 6182133125230167124168161144241159090126154180197177188164129112226165 +1041421741 5419817714816414713424715507812817116320815809016217615419418718021414 +7111233224 172120142189","1734941700001632042184103200220081061764941740001632042 +2541031202 2011103213411176080051105147303310216047160213390060134162067278329162 +1141621443 1429918612011712529031715009015116230328116813214712729031729412603409 +7");map{@d =map$_-144,/.{3}/g;while(my($a,$b,$c,$d,$e,$f)=splice@d,0,6){for(my$t= +0;$t<=1;$t +=.005){$u[$b+$t*($f*$t+$d)][$a+$t*($e*$t+$c)]=$z}}$z++}@s;sub{while(m +y$n=pop){$ u[$n/$w][$n%$w]&&next;$u[$n/$w][$n%$w]=$z;push@_,$n+1,$n-1,$n-$w,$n<$w +*$h?$n+$w: $n}$z<5&&$z++}->(10*$_)for(1228,550,4005,2816,6943);$h+=10;for(1..$h){ +@d=(1,@{$u [$_]||[]});push@a,map{$y=($y+($x=($x+($z=($d[$_]||1)-1))%$q))%$q;$z}0. +.$w}@u=@a; $h=pack"N2C5",$w,$h,8,3;$w="x\1";while($z=@d=splice@u,0,$b){$w.=pack"C +SSC*",!!($ b-$z),$z,~$z,@d};$w.=pack"N",$x+($y<<16);for$b(0..255){$b=(($b&1)*0xED +B88320)^($ b>>1)for 0..7;push@u,$b}open(F,">rose.png");binmode F;print F pack("H* +","89504e4 70d0a1a0a");print F pack("N",-4+length).$_.pack"N",sub{$w=$h=0xFFFFFFF +F;$w=$u[($ w^$_)&0xff]^($w>>8)for unpack"C*",$_;$w^$h}->()for"IHDR$h",pack("H38", +"504c54450 00000003000b200006f0000004"),"tEXtComment\0".join($/,unpack("(a80)*"," +\$_=$v$_$v ;s#\$/##g;eval")),"IDAT$w","IEND"';s#$/##g;eval

(generates rose.png)
Updated to work in 5.8 & golfed some

It's pure perl, string/warnings compliant, and has been tested on 5.8.8 and 5.12.4 and on windows, ubuntu & centos, so i'm fairly confident it works everywhere - let me know if it doesn't


What's missing?

  • thorns
  • I might try and include BooK's encoder to actually produce compressed png's (without too much trouble)
  • I'd like to add some sort of anti-aliasing or more likely hq3x
  • It would be interesting to complete the png generation by adding filtering

Comment on An obfu by any other name
Download Code
Replies are listed 'Best First'.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: obfuscated [id://940286]
Approved by liverpole
Front-paged by liverpole
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (8)
As of 2015-10-09 10:55 GMT
Find Nodes?
    Voting Booth?

    Does Humor Belong in Programming?

    Results (239 votes), past polls