Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
Thank you -- but you are too kind!  I am really not very good at obfuscation compared to many of the others whose works have graced the Monastery before me.  I think my talents lie more with inventing something relatively new, and then making it hard to decipher.  The really inspired obfuscated code, though, takes much longer to unravel than anything I could create, and there are a number of them at which I have yet to come close to figuring out!

I do have a couple of suggestions, though:

  1. For starters, always write code in an area that you are familiar with.  Just think this way:  "What would make for really cool-looking (and maybe very unexpected) program output?"  Then try to code to that.
  2. Create a program that you're pleased with first, and then try to obfuscate it afterwards.  If you have an obfuscation technique in mind at the outset, so much the better, but write code that's easy for you to comprehend before you make obfuscate it, otherwise you'll get lost in your own mess.
  3. If you're going for a certain "look", make sure that the number of characters in your code is very close to the number of characters in the "picture" which will be the final output.  Once you've got the program as short as you can make it, create an ascii-image using all '#' characters, and then, with your favorite editor, align your code to it as best you can.
  4. If you're trying "uncharted" techniques in obfuscation, make sure to try running your program after even the smallest edit, to make sure that it still works correctly!
  5. The more platforms your program runs on, the better (of course).
  6. Most importantly, study the obfuscated code that others have created.  If there are "spoilers" (explanations of how the code functions) make sure to read them carefully.  If not (or if you are up to the challenge), attempt to figure out for yourself which of the more mysterious Perl techniques are at work.  Learning these useful Perl idioms will provide you the inspiration you need, not only to create masterful obfuscations of your own, but to become a better craftsman of Perl yourself!

Good luck!

In reply to Re^2: Spiro Japh 2 by liverpole
in thread Spiro Japh 2 by liverpole

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 taking refuge in the Monastery: (8)
    As of 2018-04-26 14:13 GMT
    Find Nodes?
      Voting Booth?