Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
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 browsing the Monastery: (5)
As of 2014-09-21 21:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (176 votes), past polls