Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses


by Mr. Muskrat (Abbot)
on Dec 21, 2002 at 21:01 UTC ( #221668=obfuscated: print w/ replies, xml ) Need Help??

The original concept was dreamed up by ybiC. He wanted to write an obfu that was a play on his nick (every letter lowercase except for the last). He also wanted to play with the normal "Just Another Perl Hacker" so I give you...

#!/usr/bin/perl -0777 use strict;use warnings; $_=<DATA>;s/\s+//g;sub ject{$_?10-$_:$_}; # of my affections sub let{join'',grep{y(a-z A-Z\0) # rent out something you are + renting {n-za-m N-ZA-M\0}}split//,$_[0]}; # take the whozit with you sub way{join' ',map{$_=substr # Eat fresh(TM) $_,0,-2;join'',reverse split # /me waves his hand as he s +ays /\0/,$_}split / /,$_[0]};$_=terfuge($_); # This is not the code you a +re looking for sub vert{scalar reverse split//,$_[0]}; # To destroy completely; rui +n sub tle{$_[0]=~y/a-zA-Z/A-Za-z/; # elusive; crafty or sly; de +vious return $_[0]};$_=vert($_); # return to sender, address +unknown... sub terfuge{$_=join'',reverse map # A deceptive stratagem or d +evice {ject($_)}split//,$_[0];join'', # spellcheck this line befor +e submitting map{chr($_)}unpack('A3'x # Lucy, we're home! (length($_)/3),$_)}$_=let($_); # I'd go to any lengths for +you sub lime{join' ',grep{s/\b(qu|[ # Inspiring awe; impressive. ^\W0-9_aeiou]+)?(\w+)/$1?"$2\0$ # and sometimes y 1ay":"$2\0ay"/xegi}split/ /,$_[0]} # why? because I love you $_=way($_);sub str{join'',map{ject($_) # .oO(Perlish) }reverse split//,join'',map{sprintf # you sprinted how far? ("%03d",ord($_))}split//,$_[0]} # did you get winded? $_=tle($_);print; # shows over now go home! __DATA__ 83003070900032 009920987023054 0440930520820909 00009920987082014 09890003400992098 70230020089000520 099 209

It employs what ybiC calls "Short Bus" obfuscation, hence the bus-like __DATA__ section. It uses some code that I borrowed from japhy. I'm not telling where or you might figure this out sooner q-:

Comment on japH
Download Code
japH de'ShortBus'ed
by Mr. Muskrat (Abbot) on Dec 28, 2002 at 17:25 UTC

    I know that you have all been waiting for one of us to break it down for you, so without further ado...

    First I will start with the comments. Comments are never a requirement when doing an obfu or a JAPH. However, comments can be used to add humor, enlighten the reader as what is going on or perhaps mislead the reader into thinking that they know what is going on... I'll strip some of the comments that just get in the way, move some into a more logical location, etc... You'll see when we get to the code.

    Subroutines while not necessary can add an extra dash of flare and panache to your otherwise boring obfu. Names of subroutines can also be used to your advantage. You will see what I mean in a few minutes.

    Join us next time when we discuss How not to write a tutorial on writing obfuscated Perl and JAPHs...
    Oh wait, that was this time!

    Mr. Muskrat waves goodbye as the scene fades to black.

    Updated: Fixed a typo and moved the subroutines to the end to improve clarity.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (12)
As of 2014-12-26 14:51 GMT
Find Nodes?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?

    Results (171 votes), past polls