in reply to Countdown....

Okay, I think I have fully de-obfuscated it.
I was impressed before but now... I am at a loss for words.

<font color="#000000>
sub r { # get the first value of the array sent to me $z = shift @_; # create an 8 element, little endian bit array (@b) # containing the binary bits of $z foreach $_ (0 .. 7) { $b[$_] = vec($z, $_, 1); } # create a scalar $v containing the first bit my $v .= $b[0]; foreach $_ (1, 3, 5) { # append the (3rd & 2nd),(5th & 4th) and (7th & 6th) bits $v .= $b[$_ + 1] . $b[$_]; } # append the 8th bit $v .= $b[7]; # $v now contains $b[0].$b[2].$b[1].$b[4].$b[3].$b[6].$b[5].$b[7] # return a bit vector of $v return pack('b*', $v); } sub e { # eval the first item passed eval $_[0]; # return the value in $" $"; } sub t { # split $_[0] into an array and send it through subroutine r and joi +n the returned value join '', map(r($_), split(//, $_[0], 0)); } # redefine the input record separator ($/) $/ = qq(mkd\@h lqvj}" |[mhrqj\@ WW RB ?=H\n ;]B y[I LO +] opq rc\@ PB yS MLQ\n }By SS] hlq vj\@ twq vP GG Rsa\n hPw lbPB|=B?;Q ^B +y_B|=B ?;\\eplP ByQ\nRH VVB E|Q QVD :lD ]m rc \n ch\@I ]{{ ); $n = "4 km j\@ !vw\n\njpcl\@(clr\@0aeucl"; # acting on $n, replace " with a space and delete newlines and spaces $n =~ tr/"\n / /d; # $n now contains: 4kmj@!vwjpcl@(clr@0aeucl # redefine the list separator ($") # send $n to the t subroutine and store the returned value in $" $" = t($n); # $" now contains: Just Another Perl Hacker $| = 1; # acting on $/, replace " with a space and delete newlines and spaces $/ =~ tr/"\n / /d; # $/ now contains: mkd@hlqvj} |[mhrqj@WWRB?=H;]By[ILO]opqrc@PBySMLQ}By +SS]hlqvj@twqvPGGRsahPwlbPB|=B?;Q^By_B|=B?;\eplPByQRHVVBE|QQVD:lD]mrcc +h@I]{{ $_ = t($/); # $_ now contains the code listed after __END__ # eval $_ which creates a new print subroutine e($_); # run the new print subroutine passing: Just Another Perl Hacker &print($"); __END__ # with comments and extra white space added by me :) sub print { @z = split //,$_[0]; # split $_[0] into an array containing the char +acters $y = 127; while ($y - 32) { # for ($y = 95, $y > 0, $y--) $y--; print join('', map( ord($z[$_]) > $y ? $z[$_] : chr($y) # ascii value of $z[$_] > $y? +if yes, then return $z[$_]; else return chr($y) , 0..$#z # for ($_ = 0, $_ <= $#z, $_++) { ))."\r"; sleep 1; } }

Replies are listed 'Best First'.
Re: Re: Countdown.... de-obfuscated
by spiderman (Monk) on Nov 26, 2002 at 15:56 UTC
    verry cool! Thanks for the entertainment. -spiderman