Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

first time caller, long time listener

by chargrill (Parson)
on Jan 03, 2006 at 20:43 UTC ( #520723=obfuscated: print w/ replies, xml ) Need Help??

This is my first posted obfuscation. Many thanks to my fellow monks for sharing tricks and treats that led to the following:
#!/usr/bin/perl -wire $_=q|$/="J";$\=",";$s=kpjo"",nbq{ $_+=79;dis}nbq{ pse}tqmju//,"4*(/;87 +(";@u=tpsu nbq{jg(n*^\x$*n){$_}}lfzt%{*::};tvc'v{$"}tvc't{$^I.tvctus$s,5,7}tvc'k{ +$u[-7].$^I . $u[ -35 ] } tvc'P{$^I.tvctus$s,2,6}tvc'm{$u[-4].$u[-5].$u[-3].$/}qsj +ou nbq{jg( n#bdl#){$_}fmtf{$_.=&v} }nbq{~~sfwfstf}(m,&t,&k,&P);|;$e=q=fho'e{49}fh +o'n{e()-1} fho'o{n( )-1}fho'p{o( )+3}fho'q{0}=;$e=~y/a-z/n-za-m/;eval$e;eval join +'',map{if( m|^\d+$|){pack'c',$_}else{$_}}(22+c( )+r( ),b(),(~~join'',map{$a=$_+a( +);$a=pack( 'c',$a);$a=~s{(b|2)}[$1-];$a}(c(),24+c(),r(),2,9,d(),1)),b(),(~~join'' +,map{$b=$_ +r();$b=pack('c',$b);$b=~s=(a|0)=$1-=;$b}( a(), 24 + r(), -1,8 ) ), b +() ); eval
I kept thinking at each stage "well, that's entirely too obvious" so I just kept at it, adding more misdirection.

Let me know if this is confusing as intended, or as plain as the nose on my face.

Thanks (and happy new year!)

chargrill

Comment on first time caller, long time listener
Download Code
Re: first time caller, long time listener
by jdalbec (Deacon) on Jan 04, 2006 at 20:27 UTC
      Drat. All I had was this: old obfu tricks revealed - I wouldn't've minded seeing the explanation as to WHY it's acceptable syntax :)

      As far as $^I... Really? After all I've read about fans of obfu searching perldoc perlvar for vars to exploit...

      Thanks for the ++. I hope to produce more fine nuggets of misleading and hard to follow code.

      Oh. And stuff that's actually helpful for people too. ;)

Re: first posted obfu, explanation
by chargrill (Parson) on Jan 17, 2006 at 19:02 UTC
    I just thought I'd post the steps I took to create this.

    This is all pretty much a spoiler, so I'm tucking it all away into a readmore.

    Many thanks to the following monks, tidbits, and snippets: gmax and their post Structured obfuscation - the fifth level of obfuscation listed there in particular, and in Writing highly obfuscated code in Perl there are many gems including the ~~ for scalar substitution, and my inspiration for using $^I.

    Hopefully, it's not bad form to post the explanation of my obfuscation to my post without giving anyone else the chance to do so :)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: obfuscated [id://520723]
Approved by ww
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (5)
As of 2014-07-29 03:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (211 votes), past polls