Damian Conway wrote a self-modifying program called "SelfGOL" which also uses
seek on the
<DATA> handle, in a similar manner (I believe; it's pretty obfuscated code, and I haven't yet seen
the talk where he explains it).
However, the code is easy to locate on the web. If somebody wants to use seek with __DATA__ they've had quite a while to figure out how.
Personally, I think a perl virus is much less worrying than a compiled executable virus for the obvious reasons, but the topic is intellectually fascinating.
Here's his description of the talk:
_______________________
Extreme Perl -- The Horror That Is SelfGOL
In this talk I dissect the SelfGOL program: an obfuscated, self-aware,
viral quine that can:
- self-replicate,
- rewrite other Perl programs to allow them to self-replicate,
- detect un-rewritable Perl programs,
- execute itself or other Perl programs as cellular automata of arbitrary size (to play Conway's "Game of Life"),
- animate any short text as a cycling marquee banner.
SelfGOL accomplishes these feats in under 1000 bytes of standard Perl,
without importing any modules, and without using a single if,
unless, while, until, for,
foreach, goto, next,
last, redo, map, or grep.
To do all that in under 1K of code, it relies on some extreme
programming techniques, and on many of the obscure backwaters
of the Perl syntax. This talk explores both.
_______________________
He's coming to boston.pm in less than two weeks; if we're lucky he may do this talk.
___
-DA
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, details, 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, summary, 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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.