Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Code eating code

by cog (Parson)
on Mar 28, 2005 at 11:24 UTC ( #442774=obfuscated: print w/ replies, xml ) Need Help??

After seeing how easily jdalbec deobfuscated my last piece of obfuscated code, I decided to present you with yet another challenge...

#!/usr/bin/perl open(eval STDIN,$0);$==@ARGV=<> ;@ h=split//,shift;$-=@ARGV;{local$"= 't';($b="@{[@h[3,4]]}")=~y~st~ts~; }$h=ucfirst join'',@h[-5..-2],$ "; &39;$ b=$h[0].$ b.$ ";print $b;@h= split//,shift;@_=map{lc}@h[$=-3**2 ,$=%($-/3)+2,2**4-$=,(1x2)x2,2,@h- 10,3**(@h%3)];print@_[0..3],'h',@_ [5..@ARGV/2],$h,h;$h=~s/^.//; $h=~ s/...$//;@ h=@h[0..(((length$ARGV[ 6])-5)/2)];&{-14}&&print$h[0];&14; print map lc,@h[&1+6,6*2+&1];print $h,$h[1];print@h[&{-2}+1];$ARGV[0] ;sub AUTOLOAD{(($a=$ AUTOLOAD))=~s s.*::sss;$_=chr($a+ord$_)for@h;$a}

Not too hard to deobfuscate, but harder than the previous one, I'd hope... If you don't agree, try using Perl::Tidy on it and running it again... ;-) You'll see what I mean O:-)

Nevertheless, it's not that complicated in the end :-)

Comment on Code eating code
Download Code
Re: Code eating code
by jdalbec (Deacon) on Mar 29, 2005 at 04:22 UTC
    Actually I thought STDOUT of here was quite challenging and educational. Perhaps I made my analysis a bit too tidy. Some of the insights I had into your program were things I really hadn't considered before. I'm afraid I have to disagree with you on Code eating code. Your Perl::Tidy suggestion was kind of a tip-off about what you're doing. Tidying does break the code, but...
      Your Perl::Tidy suggestion was kind of a tip-off about what you're doing.

      That was on purpose. Given that the first line of code started with open(eval STDIN,$0);, I figured that there was no point hiding what was going on :-)

      Anyway, only after I posted it did I realize it would only take a copy of the original file and a substitution of $0 by the copy name in order for it to still work :-) duh! :-)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (13)
As of 2014-07-30 14:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (234 votes), past polls