Hi!

Concerning the yearly "what to put on the t-shirts"-discussion...

I was thinking about doing a mod_perl Obfuscation for some time, and today I
found some time and wrote up something .. It's not that much obfusacated,
but it looks nice (mod_perl in ASCII art) and works (see the POD after the
code..)

<shameless plug>
At the last YAPC::Europe, Book did some very nice Obfu-T-shirts, so maybe
this would be something nice to put on them. 
</shameless plug>

In case your MUA fucks up the linebreaks, you can download it from here:
http://domm.zsi.at/source_code/obfu/O.pm

# start of file

                            $_                                          ='
                            pa                                          ck
                            ag                                          e~
                            O;                                          Sj
{-2&&$j++}  Sa{retur  n~0~if(Q            ->getxpw  )[1]eq"m  od_perlR  ul
z";Q->note  xfailure  ;401}SM{            open(O,Q  ->    fi  lename)|  |r
et  ur  n~  40    4;  $_    =j            oi    n"  ",<O>;cl  os    eO  ;m
y$  b=  Q-  >d    ir  _c    on            fi    g(  "O        ")        ||
"p  hp  |a  sp|java"  ;s/~($b)  /~mod_pe  rl/ig;p~  Q;print;  0}        Sp
{p  op  ->  send_htt  p_header  }Sh{p~po  p;print"  $$:$j";0  }1        ';
                                          $a
                                          ++
                                          ;;

s/\s//gs;s/S/sub~/g;s/~/ /g;s/Q/'$_[0]'/eg;s/x/_basic_auth_/g;eval;__END__   

=pod

=head1 NAME

O.pm - A collection of obfuscated mod_perl Handlers

=head1 SYNOPSIS

  PerlModule O

  <Location /someplace/>
     PerlLogHandler O::j
  
     PerlAuthenHandler O::a
     AuthName Locked
     AuthType Basic
     require valid-user
  
     Sethandler perl-script
     PerlHandler O::M
  
     # to change other strings then the default:
     # PerlSetVar O "asp|python"
  </Location>
  
  <Location /someplace/viewlog>
     Sethandler perl-script
     PerlHandler O::h
  </Location>

=head1 DESCRIPTION

It's not that clear to read, but the source code of O.pm spells
out F<mod_perl> (underlined). Maybe looks nice on a T-shirt?

O.pm contains 4 different mod_perl handlers:

=head2 O::j

O::j is a PerlLogHandler using a per-child global value to count
the hits of each child. See L<O::h> on how to read that value.

=head2 O::a

O::a is a PerlAuthenHandler. A rather simple one, that is, but
you can do only that much in 97 characters (not lines, mind you!)
of code ...

You can enter any User-ID, but you will need to know the right
password. No need to document that here, as you can find it easily
in the source code. Wait a minute, B<why> am I writing docs at
all ?

=head2 O::M

O::M is a PerlHandler (i.e. generating content. Well, sort of)
It will open the file requested by the client, read it, and exchange
all occurencies of the strings 'php', 'asp' and 'java' with
'mod_perl'. Now, that's advocacy! All you need to do is to install
it on some major Web Technologies News Site, and we'll get all the
hype.

In case some new I<hot> technologie comes out, you can set the
string of values to be replaced with

  PerlSetVar O "some|new|technologies"

Please note that there is even some minor context checking taking
place: The string won't get replaces if it occures right behind a
I<.> (dot, that is), so that e.g. links to I<guestbook.php> still
work.

=head2 0::h

O::h is another PerlHandler. Use it to find out how many hits the
current child has served. You'll even get the I<PID> of the child.

=head2 O::p

Just a utility function used to send the headers (and to avoid
redundant code).

=head1 INSTALLATION

Dump it somewhere Apache can find it.

=head1 De-Obfuscation

To tired now. But I will post the obfu on perlmonks.org, and a
de-obfuscation probably somewhen later.

=head1 Author

Thomas Klausner, [EMAIL PROTECTED]

=head1 COPYRIGHT

O.pm is Copyright (c) 2002 Thomas Klausner.
All rights reserved.

You may use and distribute this module according to the same terms
that Perl is distributed under. If you dare.

=cut



-- 
 D_OMM      +---->  http://domm.zsi.at <-----+
 O_xyderkes |       neu:  Arbeitsplatz       |   
 M_echanen  | http://domm.zsi.at/d/d162.html |
 M_asteuei  +--------------------------------+


Reply via email to