Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

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;

Comment on Rising Force
Download Code
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:
        Platform:
          osname=linux, osvers=2.4.21-23.elsmp, archname=i386-linux-thread-multi

      Mine prints "japh"...

      -Scott

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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (12)
As of 2015-07-08 05:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls