discuss: Virus-Writing-HOWTO


Previous by date: 12 Mar 2002 23:20:19 -0000 Re: Virus-Writing-HOWTO, Alexander Bartolich
Next by date: 12 Mar 2002 23:20:19 -0000 Re: Virus-Writing-HOWTO, Hal Burgiss
Previous in thread: 12 Mar 2002 23:20:19 -0000 Re: Virus-Writing-HOWTO, Alexander Bartolich
Next in thread: 12 Mar 2002 23:20:19 -0000 Re: Virus-Writing-HOWTO, Hal Burgiss

Subject: Re: Virus-Writing-HOWTO
From: Charles Curley ####@####.####
Date: 12 Mar 2002 23:20:19 -0000
Message-Id: <20020312155750.B15561@trib.com>

On Tue, Mar 12, 2002 at 09:03:06PM +0100, Alexander Bartolich wrote:
> Greg Ferguson wrote:
> 
>  > [...] my personal feeling is that the document itself appears
>  > to be a "cookbook-style guide to destruction".
> 
> If you have that feeling then others will have, too.
> So I consider it a major item to fix.
> Because to me the facts tell exactly the opposite.
> 
> I'll try to give some reasoning:

Alexander, I've been writing for nigh on 30 years now. I have not yet
looked at your HOWTO, so take this as friendly advice.

When you find yourself explaining things this much to an early
reviewer, you might want to include the explanation in the document
somewhere.


> 
> Anyway, for me the lessons are:
> 
> + After some RTFM it is amazing how far the tools shipped with
>    every distribution can take both offense and defense
>    - not written, but implied:
>      outlawing "hacking tools" is nonsense
> 
> + The popular argument that Linux is a hard target because
>    it is an inhomogeneous platform is refuted
>    - not yet written: even stronger evidence will follow
>    - not written, but implied:
>      then it must be something else that makes it hard to kill
> 

Good points, and maybe worth making explicit in the document.


>  > Even the sarcastic(?) closing remark - "Feel the power
>  > of the dark side!" - tends to make me uncomfortable with
>  > this type of document (maybe that's a bit harsh;
>  > call me prudish, but...).
> 
> Ok. That's unnecessary show.
> But then wouldn't you expect something like
> 
> 347 |\/|'/ d1c|< j00 c4|\/|p3r!
> 
> in this type of document? (just kidding)
> 
> Seriously, I hate pedagocical attidute.
> I had fun playing with that stuff, and it should come through.

Indeed, it should. Humor is one of the reliefs of reading LDP and other
Linux doc. But it is dangerous, you have to make sure it comes across
as humor. Again, I haven't read your HOWTO, but Greg has.

-- 

		-- C^2

The world's most effective anti-virus software: Linux.

Looking for fine software and/or web pages?
http://w3.trib.com/~ccurley

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.5.2: /usr/bin/python
Mon Jul 1 15:13:31 2024

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /opt/ezmlm-browse-0.20/<string> in ()
 /opt/ezmlm-browse-0.20/main.py in main()
  424 
  425         if path is not None:
  426                 main_path(path)
  427         else:
  428                 main_form()
global main_form = <function main_form at 0x93a5c6c>
 /opt/ezmlm-browse-0.20/main.py in main_form()
  378         except ImportError:
  379                 die(ctxt, "Invalid command")
  380         module.do(ctxt)
  381 
  382 def main():
