Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
My cursory examination is that the general idea is to have the real program along the left edge, and then the rest of the line contains repeated copies of that, modified to show the image.

In the last 3 lines before the DATA, you can see that since the real line ends with a # so everything after that is ignored.

The rest of the program works the same way, but is obfuscated by using different characters. Everything between the first 2 commas is a string. The bottom part, which cannot be cloaked the same way hence the major hint in the form of #'s, processes the text string thus:

tr[|zY!%x][,Q]; s[Q.*\n][]g; eval;
Which basically changes |,Y,or% into , and changes z,!,or x into Q (more on that next), and throws away a few other letters, which give him padding that can be anywhere including in the "real" code.

|'s etc. become commas. They were escaped out so that the q could use them to delimit the string

. The Q, previously z,!,x (or already Q), turns into the new comment character -- everything starting from a Q or z is removed. Having four choices makes it less obvious that each "real" part of a line ends in this.

Note that such ender character forms a solid vertical stripe in the 14th column, so this code could have processed it by taking 14 chars and throwing away the rest. It's just a matter of changing the last 3 lines. Those lines are shorter than 13 chars, but garbage can be added after # and it works just the same, making the real code in the first "column" that gets replicated and munged to hold the image. Having no image in the topmost line simplifies things, and should be there for a border anyway. —John

In reply to Re: Re: 3-D Stereogram, Self replicating source. by John M. Dlugosz
in thread 3-D Stereogram, Self replicating source. by Toodles

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and all is quiet...

    How do I use this? | Other CB clients
    Other Users?
    Others wandering the Monastery: (4)
    As of 2018-06-24 04:33 GMT
    Find Nodes?
      Voting Booth?
      Should cpanminus be part of the standard Perl release?

      Results (126 votes). Check out past polls.