Home » Archimedes archive » Micro User » MU 1991-08.adf » !VKiller/Docs/!Viruses/Chapter1/Text
!VKiller/Docs/!Viruses/Chapter1/Text
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Micro User » MU 1991-08.adf |
Filename: | !VKiller/Docs/!Viruses/Chapter1/Text |
Read OK: | ✔ |
File size: | 528C bytes |
Load address: | FFFD8843 |
Exec address: | 6D3961D7 |
File contents
�R � �@ BH=�������G ArchieVirus @ t x�4���c���$ This is very detailed (although stopping short of a disassembly of course) description of t Et }���]+���$ ArchieVirus. It is strongly recommended reading, if only to give you a better understand- t �H BXr=����$ ing of how the virus operates. �� H �8 B���E������h7 Technical information h 8 p T��������$ This is a piece of ARM code that is appended to executables with the Absolute (&FF8) p x p����}���$ filetype. It is 920 (&398) bytes long and has a tell-tale 4-character string at the end of its x p �]i��=����$ code, "1210", which is used as an "already-infected" flag. The first instruction of the p p ��1���_���$ original executable is saved near the end of the virus code space and is replaced by a p %T B�Y����'���$ branch to the first instruction of the ArchieVirus code. T %` B�����������$ Here's a complete run-down of what ArchieVirus does when first run: ` x \-�*��}Y���$ 1. Attempts to infect executables (Absolute filetype) with the filespecs "@.*" and "%.*". In x %l B<6]�=!���$ other words, all executables in the current and library directory are attacked. l t 5=�������$ 2. Uses OS_File 36 as a "semaphore" to see if it is lodged in RMA. If a call to OS_File 36 t p ���R��݁���$ returns with an error, then it hasn't infected the RMA yet, so it proceeds to claim 920 p t t�����I���$ bytes of RMA, copy itself into there and points a claim of the OS_File vector to its new t %( B�$}�]���$ RMA location. ( h ��]{��=����$ NOTE: A *RMTidy command effectively releases this OS_File claim and is an easy h %L B�AC���q���$ manual way of removing ArchieVirus from the RMA. L l $`���� ���$ 3. The time is checked to see if it is the 13th of the month. If so, the code loops l %p B����������$ indefinitely, displaying the 45-character message: HEHE...ArchieVirus strikes again... p t (��<��}k���$ Since there is no linefeed present, this will fill the screen with a fast scrolling blur. t t �]��=3���$ Obviously, Shift+Control will allow mere humans to read it. Interestingly, this is the only t t d��������$ place that the virus name, ArchieVirus, is found and this is tricky to spot because it is t %, B�uݓ������$ EORed with &64. , p ��,���[���$ 4. Assuming it wasn't the 13th of the month � and NO, it doesn't check for a Friday � p t <�}�]#���$ then the original first instruction of the executable is replaced and the original normal t %<