Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

first time caller, long time listener

by chargrill (Parson)
on Jan 03, 2006 at 20:43 UTC ( [id://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

Replies are listed 'Best First'.
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 :)

Re: first time caller, long time listener
by jdalbec (Deacon) on Jan 04, 2006 at 20:27 UTC
    I was confused. I had to run it through perltidy twice while deobfuscating, and even then I had to ask in the chatterbox about the
    sub'x{...} syntax.
    Also, I don't think I've seen used before. Well done!++
      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. ;)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
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?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2024-03-29 09:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found