Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Rising Force

by cristian (Hermit)
on Aug 29, 2005 at 16:26 UTC ( #487459=obfuscated: print w/replies, xml ) Need Help??

@'={$}=>,{}=>0x70,*,,0x6A,$={$$}=>0x68,*,,0x61,}; $,.= chr$_ foreach keys%{@'}; $_=$,,s<^(.)(.)(...).*>@$3$2$1@.print;

Replies are listed 'Best First'.
Re: Rising Force
by jdalbec (Deacon) on Aug 29, 2005 at 23:23 UTC
    This is perl, v5.6.1 built for i386-linux (obviously a buggy version)

    Output(piped through xxd): 0000000: 1740 a86f 00                             .@.o.

    This is perl, v5.8.1-RC3 built for darwin-thread-multi-2level

    The order of the letters and 00 byte is random. Is that the effect you intended?

    Update: This is perl, v5.8.4 built for i386-linux-thread-multi

    This one works. The 00 byte appears first.

    Moral for obfu writers: write once, test everywhere!
      Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
          osname=linux, osvers=2.4.21-23.elsmp, archname=i386-linux-thread-multi

      Mine prints "japh"...


Cross-perl-version compatible version
by fizbin (Chaplain) on Sep 05, 2005 at 10:24 UTC
    @'={$}=>,{}=>0x70,*,,0x6A,$={$$}=>0x68,*,,0x61,}; $..=chr$_ foreach sort keys%{@'}; $_=$.,s<^.*(.)(.)(.)(.)>@$2$4$3$1@.print;
    Apparently perl 5.6 (or at least, ActiveState's perl 5.6.1) does strange, bizarre things when you try to set $, to some value that begins with \x00:
    C:\>perl -e "$, .= qq[\x00hjap]; print $,;" mult C:\>perl -e "$. .= qq[\x00hjap]; print $. ;" hjap C:\>perl -e "$; .= qq[\x00hjap]; print $; ;" hjap
    That first blank character there in the first two output lines is character 0, not a space; with $; you first see character 28, then character 0, then hjap. (my browser won't let me enter character number 28 - even if it could, that's not nice content on an html page) Note that perl 5.8 (though I've only tried cygwin's) does what you'd expect.

    I have my suspicions that what's happening in per 5.6 is that it's looking at some spot inside memory that's based on the string's length - for any string that's less than 8 characters, what happens is that I get that many characters returned of \x00multi-; for larger strings I get something like this: (not a real code block, so that I could paste in all those whacky special characters in the 1-31 range)

    C:\>perl -e "$, .= qq{\x00abcdefghijklmnopqrstuvwxyzaabbccddeeffgghhiijjkkllmmnn ooppqqrrssttuuvvwwxxyyzzaaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrss stttuuuvvvwwwxxxyyyzzzaaaabbbbccccddddeeeeffffgggghhhhiiiijjjjkkkkllllmmmmnnnnoo ooppppqqqqrrrrssssttttuuuuvvvvwwwwxxxxyyyyzzzz}; print $,;" ad ◄ ┴ B☺ B☺?☺>☺d>☺D=☺┤<☺;☺:☺$;☺└9☺,9☺8☺♀8☺:☺6☺ x6☺╠5☺(5☺3☺2☺d2☺l%☺)☺t4☺8)☺(!☺l∟☺←☺→☺@→☺↨☺8↨☺▬▬☺t☺ȶ ☺►☺`‼☺↕☺◄☺T◄☺░►☺☼☺h☼☺▄♫☺┴ ☺┤☺efghijklmnopqrstuvwxyzaabbc cddeeffgghhiijjkkl
    @/=map{[/./g]}qw/.h_nJ Xapou cets krht ele_ r_ra/; map{y/X_/\n /;print}map{pop@$_}@/for@/
Re: Rising Force
by ikegami (Pope) on Sep 02, 2005 at 18:34 UTC

    "right-square-bracket hollow-happy-face 'p' ampersand" to you too!

    ActivePerl 5.6.1 on Win32

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: obfuscated [id://487459]
Approved by Tanktalus
and a moth chases the moon...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2017-06-24 12:21 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (557 votes). Check out past polls.