When a file infected by a Geek virus is run for the first time, the virus copies itself to the interrupt table at memory location 0000:0200h. The next unused location is 0000:03D4h. If the byte at 0000:03C1 is 'x', the virus considers itself already resident. This comes from the text 'dex' at the end of the virus file.
Disinfection & Removal
Other strings in the virus are 'GEEK' and '0v7a', the first might be a name, the second looks like a version number. The final 'x' is the only part of this that is used. Dos calls are used to get/set the INT 21h interrupt vector. Infected EXE files have their initial stack pointer set to A000h. This is used to determine whether to exit as a COM file or EXE file.
The INT 21h handler intercepts calls to DOS function 4Bh (load program). File attribute, date and time are preserved. The infection signature is different for com and exe files. For infected COM files, the first byte of the file is 0Eh (push cs). For EXE's the offset to first relocatable item (low byte) is DEh.
Any file beginning with 'M' is treated as an EXE file. EXE files are filled to the next paragraph boundary before the virus is appended, COM files are simply appended to.
On the 29th day of any month, a random sector is overwritten by the virus code/data instead of infecting a file.