module = <module 'commands.showmsg' from '/opt/ezmlm-browse-0.20/commands/showmsg.pyc'>, module.do = <function do at 0x93bb6f4>, global ctxt = {'cmd': 'showmsg', 'threadidx': 10, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}
 /opt/ezmlm-browse-0.20/commands/showmsg.py in do(ctxt={'cmd': 'showmsg', 'threadidx': 10, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'})
   18         write(html('msg-pager') % ctxt)
   19         write('<hr>')
   20         sub_showmsg(ctxt, ctxt[MSGNUM])
   21         write('<hr>')
   22         write(html('msg-pager') % ctxt)
global sub_showmsg = <function sub_showmsg at 0x93a51ec>, ctxt = {'cmd': 'showmsg', 'threadidx': 10, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, global MSGNUM = 'msgnum'
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showmsg(ctxt={'cmd': 'showmsg', 'threadidx': 10, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msgnum=2532)
  229         format_timestamp(ctxt, ctxt)
  230         write(html('msg-header') % ctxt)
  231         rec_showpart(ctxt, msg, 0)
  232         write(html('msg-footer') % ctxt)
  233         ctxt.pop()
global rec_showpart = <function rec_showpart at 0x93a51b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 10, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msg = <email.message.Message instance at 0x941cd4c>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 10, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x941cd4c>, partnum=1)
  205                 else:
  206                         for p in part.get_payload():
  207                                 partnum = rec_showpart(ctxt, p, partnum+1)
  208         else:
  209                 write(html('msg-sep') % ctxt)
partnum = 1, global rec_showpart = <function rec_showpart at 0x93a51b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 10, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, p = <email.message.Message instance at 0x941cfec>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 10, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x941cfec>, partnum=2)
  208         else:
  209                 write(html('msg-sep') % ctxt)
  210                 sub_showpart(ctxt, part)
  211         return partnum
  212 
global sub_showpart = <function sub_showpart at 0x93a5144>, ctxt = {'cmd': 'showmsg', 'threadidx': 10, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part = <email.message.Message instance at 0x941cfec>
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 10, 'HTTP_X_FORW...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x941cfec>)
  164         type = ctxt[TYPE] = part.get_content_type()
  165         ctxt[FILENAME] = part.get_filename()
  166         template = html('msg-' + type.replace('/', '-'))
  167         if not template:
  168                 template = html('msg-' + type[:type.find('/')])
global template = <function template at 0x939de9c>, global html = <function html at 0x939ded4>, type = 'application/pgp-signature', type.replace = <built-in method replace of str object at 0x941ed40>
 /opt/ezmlm-browse-0.20/globalfns.py in html(name='msg-application-pgp-signature')
   40 
   41 def html(name):
   42         return template(name + '.html')
   43 
   44 def xml(name):
global template = <function template at 0x939de9c>, name = 'msg-application-pgp-signature'
 /opt/ezmlm-browse-0.20/globalfns.py in template(filename='msg-application-pgp-signature.html')
   31         except IOError:
   32                 if not _template_zipfile:
   33                         _template_zipfile = zipfile.ZipFile(sys.argv[0])
   34                 try:
   35                         f = _template_zipfile.open(n).read()
global _template_zipfile = None, global zipfile = <module 'zipfile' from '/usr/lib/python2.5/zipfile.pyc'>, zipfile.ZipFile = <class zipfile.ZipFile at 0x9336a7c>, global sys = <module 'sys' (built-in)>, sys.argv = ['-c', '/opt/ezmlm-browse-0.20']
 /usr/lib/python2.5/zipfile.py in __init__(self=<zipfile.ZipFile instance at 0x93bea8c>, file='-c', mode='r', compression=0, allowZip64=False)
  337             self.filename = file
  338             modeDict = {'r' : 'rb', 'w': 'wb', 'a' : 'r+b'}
  339             self.fp = open(file, modeDict[mode])
  340         else:
  341             self._filePassed = 1
self = <zipfile.ZipFile instance at 0x93bea8c>, self.fp = None, builtin open = <built-in function open>, file = '-c', modeDict = {'a': 'r+b', 'r': 'rb', 'w': 'wb'}, mode = 'r'

<type 'exceptions.IOError'>: [Errno 2] No such file or directory: '-c'
      args = (2, 'No such file or directory')
      errno = 2
      filename = '-c'
      message = ''
      strerror = 'No such file or directory'