Today seemed like a good day to work on my ObFu...

#!/usr/bin/perl -l s//902splitT4'=+DEforIJ<STDIN>iST1337 hAx0rJaybabtuR:another IM;23+6==29;:5AjoincheeseLM4NMJustHG/x;$f='451:+-9j';@f=$f=~ /./g;s/$/FEDfBA1deadNI!reverseOPNIN84ONDHFJU5KKLS:OKjustGJIK LMIFJKM1/xg;@f=@f[0..3];s/$/all0your0baseNO4ANOD1MikPerlJust japhj9:JAPhacker^K1japerlh5:NB4gotcheese?1PERL5/gx;s/\n|8//g ;$f=join'|',@f;s%$%join!for299!UNLAA5%;while(/$f/g){$_[$i++] =pos}$i=40==2;@_=reverse@_;for(@_){$_-=$_[++$i];@;=(chr($_ + 96),@;)}$a.=$_ for@;;$_=$a;s{([pj])};\u$&;g;@_=@{[4,12,17]}; for$a(@_){s[.{$a}];$& ;}print or sort or warn or die "Boom."

His Royal Cheeziness

Replies are listed 'Best First'.
Re: Perl in a haystack
by andreychek (Parson) on Jul 02, 2001 at 23:40 UTC
    Okay, time for some deconstruction. Here we go:
    # A fancy way of assigning $_ s//902splitT4'=+DEforIJ<STDIN>iST1337 hAx0rJaybabtuR:another IM;23+6==29;:5AjoincheeseLM4NMJustHG/x; # Make $f into some line noise $f = '451:+-9j'; # Take each character of $f, and put it into an element in @f @f=$f=~/./g; # Add some more line noise to the end of $_ s/$/FEDfBA1deadNI!reverseOPNIN84ONDHFJU5KKLS:OKjustGJIKLMIFJKM1/xg; # Get rid of all but elements 0-3 of the @f array @f=@f[0..3]; # Weee, add yet some more line noise to the end of $_ s/$/all0your0baseNO4ANOD1MikPerlJustjaphj9:JAPhacker^K1japerlh5:NB4got +cheese?1PE RL5/gx; # Get rid of any newlines or 8's from $_ s/\n|8//g; # Put all of @f back into $f, this time delimited by a | $f=join'|',@f; # Add's the text "join!for299!UNLAA5" to the end of $_ s%$%join!for299!UNLAA5%; # Throw some numbers into the @_ array while(/$f/g) { $_[$i++]=pos; } # Sets $i equal to "false" $i=40==2; # Reverse the order of the contents in @_ @_ = reverse @_; # Loop through @_ for(@_) { # Change the values of the @_ array. # $_ is local to this loop, not the previous $_ we # were using. # Since $_ is an actual alias, we are modifying the # contents of @_ directly # Since $i is currently set to "false", ++$i increments # it to 1 (thanks vynce) $_ -= $_[++$i]; # @; -- thats an interesting variable to use. # As far as I can tell, it's not a special variable, # so it just helps in obfuscating things a bit more. # It looks here like all the numbers in the # @_ array + 96 are equal to "justanotherperlhacker" @;=(chr($_ + 96),@;) } # Here "for" is used as a statement modifier, and ends up # acting as a join operator (thanks tye, chemboy). # More later.... $a.=$_for@;;$_=$a;s{([pj])};\u$&;g;@_=@{[4,12,17]}; for $a (@_) { s[.{$a}];$& ; } print or sort or warn or die "Boom."
    -Eric

    Updated: 16:52 EST