home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-09-02 | 94.6 KB | 5,099 lines |
- ; program : AntiCicloVir
- ; programsort : Viruskiller
- ; versionsnr. : 2.3a
- ; genesis date : 17.09.1994
- ; author : Mathias Gutt
- ; Kantstr. 16
- ; 21335 Lüneburg
- ; Tel.: 04131/49624
- ; Germany
- ; This program shows a simple form of virus-hunting
- ; and so I hope, some novices can find some useful
- ; routines in AntiCicloVir.
- ; AntiCicloVir is completely Public Domain and that
- ; means, you can do everything with the program
- ; and this source, but read the docs !!!
- ; You can put out some routines from AntiCicloVir, to
- ; include them into your own program, or you may use
- ; AntiCicloVir as base for your own viruskiller, but
- ; it is not allowed, to use the same name !!!
- ; AntiCicloVir shows the system-vectors to you,
- ; looks for known viruses in memory, in the bootsectors
- ; of every disk from every drive and checks directories
- ; and files for viruses ...
- ; I used the masterseka v1.51 to write this one.
- ; Please excuse my bad anglian !!!
- ; I know, that this source is not the best one, but
- ; if you have some questions, please write me !
-
-
- Execbase = 4
- MEMF_PUBLIC = 1
- MEMF_CHIP = 2
- MEMF_FAST = 4
- MEMF_CLEAR = 65536
- MEMF_LARGEST = 131072
-
- Addport = -354
- AllocMem = -198
- AllocSignal = -330
- AutoRequest = -348
- Close = -36
- CloseDevice = -450
- CloseLibrary = -414
- CloseWindow = -72
- CopyMem = -624
- CurrentDir = -126
- Delay = -$00C6
- DeleteFile = -$0048
- DisplayAlert = -90
- DoIORoutine = -456
- Examine = -102
- ExNext = -108
- FreeMem = -210
- FreeSignal = -336
- FindName = -276
- FindTask = -294
- GetMsg = -372
- Lock = -84
- Open = -$001E
- OpenDeviceRoutine = -444
- OldOpenLibrary = -408
- OpenWindow = -204
- Read = -42
- RemPort = -360
- Rename = -78
- SetProtection = -186
- SetWindowTitles = -276
- UnLock = -90
- WaitIO = -474
- WaitPort = -384
- Write = -$0030
-
- Requester: MACRO ;Macro
- lea AutoRequestTextPtr(pc),a0 ;get RequestText
- move.l ?1,(a0)
- lea GadgetTextPtr(pc),a0 ;get GadgetText
- move.l ?2,(a0)
- lea GadgetText2Ptr(pc),a0 ;get next GadgetText
- move.l ?3,(a0)
- move.l #0,a0
- lea AutoRequestText(pc),a1 ;get RequestText-structure
- lea GadgetText(pc),a2 ;get GadgetText-structure
- lea GadgetText2(pc),a3 ;get GadgetText2-structure
- moveq #0,d0 ;no IDCMP-Flag
- moveq #0,d1 ;no IDMCP-Flag
- move.l ?4,d2 ;get Width for Request
- move.l ?5,d3 ;get Height for Request
- move.l Intuibase(pc),a6 ;get Intuibase
- jsr AutoRequest(a6) ;call subroutine
- ENDM ;end of macro
-
- Requesterold: MACRO ;Macro
- move.l #0,a0
- lea ?1,a1 ;get RequestText-structure
- lea ?2,a2 ;get GadgetText-structure
- lea ?3,a3 ;get Gadget2Text-structure
- moveq #0,d0 ;no IDCMP-Flag
- moveq #0,d1 ;no IDCMP-Flag
- move.l ?4,d2 ;get Width for Requester
- move.l ?5,d3 ;get Heigth for Requester
- move.l Intuibase(pc),a6 ;get Intuibase
- jsr AutoRequest(a6) ;call subroutine
- ENDM ;end of macro
-
-
- move.l a0,ParamAddress ;get ParamAddress
- move.l d0,ParamLength ;get ParamLength
-
- ;WBStartup-Head
- ;This routine tries to find out, if AntiCicloVir was
- ;called from the Workbench or from the Shell.
-
- move.l ExecBase,a6
- suba.l a1,a1
- jsr FindTask(a6)
- move.l d0,a4
- tst.l 172(a4)
- bne clicall ;was called from shell
-
- lea 92(a4),a0
- jsr WaitPort(a6)
- lea 92(a4),a0
- jsr GetMsg(a6)
- bra WBcall ;was called from WB
-
- clicall:
- bsr GetPara
- move.l Paramaddress(pc),a0
-
- cmp.b #"-",(a0)+ ;look for option-line
- bne ScanFiles ;if not go to scanfiles
-
- Option:
- cmp.b #"c",(a0) ;look for option c
- beq fastcheckset ;if yes, go to fastcheckset
- cmp.b #"m",(a0) ;look for option m
- beq Clicall2 ;if yes, go to Clicall2
- fastcheckset:
- move.b #$FF,fastcheck ;set fastcheck-flag
-
- Clicall2:
- move.b #$FF,StartupFlag ;set StartupFlag
-
- WBcall:
- ; This one is a little color-cycling, to greet the
- ; user !
-
- Colors:
- add.l #$00070007,d0
- cmp.l #$00FF00FF,d0
- bge AntiCicloVir
- move.w #1,d1
-
- Colorcycling:
- move.b $dff005,d2
-
- ColorcyclingLoop:
- move.l d0,$dff180
- move.l d0,$dff184
- cmp.b $dff005,d2
-
- beq.s ColorcyclingLoop
- dbra d1,ColorCycling
- bra Colors
-
- AntiCicloVir:
- bsr OpenDos ;open DosLib
- cmp.l #0,d0 ;error ?
- beq Ende ;Yes, end it !
- move.l d0,Dosbase ;No, get DosBase
- bsr OpenIntui ;open IntuiLib
- cmp.l #0,d0 ;error ?
- beq CloseDos ;Yes, close DosLib
- move.l d0,Intuibase ;No, get Intuibase
- cmp.b #$FF,StartupFlag ;was Startup-flag set ?
- bne WBStart ;No, go to WBStart
- bsr OpenWin ;open DOS-window
- cmp.l #0,d0 ;error ?
- beq CloseDos ;Yes, close DosLib
- move.l d0,Handle ;No, get Handle
-
- WBStart:
- bsr vectors_table ;show system-vectors
- cmp.b #$FF,StartupFlag ;was Startup-flag set ?
- bne WBStart2 ;No, go to WBStart2
- bsr Print ;print my message
-
- WBStart2:
- bsr CheckMem ;check memory for viruses
- cmp.b #$FF,StartupFlag ;was Startup-flag set ?
- bne WBStart3 ;No, go to WBStart3
- bsr CloseWin ;close DOS-Window
-
- WBStart3:
- bsr CloseIntui ;close IntuiLib
- bra CloseDos ;close DosLib
-
- ScanFiles:
- bsr OpenDos ;open DosLib
- cmp.l #0,d0 ;error ?
- beq Ende ;Yes, and good bye !
- move.l d0,Dosbase ;No, get DosBase
- bsr OpenIntui ;open IntuiLib
- cmp.l #0,d0 ;error ?
- beq CloseDos ;Yes, end it !
- move.l d0,Intuibase ;No, get Intuibase
- bsr OpenWin ;open DOS-window
- cmp.l #0,d0 ;error ?
- beq CloseDos ;Yes, close DosLib
- move.l d0,Handle ;No, get Handle
- bsr Print ;print my message
- move.b #$FF,fastcheck ;set fastcheck-flag
- bsr CheckMem ;check memory for viruses
- move.l ExecBase,a6 ;get ExecBase
- move.l #MEMF_CHIP!MEMF_CLEAR!MEMF_LARGEST,d1
- move.l #260,d0 ;allocate 260 B
- jsr AllocMem(a6) ;connected CHIP-RAM !
- tst.l d0 ;error ?
- beq notenough ;Yes, print notenough
- move.l d0,FileInfoBlockMem ;No, get MemPtr
- move.l ExecBase,a6 ;get ExecBase
- move.l #MEMF_CHIP!MEMF_LARGEST,d1;allocate $5000 bytes
- move.l #$5000,d0 ;connected CHIP-RAM !
- jsr AllocMem(a6)
- tst.l d0 ;error ?
- beq notenough ;Yes, print notenough
- move.l d0,FileMem ;No, get MemPtr
- bsr GetLock ;Go to GetLock
- cmp.l #0,d0 ;error ?
- beq ScanFilesEnd ;Yes, end all !
- move.l d0,LockHandle ;No, get Lock
- bsr ExamineIt ;examine file
- cmp.l #0,d0 ;error ?
- beq FileTestEnd ;Yes, go to FileTestEnd
- move.l FileInfoBlockMem(pc),a0 ;No, get FileInfoBlock
- cmp.l #0,4(a0) ;directory ?
- ble FileTest ;No, go to filetest
-
- DirectoryTest: ;Yes !
- bsr MakeCurrentDir ;branch to MakeCurrentDir
- move.l d0,OldLock ;get old Lock
- bra Seek2 ;branch to Seek2
-
- Seek:
- bsr CheckFile ;branch to CheckFile
- Seek2:
- bsr ExNextIt ;get next FIB-datas
- cmp.l #0,d0 ;more datas ?
- bne Seek ;Yes, go to Seek
- bsr UnLockIt ;No, unlock it
- bsr OldCurrentDir ;branch to OldCurrentDir
- bra ScanFilesEnd ;end scanfiles
-
- FileTest:
- lea Directory(pc),a0 ;get Directory
- move.l ParamLength,d0 ;get ParamLength
-
- PathLoop:
- cmp.b #":",(a0) ;look for :
- beq GetDirectoryname ;Yes, get directoryname
- cmp.b #"/",(a0)+ ;look for /
- beq GetDirectoryname ;Yes, get directoryname
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;zero ?
- bne PathLoop ;No, continue loop !
- bra FileTest2 ;Yes, go to FileTest2
-
- GetDirectoryName:
- move.b #$FF,FileFlag ;set FileFlag
- lea Directory(pc),a0 ;get Directory
- move.l ParamLength,d0 ;get ParamLegth
- add.l d0,a0 ;add lentgh to address
-
- DirectoryNameLoop:
- cmp.b #":",(a0) ;look for :
- beq MakeCurrentPath ;Yes, go to MakeCurrentPath
- cmp.b #"/",(a0) ;look for /
- beq MakeCurrentPath ;Yes, go to MakeCurrentPath
- sub.l #1,a0 ;count down
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;zero ?
- bne DirectoryNameLoop ;No, continue loop !
- bra FileTest2 ;Yes, go to FileTest2
-
- MakeCurrentPath:
- move.b #00,1(a0) ;clear last byte
- bsr GetLock ;go to GetLock
- cmp.l #0,d0 ;error ?
- beq FileTestEnd ;Yes, end FileTest
- move.l d0,FileLockHandle ;No, get Lock
- bsr MakeCurrentFileDir ;branch to MakeCurrentFileDir
- move.l d0,OldLock ;get old Lock
-
- FileTest2:
- bsr CheckFile ;branch to CheckFile
- cmp.b #$FF,FileFlag ;was FileFlag set ?
- bne FileTestEnd ;No, end FileTest
-
- bsr UnLockFilePath ;Yes, unlock filepath
- bsr OldCurrentDir ;branch to OldCurrentDir
-
- FileTestEnd:
- bsr UnLockIt ;unlock file
- bra ScanFilesEnd ;end scanfiles
-
- GetPara:
- move.l Paramaddress(pc),a0 ;get Paramaddress
- lea Directory(pc),a1 ;get Directory
-
- ParaLoop:
- move.b (a0)+,(a1)+ ;copy Parameter to Directory
- cmp.b #10,(a0) ;Returncode ?
- bne ParaLoop ;No, continue loop !
-
- ParaLoopEnde:
- move.b #0,(a1) ;Yes, remove returncode
- rts ;return from subroutine
-
- OpenDos:
- move.l ExecBase,a6 ;get ExecBase
- lea Dosname(pc),a1 ;get LibName
- move.l #0,d0 ;any version
- jsr OldOpenLibrary(a6) ;call subroutine
- rts ;return from subroutine
-
- OpenIntui:
- move.l ExecBase,a6 ;get ExecBase
- lea Intuiname(pc),a1 ;get LibName
- move.l #0,d0 ;any version
- jsr OldOpenLibrary(a6) ;call subroutine
- rts ;return from subroutine
-
- OpenWin:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l #DOSWin,d1 ;get Window-address
- move.l #1006,d2 ;new mode
- jsr Open(a6) ;call subroutine
- rts ;return from subroutine
-
- Print:
- move.l #Text,d2 ;get Text-Startaddress
- move.l #Textende,d3 ;get Text-Endaddress
- bsr PrintDOSText ;jump to subroutine
- rts ;return from subroutine
-
- notenough:
- move.l #notenoughText,d2 ;get Text-Startaddress
- move.l #notenoughTextende,d3 ;get Text-Endaddress
- bsr PrintDOSText ;jump to subroutine
- rts ;return from subroutine
-
- NoMemAlert:
- move.l Intuibase(pc),a6 ;get Intuibase
- move.l #40,d1 ;get Alert-Heigth
- lea string(pc),a0 ;get string-address
- jsr DisplayAlert(a6) ;call subroutine
- rts ;return from subroutine
-
- CloseWin:
- move.l Handle(pc),d1 ;get Handle
- move.l Dosbase(pc),a6 ;get DosBase
- jsr Close(a6) ;call subroutine
- rts ;return from subroutine
-
- CloseIntui:
- move.l ExecBase,a6 ;get ExecBase
- move.l Intuibase(pc),a1 ;get IntuiBase
- jsr CloseLibrary(a6) ;call subroutine
- rts ;return from subroutine
-
- CloseDos:
- move.l ExecBase,a6 ;get ExecBase
- move.l Dosbase(pc),a1 ;get DosBase
- jsr CloseLibrary(a6) ;call subroutine
- clr.l d0 ;clear d0
-
- Ende:
- rts ;return from subroutine
-
- GetLock:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l #Directory,d1 ;get Directory
- move.l #72,d2 ;read mode
- jsr Lock(a6) ;call subroutine
- rts ;return from subroutine
-
- MakeCurrentDir:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l LockHandle(pc),d1 ;get Lock
- jsr CurrentDir(a6) ;call subroutine
- rts ;return from subroutine
-
- MakeCurrentFileDir:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l FileLockHandle(pc),d1 ;get Lock
- jsr CurrentDir(a6) ;call subroutine
- rts ;return from subroutine
-
- ExamineIt:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l LockHandle(pc),d1 ;get Lock
- move.l FileInfoBlockMem(pc),d2 ;get FileInfoBlock-structure
- jsr Examine(a6) ;call subroutine
- rts ;return from subroutine
-
- ExNextIt:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l LockHandle(pc),d1 ;get Lock
- move.l FileInfoBlockMem(pc),d2 ;get FileInfoBlock-structure
- jsr ExNext(a6) ;call subroutine
- rts ;return from subroutine
-
- UnLockIt:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l LockHandle(pc),d1 ;get Lock
- jsr UnLock(a6) ;call subroutine
- rts ;return from subroutine
-
- UnLockFilePath:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l FileLockHandle(pc),d1 ;get FileInfoBlock-structure
- jsr UnLock(a6) ;call subroutine
- rts ;return from subroutine
-
- OldCurrentDir:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l OldLock(pc),d1 ;get old lock
- jsr CurrentDir(a6) ;call subroutine
- rts ;return from subroutine
-
- ScanFilesEnd:
- move.l ExecBase,a6 ;get ExecBase
- move.l #260,d0 ;deallocate 260 Bytes
- move.l FileInfoBlockMem(pc),a1 ;memory from the
- jsr FreeMem(a6) ;FileInfoBlock-structure
-
- move.l ExecBase,a6 ;get ExecBase
- move.l #$5000,d0 ;deallocate $5000 Bytes
- move.l FileMem(pc),a1 ;memory from the
- jsr Freemem(a6) ;filebuffer
-
- bsr CloseWin ;close DOS-window
- bsr CloseIntui ;close IntuiLib
- bra CloseDos ;close DosLib
-
- even
- string:
- dc.b 0,200,10,` NOT ENOUGH MEMORY !`,0
- dc.b 0,0,0,0
-
- even
- Dosname:
- dc.b `dos.library`,0
-
- even
- Intuiname:
- dc.b `intuition.library`,0
-
- even
- Dosbase:
- dc.l 0
-
- Intuibase:
- dc.l 0
-
- Handle:
- dc.l 0
-
- DateiHandle:
- dc.l 0
-
- LockHandle:
- dc.l 0
-
- FileLockHandle:
- dc.l 0
-
- OldLock:
- dc.l 0
-
- FileInfoBlockMem:
- dc.l 0
-
- FileMem:
- dc.l 0
-
- HunkPos:
- dc.l 0
-
- Paramaddress:
- dc.l 0
-
- ParamLength:
- dc.l 0
-
- even
- Directory:
- blk.b 500,0
-
- Sign:
- dc.b 0
-
- fastcheck:
- dc.b 0
-
- StartupFlag:
- dc.b 0
-
- FileFlag:
- dc.b 0
-
- even
- DOSWin:
- dc.b `*`,0
-
- even
- Text:
- dc.b ` `,10
- dc.b $9b,`1;31m`
- dc.b ` AntiCicloVir `
- dc.b $9b,`3;31m`
- dc.b `- Virus-Statikum Version 2.3a`,10
- dc.b ` (C) 1992-1994 by Matthias Gutt, Kantstr.16 , 21335 Lüneburg , Germany`,10
- dc.b ` `,10
- dc.b $9b,`0;33m`
- dc.b `KNOWN VIRUSES COUNT:`,10
- dc.b `Bootblock-Viruses : 188`,10
- dc.b `Linkviruses : 15`,10
- dc.b `Fileviruses : 28`,10
- dc.b `Disk-Validator-Viruses: 7`,10
- dc.b `Trojans : 11`,10
- dc.b `Bombs : 17`,10
- dc.b `---------------------------`,10
- dc.b `ENEMIES (TOTAL) : 266`,10
-
- dc.b `Usage: AntiCicloVir [pathname]/[-c]/[-m]`,10
- dc.b `OPTIONS TABLE:`,10
- dc.b `-c = fast memorycheck`,10
- dc.b `-m = memorycheck + installing background task for looking`,10
- dc.b ` on every inserted disk for Bootblock- + Disk-Validator-viruses`,10
- dc.b ` `,10
- dc.b $9b,`0;31m`
- Textende:
-
- even
- notenoughText:
- dc.b ` `,10
- dc.b ` Not enough memory !`,10
-
- notenoughTextende:
-
- CheckFile:
- move.l #30,d0
- lea FileNameText(pc),a0 ;get FileNameText-address
-
- ClearFileNameTextLoop:
- move.b #$20,(a0)+ ;clear all bytes with spaces
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;zero ?
- bne ClearFileNameTextLoop ;No, continue loop !
-
- move.l FileInfoBlockMem(pc),a0 ;get FIB-structure
- add.l #8,a0 ;get filename
- lea FileNameText(pc),a1 ;get address of FileNamebuffer
- move.l #30,d0
-
- NameLoop:
- move.b (a0)+,(a1)+ ;write filename to filenamebuffer
- cmp.b #00,(a0) ;look for zero
- beq NameLoopEnd ;Yes, end the loop !
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;zero ?
- bne NameLoop ;No, continue the loop !
- NameLoopEnd:
- move.l #FileNameText,d2 ;get FileNamebuffer-Startaddress
- move.l #FileNameTextende,d3 ;get FileNamebuffer-Endaddress
- bsr PrintDOSText ;jump to subroutine
-
- move.l FileInfoBlockMem(pc),a0 ;get FIB-structure
- cmp.l #0,4(a0) ;Directory ?
- ble Sizehex ;No, get filesize
-
- move.l #DirText,d2 ;get DirText-Startaddress
- move.l #DirTextende,d3 ;get DirText-Endaddress
- bsr PrintDOSText ;jump to subroutine
- bra Protection ;branch Protection
-
- Sizehex:
- move.l FileInfoBlockMem(pc),a6 ;get FIB-structure
- move.l 124(a6),d2 ;get Size-address
- lea Length(pc),a0 ;get Sizebuffer-address
- bsr hex ;hex it !
-
- move.l #SizeText,d2 ;get SizeText-Startaddress
- move.l #SizeTextende,d3 ;get SizeText-Endaddress
- bsr PrintDOSText ;jump to subroutine
-
- Protection:
- move.l PBits(pc),ProtectText ;write Protectionbits to the buffer
-
- lea ProtectText(pc),a0 ;get ProtectText-Startaddress
- move.l FileInfoBlockMem(pc),a6 ;get FIB-structure
- move.l #03,d0
-
- ProtectionLoop:
- btst d0,116(a6) ;is Protectionbit set ?
- bne SetLine ;Yes, write line !
- ProtectionLoop2:
- cmp.b #0,(a0)+
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;lower than zero ?
- bge ProtectionLoop ;No, continue the loop !
- bra ShowPBits ;Yes, show Protectionbits
-
- SetLine:
- move.b #`-`,(a0) ;write line
- bra ProtectionLoop2 ;branch back to loop !
-
- ShowPBits:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l Handle(pc),d1 ;get Handle
- move.l #ProtectText,d2 ;get ProtectText-Startaddress
- move.l #8,d3 ;get Textlength
- jsr Write(a6) ;call subroutine
-
- move.l Dosbase(pc),a6 ;get DosBase
- move.l Handle(pc),d1 ;get Handle
- move.l FileInfoBlockMem(pc),d2 ;get FIB-structure
- add.l #144,d2 ;get CommentText-address
- move.l d2,a0
- TextLoop:
- cmp.b #$00,(a0)+ ;zerobyte ?
- bne TextLoop ;No, continue the loop !
- sub.l d2,a0 ;Yes, subtract end- from startaddress
- move.l a0,d3 ;get Textlength
- jsr Write(a6) ;call subroutine
-
- move.l Dosbase(pc),a6 ;get DosBase
- move.l FileInfoBlockMem(pc),d1 ;get FIB-structure
- add.l #8,d1 ;get filename
- move.l #1005,d2 ;old mode
- jsr Open(a6) ;call subroutine
- cmp.l #0,d0 ;error ?
- beq OK2 ;Yes, end CheckFile
- move.l d0,Dateihandle ;No, get Dateihandle
-
- move.l Dosbase(pc),a6 ;get DosBase
- move.l Dateihandle(pc),d1 ;get Dateihandle
- move.l FileMem(pc),d2 ;get Filebuffer
- move.l #$5000,d3 ;read $5000 bytes
- jsr Read(a6) ;call subroutine
-
- move.l #53,d0 ;get counter
- lea FileVirusOffsetlist(pc),a0 ;get offsetlist
- lea Filevirustestbyteslist(pc),a1;get testbyteslist
- lea FilevirusNameList(pc),a3 ;get FileVirusNamelist
-
- CompareFileLoop:
- move.l (a0)+,d1 ;get offset
- add.l FileMem(pc),d1 ;add filebuffer-address
- move.l d1,a2 ;write d1 to a2
- move.l (a2),d1 ;get one longword from filebuffer
- cmp.l (a1)+,d1 ;is this longword = testbytes ?
- beq Filevirus ;Yes, go to Filevirus
- cmp.l #0,(a3)+ ;count FilevirusNamelist
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;zero ?
- bne CompareFileLoop ;No, continue the loop !
-
- SpecialVirus:
-
- move.l #4,d0 ;get counter
- lea SpecialVirusOffsetList(pc),a0; get offsetlist
- lea SpecialVirusTestbytesList(pc),a1;get testbyteslist
- lea SpecialVirusNameList(pc),a3 ;get SpecialVirusNameList
- lea SpecialVirusInvisibleNameList(pc),a5
-
- CompareSpecialVirusLoop:
- move.l (a0)+,d1 ;get offset
- add.l FileMem(pc),d1 ;add filebufferaddress to offset
- move.l d1,a2 ;write d1 to a2
- move.l (a2),d1 ;get one longword from filebuffer
- cmp.l (a1)+,d1 ;is this longword = testbytes ?
- beq KillSpecialVirus ;Yes, go to KillSpecialVirus
- cmp.l #0,(a3)+ ;count SpecialVirusNameList
- cmp.l #0,(a5)+ ;count SpecialVirusInvisibleNameList
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;zero ?
- bne CompareSpecialVirusLoop ;No, continue the loop !
-
- CheckFile2:
- move.l FileMem(pc),a0 ;get filebuffer
-
- cmp.l #$60040000,$24(a0) ;RoLe-Virus ?
- beq ReturnFile ;Yes, go to ReturnFile
-
- move.l FileInfoBlockMem(pc),d0 ;get FIB-structure
- add.l #8,d0 ;get filename
- move.l d0,a0
- InvisibleLoop:
- cmp.b #$A0,(a0)+ ;Invisible sign in filename ?
- beq InvisibleFile ;Yes, go to InvisibleFile
- cmp.b #$00,(a0) ;any more byte ?
- bne InvisibleLoop ;Yes, continue the loop !
-
- move.l FileMem(pc),a0 ;get filebuffer
- cmp.l #$000003F3,(a0) ;executable ?
- bne OK ;No, end CheckFile
-
- LinkLoop:
- cmp.l #$000003E9,(a0)+ ;Hunk-Start ?
- bne LinkLoop ;No, continue the loop !
-
- move.l a0,HunkPos ;get Hunk-Startposition
- move.l #12,d0 ;get counter
- lea LinkvirusOffsetList(pc),a0 ;get offsetlist
- lea LinkvirusTestbytesList(pc),a1;get testbyteslist
- lea LinkvirusNameList(pc),a3 ;get LinkvirusNameList
-
- CompareLinkLoop:
- move.l (a0)+,d1 ;get offset
- add.l HunkPos(pc),d1 ;add Hunkposition to offset
- move.l d1,a2 ;write d1 to a2
- move.l (a2),d1 ;get one longword from hunk
- cmp.l (a1)+,d1 ;is this longword = testbytes ?
- beq Linkvirus ;Yes, go to Linkvirus
- cmp.l #0,(a3)+ ;count LinkvirusNameList
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;zero ?
- bne CompareLinkLoop ;No, continue the loop !
-
- CheckFile3:
- move.l HunkPos(pc),a0 ;get fisrt Hunkposition
-
- cmp.l #$024D4558,$6CC(a0) ;HQCruncher ?
- beq HQFile ;Yes, go to HQFile
-
- cmp.l #"powe",$60(a0) ;PowerPacker ?
- beq PowerPackerFile ;Yes, go to PowerPackerFile
-
- cmp.l #"xplo",$30(a0) ;Imploder
- beq ImploderFile ;Yes, go to ImploderFile
-
- move.l FileMem(pc),a0 ;get filebuffer
- cmp.l #$000003F3,(a0) ;executable ?
- beq EXECUTABLEFile ;Yes, got to ExecutableFile
-
-
- OK:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l Dateihandle(pc),d1 ;get Dateihandle
- jsr Close(a6) ;call subroutine
-
- OK2:
- move.l #FileText2,d2 ;get FileText-Startaddress
- move.l #FileText2ende,d3 ;get FileText-Endaddress
- bsr PrintDOSText ;jump to subroutine
- rts ;return from subroutine
-
- PrintDOSText:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l Handle(pc),d1 ;get Handle
- sub.l d2,d3 ;get Textlength
- jsr Write(a6) ;call subroutine
- rts ;return from subroutine
-
- FileVirusNameLoop:
- move.l #40,d0 ;get counter
- lea FileVirusName(pc),a0 ;get FileVirusNamebuffer
-
- ClearFileVirusNameLoop:
- move.b #$00,(a0)+ ;clear all bytes
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;zero ?
- bne ClearFileVirusNameLoop ;No, continue the Loop !
-
- move.l #FileText,d2 ;get FileText-Startaddress
- move.l #FileTextende,d3 ;get FileText-Endaddress
- lea FileVirusName(pc),a0 ;get FileVirusNamebuffer
-
- FileVirusNameLoopLoop:
- move.b (a1)+,(a0)+ ;write Virusname to Filevirusbuffer
- cmp.b #$00,(a1) ;zero ?
- bne FileVirusNameLoopLoop ;No, continue the loop !
- bsr PrintDOSText ;jump to subroutine
- rts ;return from subroutine
-
- FileVirus:
- clr.l (a2) ;clear testbytes in filebuffer
- move.l (a3),a1 ;get VirusText-Address
- bsr FileVirusNameLoop ;go to FileVirusNameLoop
-
- move.l FileInfoBlockMem(pc),d4 ;get FIB-structure
- add.l #8,d4 ;get filename
- bsr KillFileVirus ;jump to subroutine
- bra OK2 ;end CheckFile
-
- ReturnFile:
- clr.l $24(a0) ;clear testbytes in filebuffer
- lea ReturnoftheLamerExterminatorText(pc),a1
- bsr FileVirusNameLoop ;go to FileVirusNameLoop
- move.l FileInfoBlockMem(pc),d4 ;get FIB-structure
- add.l #8,d4 ;get filename
- bsr KillFileVirus3 ;jump to subroutine
- bra OK2 ;end CheckFile
-
- HQFile:
- clr.l $6CC(a0) ;clear testbytes in filebuffer
- move.l #HQCruncherText,d2 ;get HQCruncherText-StartAddress
- move.l #HQCruncherTextende,d3 ;get HQCruncherText-Endaddress
- bsr PrintDOSText ;jump to subroutine
- bra OK ;end CheckFile
-
- PowerPackerFile:
- clr.l $60(a0) ;clear testbytes in filebuffer
- move.l #PowerPackerText,d2 ;get PowerPackerText-Startaddress
- move.l #PowerPackerTextende,d3 ;get PowerPackerText-Endaddress
- bsr PrintDOSText ;jump to subroutine
- bra OK ;end CheckFile
-
- ImploderFile:
- clr.l $30(a0) ;clear the testbytes in filebuffer
- move.l #ImploderText,d2 ;get ImploderText-Startaddress
- move.l #ImploderTextende,d3 ;get ImploderText-Endaddress
- bsr PrintDOSText ;jump to subroutine
- bra OK ;end CheckFile
-
- EXECUTABLEFile:
- move.l #ExecutableText,d2 ;get ExecutableText-Startaddress
- move.l #ExecutableTextende,d3 ;get ExecutableText-Endaddress
- bsr PrintDOSText ;jump to subroutine
- bra OK ;end CheckFile
-
- InvisibleFile:
- move.l #InvisibleFileText,d2 ;get InvisibleText-Startaddress
- move.l #InvisibleFileTextende,d3;get InvisibleText-Endaddress
- bsr PrintDOSText ;jump to subroutine
- move.l FileInfoBlockMem(pc),d4 ;get FIB-structure
- add.l #8,d4 ;get filename
- bsr KillFileVirus4 ;jump to subroutine
- bra OK2 ;end CheckFile
-
- LinkvirusNameLoop:
- move.l #40,d0 ;get counter
- lea LinkvirusName(pc),a0 ;get LinkvirusNamebuffer-address
-
- ClearLinkvirusNameLoop:
- move.b #$00,(a0)+ ;clear the buffer
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;zero ?
- bne ClearLinkvirusNameLoop ;No, continue the loop !
-
- move.l #LinkText,d2 ;get LinkText-Startaddress
- move.l #LinkTextende,d3 ;get LinkText-Endaddress
- lea LinkVirusName(pc),a0 ;get Linkvirusnamebuffer-address
-
- LinkVirusNameLoopLoop:
- move.b (a1)+,(a0)+ ;write Virusname to LinkvirusNamebuffer
- cmp.b #$00,(a1) ;zero ?
- bne LinkVirusNameLoopLoop ;No, continue the loop !
- bsr PrintDOSText ;jump to subroutine
- rts ;return from subroutine
-
- Linkvirus:
- clr.l (a2) ;clear testbytes from filebuffer
- move.l (a3),a1 ;get VirusText-Address
- bsr LinkvirusNameLoop ;jump to LinkvirusLoop
- bra OK2 ;end CheckFile
-
- CloseVirus:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l Dateihandle(pc),d1 ;get Dateihandle
- jsr Close(a6) ;call subroutine
- rts ;return from subroutine
-
- KillFileVirus:
- bsr CloseVirus ;jump to subroutine
- KillFileVirus2:
- Requester #KillFileTexten,#Yes,#No,#310,#80
- cmp.l #0,d0 ;Zero ?
- beq KillFileVirusNext ;Yes, do not kill the filevirus
-
- DeleteVirus:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l d4,d1 ;get filename
- move.l #%00000000,d2 ;unprotect
- jsr SetProtection(a6) ;call subroutine
-
- move.l Dosbase(pc),a6 ;get DosBase
- move.l d4,d1 ;get filename
- jsr DeleteFile(a6) ;call subroutine
- KillFileVirusNext:
- rts ;return from subroutine
-
- RenameVirus:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l d4,d2 ;get new filename
- jsr Rename(a6) ;call subroutine
- rts ;return from subroutine
-
- KillSpecialVirus:
- clr.l (a2) ;clear testbytes in filebuffer
- lea SpecialVirusName(pc),a0 ;get SpecialVirusNamebuffer-address
- move.l #40,d0 ;get counter
-
- ClearSpecialVirusNameLoop:
- move.b #00,(a0)+ ;clear the buffer
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne ClearSpecialVirusNameLoop ;No, continue the loop !
-
- lea SpecialVirusName(pc),a0 ;get SpecialVirusNamebuffer-address
- move.l (a3),a1 ;get Virusname-Address
-
- SpecialVirusNameLoop:
- move.b (a1)+,(a0)+ ;write VirusName to SpecialVirusNamebuffer
- cmp.b #0,(a1) ;Zero ?
- bne SpecialVirusNameLoop ;No, continue the loop !
-
- bsr CloseVirus ;jump to subroutine
- Requester #KillSpecialVirusText,#Yes,#No,#610,#70
- cmp.l #0,d0 ;Zero ?
- beq KillSpecialVirusNext ;Yes, do not kill the filevirus
- move.l FileInfoBlockMem(pc),d4 ;get FIB-structure
- add.l #8,d4 ;get filename
- bsr DeleteVirus ;jump to subroutine
- KillSpecialVirusNext:
- Requester #SpecialVirusOrigText,#Yes,#No,#610,#70
- cmp.l #0,d0 ;Zero ?
- beq KillSpecialVirusNextNext ;Yes, do not rename the original
- move.l (a5),d1 ;No, get original-filename-address
- move.l FileInfoBlockMem(pc),d4 ;get FIB-structure
- add.l #8,d4 ;get filename
- bsr RenameVirus ;jump to subroutine
- KillSpecialVirusNextNext:
- bra OK2 ;end CheckFile
-
- KillFileVirus3:
- bsr CloseVirus ;jump to subroutine
- Requester #RenameFileTexten,#Yes,#No,#400,#70
- cmp.l #0,d0 ;Zero ?
- beq KillFileVirus3Next ;Yes, do not rename the file
-
- move.l Dosbase(pc),a6 ;get DosBase
- move.l d4,d1 ;get old filename
- move.l #RETURN,d2 ;get new filename
- jsr Rename(a6) ;call subroutine
- KillFileVirus3Next:
- rts ;return from subroutine
-
- KillFileVirus4:
- bsr CloseVirus ;jump to subroutine
- Requester #RenameInvisibleFileText,#Yes,#No,#350,#70
- cmp.l #0,d0 ;Zero ?
- beq KillFileVirus4Next
-
- move.l Dosbase(pc),a6 ;get DosBase
- move.l d4,d1 ;get old filename
- move.l #CRITICAL,d2 ;get new filename
- jsr Rename(a6) ;call subroutine
- KillFileVirus4Next:
- rts ;return from subroutine
-
- even
- AutoRequestText:
- dc.b 0,2
- dc.b 0
- even
- dc.w 20,20
- dc.l 0
- AutoRequestTextPtr:
- dc.l 0
- dc.l 0
-
- even
- KillFileTexten:
- dc.b `Shall I delete this File ?`,0
-
- even
- KillSpecialVirusText:
- dc.b `Shall I delete the filevirus `
- SpecialVirusName: blk.b 40,0
-
- even
- SpecialVirusOrigText:
- dc.b `Shall I rename the original file ?`,0
-
- even
- RenameFileTexten:
- dc.b `Shall I rename the Disk-Validator ?`,0
-
- even
- RenameInvisibleFileText:
- dc.b `Shall I rename this file ?`,0
-
- even
- GadgetText:
- dc.b 0,2
- dc.b 0
- even
- dc.w 4,4
- dc.l 0
- GadgetTextPtr:
- dc.l 0
- dc.l 0
-
- even
- GadgetText2:
- dc.b 0,2
- dc.b 0
- even
- dc.w 4,4
- dc.l 0
- GadgetText2Ptr:
- dc.l 0
- dc.l 0
-
- even
- Yes:
- dc.b `Yes !`,0
-
- even
- No:
- dc.b `No !`,0
-
- even
- ContinueText:
- dc.b ` OK `,0
-
- even
- ContinueText2:
- dc.b 0,2
- dc.b 0
- even
- dc.w 4,4
- dc.l 0
- dc.l ContinueText
- dc.l 0
- dc.l 0
-
- even
- RETURN:
- dc.b `:L/LAMER-Virus`,0
-
- even
- CRITICAL:
- dc.b `:CRITICAL-Virus`,0
-
- even
- SpecialVirusNameList:
- dc.l BGS9Text
- dc.l BGS9IIText
- dc.l TerroristsText
- dc.l NaSTText
-
- even
- SpecialVirusTestbytesList:
- dc.l `TTV1`
- dc.l `TTV1`
- dc.l `TTV1`
- dc.l `NaST`
-
- even
- SpecialVirusOffsetlist:
- dc.l $00000A04
- dc.l $00000A04
- dc.l $00000620
- dc.l $0000007A
-
- even
- SpecialVirusInvisibleNameList:
- dc.l BGS9Invisible
- dc.l BGS9Invisible2
- dc.l TerroristsInvisible
- dc.l NaSTInvisible
-
- even
- BGS9Invisible:
- dc.b `:DEVS/ `,0
-
- even
- BGS9Invisible2:
- dc.b `:DEVS/ é `,0
-
- even
- TerroristsInvisible:
- dc.b `: `,0
-
- even
- NaSTInvisible:
- dc.b `:c/ `,0
-
- even
- FileNameText: dc.b ` `,0
- FileNameTextende:
-
- even
- SizeText:
- dc.b ` : $`
- Length: dc.b `00000000 `,0
- SizeTextende:
-
- even
- ExecutableText:
- dc.b ` :EXECUTABLE `,0
- ExecutableTextende:
-
- even
- PBits:
- dc.b `rwed`,0
-
- even
- ProtectText:
- dc.b ` `,0
- ProtectTextende:
-
- even
- FileText2:
- dc.b `: OK`,10
- FileText2ende:
-
- even
- DirText:
- dc.b ` <DIR> `,0
- DirTextende:
-
- even
- HQCruncherText:
- dc.b ` uses H&Q-Cruncher !`,0
- HQCruncherTextende:
-
- even
- PowerPackerText:
- dc.b ` uses powerpacker-Cruncher !`,0
- PowerPackerTextende:
-
- even
- ImploderText:
- dc.b ` uses implode.library !`,0
- ImploderTextende:
-
- even
- InvisibleFileText:
- dc.b $9b,`1;33m`
- dc.b ` : ... filename contains invisible signs ! Possibility: FILEVIRUS !!!`,10
- dc.b $9b,`0;31m`
- InvisibleFileTextende:
-
- even
- FileText:
- dc.b $9b,`1;33m`
- dc.b ` : ... contains `
- FileVirusname: blk.b 40,0
- dc.b ` Filevirus !!!`,10
- dc.b $9b,`0;31m`
- FileTextende:
-
- even
- LinkText:
- dc.b $9b,`1;33m`
- dc.b ` : ... includes `
- LinkVirusname: blk.b 40,0
- dc.b ` Linkvirus !!!`,10
- dc.b $9b,`0;31m`
- LinkTextende:
-
- even
- LinkvirusNameList:
- dc.l AntiChristText
- dc.l BestialDevastationText
- dc.l CCCPText
- dc.l GotchaLamerText
- dc.l HochofenText
- dc.l IRQText
- dc.l QRDLText
- dc.l RedOctoberText
- dc.l SmilyCancerText
- dc.l TravelingJackText
- dc.l TravelingJack2Text
- dc.l XenoText
-
- even
- LinkvirusTestbytesList:
- dc.l $00000250
- dc.l `VAST`
- dc.l `CCCP`
- dc.l `tcha`
- dc.l `hofe`
- dc.l $000003EC
- dc.l $60000342
- dc.l `devi`
- dc.l $60026068
- dc.l $48E7FFFE
- dc.l $48E7FFFE
- dc.l `Nudo`
-
- even
- LinkvirusOffsetList:
- dc.l $00000788
- dc.l $00000070
- dc.l $0000004C
- dc.l $0000013C
- dc.l $00000B90
- dc.l $000000A4
- dc.l $00000008
- dc.l $00000484
- dc.l $00000004
- dc.l $00000010
- dc.l $00000014
- dc.l $00000414
-
- even
- FilevirusNameList:
- dc.l AmigaKnightText
- dc.l AntiChristTextText
- dc.l BeethovenText
- dc.l BlueboxText
- dc.l BretHawnesText
- dc.l ColorText
- dc.l CommodoreText
- dc.l CompuPhagozyteText
- dc.l CompuPhagozyte2Text
- dc.l CompuPhagozyteIIText
- dc.l CompuPhagozyteIIIText
- dc.l CompuPhagozyteIIIBCText
- dc.l CompuPhagozyteIVText
- dc.l DStructureText
- dc.l DAGCreatorText
- dc.l DarthVaderText
- dc.l DisasterMasterText
- dc.l DiskKillerText
- dc.l DisktroyerV10Text
- dc.l DisktroyerV20Text
- dc.l DiskVal1234Text
- dc.l DMTrashText
- dc.l DriveInfoText
- dc.l ExcrementCreatorText
- dc.l FreedomText
- dc.l GotchaLamerCreatorText
- dc.l GZUSText
- dc.l INTELText
- dc.l JeffBUTONICV131Text
- dc.l JeffBUTONICV300Text
- dc.l LamerLoadWBText
- dc.l LamerVirusXText
- dc.l Liberatorv121Text
- dc.l Liberatorv30Text
- dc.l Liberatorv501Text
- dc.l ModemCheckerText
- dc.l ModemCheckerloadWBText
- dc.l NANOoldText
- dc.l NanonewText
- dc.l NoGuruv20Text
- dc.l PPBombText
- dc.l RevengeOfTheLAMERExterminatorText
- dc.l SADDAMText
- dc.l SEPULTURAText
- dc.l ShowSysopText
- dc.l SmilyCancerLoadWBText
- dc.l SnoopDosText
- dc.l TelecomText
- dc.l TFCRevengeLoadWBText
- dc.l TimeBombV09Text
- dc.l TravelingJackTextText
- dc.l VirusConstructionSetText
- dc.l xprzspeedV32Text
-
- even
- FilevirusTestbytesList:
- dc.l `STAR`
- dc.l `ntic`
- dc.l `Beet`
- dc.l `inpu`
- dc.l `BRET`
- dc.l `TURK`
- dc.l `COMM`
- dc.l ` Com`
- dc.l `The `
- dc.l `COMP`
- dc.l `agoz`
- dc.l `gozy`
- dc.l `agoz`
- dc.l `Stru`
- dc.l $00000510
- dc.l `DART`
- dc.l $610002FA
- dc.l `DISK`
- dc.l `iskt`
- dc.l `iskt`
- dc.l `trac`
- dc.l `user`
- dc.l $4EAEFF3A
- dc.l `EXCR`
- dc.l `Free`
- dc.l ` LAM`
- dc.l `-Zus`
- dc.l `oadw`
- dc.l `DASA`
- dc.l $4E714E71
- dc.l `LAME`
- dc.l `MER `
- dc.l `erat`
- dc.l `Libe`
- dc.l `Libe`
- dc.l `HECK`
- dc.l `FUCK`
- dc.l `N A `
- dc.l `Nano`
- dc.l `FNNF`
- dc.l `egam`
- dc.l $60040000
- dc.l `BitM`
- dc.l $4E716100
- dc.l `SPOS`
- dc.l `=WO/`
- dc.l `oopD`
- dc.l `brar`
- dc.l `Fana`
- dc.l `VIRU`
- dc.l ` Jac`
- dc.l `Star`
- dc.l `Spee`
-
- even
- FilevirusOffsetList:
- dc.l $00000342
- dc.l $00000008
- dc.l $00000044
- dc.l $000001A0
- dc.l $00000028
- dc.l $00000260
- dc.l $0000010E
- dc.l $00000460
- dc.l $00000380
- dc.l $000001B0
- dc.l $0000035C
- dc.l $00000030
- dc.l $00000030
- dc.l $00000168
- dc.l $00000710
- dc.l $00000300
- dc.l $00000028
- dc.l $00000162
- dc.l $00000220
- dc.l $00000224
- dc.l $000006C0
- dc.l $000004C2
- dc.l $0000002C
- dc.l $000000C8
- dc.l $0000054E
- dc.l $000002F0
- dc.l $0000361C
- dc.l $0000027C
- dc.l $00000206
- dc.l $00000088
- dc.l $00000448
- dc.l $00000460
- dc.l $0000129C
- dc.l $00002784
- dc.l $00003E80
- dc.l $000033F0
- dc.l $0000054C
- dc.l $00000492
- dc.l $0000003A
- dc.l $000002F0
- dc.l $00000410
- dc.l $00000020
- dc.l $00000702
- dc.l $00000180
- dc.l $000003D0
- dc.l $00000C00
- dc.l $000006B0
- dc.l $00000290
- dc.l $00000050
- dc.l $000007C0
- dc.l $00000010
- dc.l $00000050
- dc.l $000023F0
-
- vectors_table:
- bsr OpenTable ;open table-window
- cmp.l #0,d0 ;error ?
- beq vectorsend ;Yes, end vectors_table
- move.l d0,vectorshandle ;No, get handle
- bsr vectors ;show vectors
- bsr vectorswait ;delay vectors
- bra vectorsend ;close vectors_table
-
- OpenTable:
- move.l Dosbase(pc),a6 ;get ExecBase
- move.l #Table,d1 ;get DOS-Window-Address
- move.l #1006,d2 ;mode new
- jsr Open(a6) ;call subroutine
- rts ;return from subroutine
-
- vectors:
- move.l #17,d0 ;get counter
- lea ExecVectorsList(pc),a3 ;get vectorslist
- lea ExecVectorsNameList(pc),a4 ;get ExecVectorsNameList
-
- ExecVectorsLoop:
- move.l (a3)+,d4 ;get offset
- move.l 4,a6 ;get ExecBase
- add.l d4,a6 ;add offset to ExecBase
- move.l (a6),d2 ;write ROM-address to d2
- move.l (a4)+,a0 ;get vectorbuffer
- bsr hex ;hex !!!
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne ExecVectorsLoop ;No, continue the loop !
-
- bsr FindTrackDisk ;get TrackDiskBase
- move.l a1,a6 ;write TrackDiskBase to a6
- move.l #2,d0 ;get counter
- lea TrackDiskVectorsList(pc),a3 ;get offsetlist
- lea TrackDiskVectorsNameList(pc),a4;get TrackDiskVectorsNameList
-
- TrackDiskVectorsLoop:
- move.l a6,a1 ;get TrackDiskBase
- add.l (a3)+,a1 ;add offset to TrackDiskBase
- move.l (a1),d2 ;write ROM-address to d2
- move.l (a4)+,a0 ;get vectorbuffer
- bsr hex ;hex !!!
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne TrackDiskVectorsLoop ;No, continue the loop !
-
- bsr Findkeyboard ;get KeyBoardBase
- move.l -$0000001C(a1),d2 ;get offset
- lea BeginIOVec(pc),a0 ;get vectorbuffer
- bsr hex ;hex !!!
-
- move.l #4,d0 ;get counter
- lea DOSVectorsList(pc),a3 ;get offsetlist
- lea DOSVectorsNameList(pc),a4 ;get DOSVectorsNameList
-
- DOSVectorsLoop:
- move.l DosBase(pc),a6 ;get DosBase
- add.l (a3)+,a6 ;add offset to DosBase
- move.l (a6),d2 ;write ROM-address to d2
- move.l (a4)+,a0 ;get vectorsbuffer
- bsr hex ;hex !!!
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne DOSVectorsLoop ;No, continue the loop !
-
- move.l #2,d0 ;get counter
- lea IntuitionVectorsList(pc),a3 ;get offsetlist
- lea IntuitionVectorsNameList(pc),a4;get IntuitionVectorsNameList
-
- IntuitionLoop:
- move.l Intuibase(pc),a6 ;get IntuiBase
- add.l (a3)+,a6 ;add offset to Intuibase
- move.l (a6),d2 ;write ROM-address to d2
- move.l (a4)+,a0 ;get vectorsbuffer
- bsr hex ;hex !!!
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne IntuitionLoop ;No, continue the loop !
-
- move.l #Systemvectorstabletext,d2;get Systemvectorstabletext-Startaddress
- move.l #Systemvectorstableend,d3;get Systemvectorstable-Endaddress
- bsr PrintDOSText2 ;jump to subroutine
- rts ;return from subroutine
-
- hex:
- ;this routine converts the ROM-addresses to hexadecimal
- ;numbers
-
- move.l #8,d1 ;get counter
-
- HexaLoop:
- rol.l #4,d2 ;rotate 4 bits left
- move.l d2,d3 ;get byte
- and.b #$0f,d3 ;get nibble
- add.b #$30,d3 ;get ciphers
- cmp.b #$39,d3 ;d3 > 9 ?
- ble display ;No, diplay hexa-cipher
- add.b #7,d3 ;Yes, get letter A-F
-
- Display:
- move.b d3,(a0)+ ;display one byte
- sub.l #1,d1 ;count down
- cmp.l #0,d1 ;Zero ?
- bne HexaLoop ;No, continue the loop !
- rts ;return from subroutine
-
- vectorswait:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l #300,d1 ;worth for Delay
- jsr Delay(a6) ;call subroutine
-
- CloseTable:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l vectorshandle(pc),d1 ;get handle
- jsr Close(a6) ;call subroutine
- rts ;return from subroutine
-
- PrintDOSText2:
- move.l Dosbase(pc),a6 ;get DosBase
- move.l vectorshandle(pc),d1 ;get handle
- sub.l d2,d3 ;calculate textlength
- jsr Write(a6) ;call subroutine
- rts ;return from subroutine
-
- vectorsend:
- rts ;return from subroutine
-
- even
- Table:
- dc.b `CON:0/0/600/200/System-Vectors-Table:`,0
-
- even
- Vectorshandle:
- dc.l 0
-
- even
- ExecVectorsNameList:
- dc.l ColdCapture
- dc.l CoolCapture
- dc.l WarmCapture
- dc.l CHKSumVec
- dc.l KickCheckSum
- dc.l DoIO
- dc.l KickMemPtr
- dc.l KickTagPtr
- dc.l RasterBeamVec
- dc.l OldOpenLibraryVec
- dc.l OpenLib
- dc.l SKD
- dc.l AlertVec
- dc.l AllocMemVec
- dc.l FreeMemVec
- dc.l PutMsgVec
- dc.l OpenDeviceVec
-
- even
- ExecVectorsList:
- dc.l 42
- dc.l 46
- dc.l 50
- dc.l 82
- dc.l 554
- dc.l -454
- dc.l 546
- dc.l 550
- dc.l $90
- dc.l -406
- dc.l -550
- dc.l -610
- dc.l -106
- dc.l -196
- dc.l -208
- dc.l -364
- dc.l -442
-
- even
- TrackDiskVectorsNameList:
- dc.l BeginIO
- dc.l CloseVec
-
- even
- TrackDiskVectorsList:
- dc.l -$0000001C
- dc.l -$0000000A
-
- even
- DOSVectorsNameList:
- dc.l OP
- dc.l LoadSeg
- dc.l WriteVec
- dc.l LockVec
-
- even
- DOSVectorsList:
- dc.l -28
- dc.l -148
- dc.l -46
- dc.l -82
-
- even
- IntuitionVectorsNameList:
- dc.l WindowOpen
- dc.l DisplayAlertVec
-
- even
- IntuitionVectorsList:
- dc.l -202
- dc.l -88
-
- even
- Systemvectorstabletext:
- dc.b ` ExecBase:`,10
- dc.b ` ColdCapture: $`
- ColdCapture: dc.b `00000000`,0
- dc.b ` CoolCapture: $`
- CoolCapture: dc.b `00000000`,10
- dc.b ` WarmCapture: $`
- WarmCapture: dc.b `00000000`,0
- dc.b ` ChkSum: $`
- CHKSumVec: dc.b `00000000`,10
- dc.b ` KickMemPtr: $`
- KickMemPtr: dc.b `00000000`,0
- dc.b ` KickTagPtr: $`
- KickTagPtr: dc.b `00000000`,10
- dc.b ` KickCheckSum: $`
- KickCheckSum: dc.b `00000000`,0
- dc.b ` RasterBeam Int.$`
- RasterBeamVec: dc.b `00000000`,10
- dc.b ` exec.library:`,10
- dc.b ` Alert: $`
- AlertVec: dc.b `00000000`,0
- dc.b ` AllocMem: $`
- AllocMemVec: dc.b `00000000`,10
- dc.b ` FreeMem: $`
- FreeMemVec: dc.b `00000000`,0
- dc.b ` PutMsg: $`
- PutMsgVec: dc.b `00000000`,10
- dc.b ` OldOpenLibrary: $`
- OldOpenLibraryVec: dc.b `00000000`,0
- dc.b ` OpenDevice: $`
- OpenDeviceVec: dc.b `00000000`,10
- dc.b ` DoIO: $`
- DoIO: dc.b `00000000`,0
- dc.b ` OpenLibrary: $`
- OpenLib: dc.b `00000000`,10
- dc.b ` SumKickData: $`
- SKD: dc.b `00000000`,10
- dc.b ` dos.library:`,10
- dc.b ` Open: $`
- OP: dc.b `00000000`,0
- dc.b ` Write: $`
- WriteVec: dc.b `00000000`,10
- dc.b ` Lock: $`
- LockVec: dc.b `00000000`,0
- dc.b ` LoadSeg: $`
- LoadSeg: dc.b `00000000`,10
- dc.b ` intuition.library:`,10
- dc.b ` DisplayAlert: $`
- DisplayAlertVec: dc.b `00000000`,0
- dc.b ` OpenWindow: $`
- WindowOpen: dc.b `00000000`,10
- dc.b ` trackdisk.device:`,10
- dc.b ` BeginIO: $`
- BeginIO: dc.b `00000000`,0
- dc.b ` Close: $`
- CloseVec: dc.b `00000000`,10
- dc.b ` keyboard.device:`,10
- dc.b ` BeginIO: $`
- BeginIOVec: dc.b `00000000`,10
- Systemvectorstableend:
-
- even
- CheckMem:
- move.l #129,d0
- lea AbsoluteMemoryPositionVirusOffsetList(pc),a0
- lea AbsoluteMemoryPositionVirusTestbytesList(pc),a1
- lea AbsoluteMemoryPositionVirusNameList(pc),a3
-
- CompareAbsMemLoop:
- move.l (a0)+,a2 ;get offset
- move.l (a2),d1 ;get longword from offset-position
- cmp.l (a1)+,d1 ;is this longword = testbytes ?
- beq AMIGAMemoryVirus ;Yes, go to AMIGAMemoryVirus
- cmp.l #0,(a3)+ ;count AbsoluteMemoryPositionVirusNameList
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne CompareAbsMemLoop ;No, continue the loop !
-
- ColdRelativeMemoryPosition:
- move.l #8,d0
- lea ColdRelativeMemoryPositionVirusOffsetList(pc),a0
- lea ColdRelativeMemoryPositionVirusTestbytesList(pc),a1
- lea ColdRelativeMemoryPositionVirusNameList(pc),a3
-
- CompareColdRelativeMemoryPositionLoop:
- move.l (a0)+,d1 ;get offset
- move.l ExecBase,a6 ;get ExecBase
- move.l 42(a6),d2 ;get ColdCapture-Startaddress
- add.l d2,d1 ;add offset to this Startaddress
- move.l d1,a2 ;write d1 to a2
- move.l (a2),d1 ;write longword from memory to d1
- cmp.l (a1)+,d1 ;is this longword = testbytes ?
- beq AMIGAMemoryVirus ;Yes, go to AMIGAMemoryVirus
- cmp.l #0,(a3)+ ;count ColdRelativeMemoryPositionVirusNameList
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne CompareColdRelativeMemoryPositionLoop;No, continue the loop !
-
- CoolRelativeMemoryPosition:
- move.l #23,d0
- lea CoolRelativeMemoryPositionVirusOffsetList(pc),a0
- lea CoolRelativeMemoryPositionVirusTestbytesList(pc),a1
- lea CoolRelativeMemoryPositionVirusNameList(pc),a3
-
- CompareCoolRelativeMemoryPositionLoop:
- move.l (a0)+,d1 ;get offset
- move.l ExecBase,a6 ;get ExecBase
- move.l 46(a6),d2 ;get CoolCapture-Startaddress
- add.l d2,d1 ;add offset to this Startaddress
- move.l d1,a2 ;write d1 to a2
- move.l (a2),d1 ;write longword from memory to d1
- cmp.l (a1)+,d1 ;is this longword = testbytes ?
- beq AMIGAMemoryVirus ;Yes, go to AMIGAMemoryVirus
- cmp.l #0,(a3)+ ;count CoolRelativeMemoryPositionVirusNameList
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne CompareCoolRelativeMemoryPositionLoop;No, continue the loop !
-
- KickTagRelativeMemoryPosition:
- move.l #56,d0
- lea KickTagRelativeMemoryPositionVirusOffsetList(pc),a0
- lea KickTagRelativeMemoryPositionVirusTestbytesList(pc),a1
- lea KickTagRelativeMemoryPositionVirusNameList(pc),a3
-
- CompareKickTagRelativeMemoryPositionLoop:
- move.l (a0)+,d1 ;get offset
- move.l ExecBase,a6 ;get ExecBase
- move.l 550(a6),d2 ;get KickTagPtr-Startaddress
- add.l d2,d1 ;add offset to this Startaddress
- move.l d1,a2 ;write d1 to a2
- move.l (a2),d1 ;write longword from memory to d1
- cmp.l (a1)+,d1 ;is this longword = testbytes ?
- beq AMIGAMemoryVirus ;Yes, go to AMIGAMemoryVirus
- cmp.l #0,(a3)+ ;count KickTagRelativeMemoryPositionVirusNameList
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne CompareKickTagRelativeMemoryPositionLoop;No, continue the loop !
-
- CheckMemNext:
- lea HochofenName(pc),a1 ;get HochofenName-Address
- bsr Task ;jump to subroutine
- cmp.l #0,d0 ;Zero ?
- bne Hochofen ;No, its the Hochofen-virus
-
- lea ModemCheckerName(pc),a1 ;get ModemCheckerName-Address
- bsr Task ;jump to subroutine
- cmp.l #0,d0 ;Zero ?
- bne ModemChecker ;No, its the ModemChecker-virus
- bra KillMem ;jump to KillMem
-
- Task:
- move.l ExecBase,a6 ;get ExecBase
- jsr FindTask(a6) ;call subroutine
- rts ;return from subroutine
-
- KillMem:
- move.l ExecBase,a6 ;get ExecBase
- cmp.l #0,42(a6) ;is ColdCapture at zero ?
- bne AskColdCapture ;No, jump to AskColdCapture
- cmp.l #0,46(a6) ;is CoolCapture at zero ?
- bne AskCoolCapture ;No, jump to AskCoolCapture
- cmp.l #0,550(a6) ;is KickTagPtr at zero ?
- bne AskKickTagPtr ;No, jump to KickTagPtr
-
- KillMem2:
- bra NoAMIGAMemoryVirus ;jump to NoAMIGAMemoryVirus
-
- AskColdCapture:
- Requester #AColdText,#Yes,#No,#360,#70
- cmp.l #1,d0 ;was Yes-Gadget touched ?
- beq KillColdCapture ;Yes, KillColdCapture
- bra NoAMIGAMemoryVirus ;No, jump to NoAMIGAMemoryVirus
-
- AskCoolCapture:
- Requester #ACoolText,#Yes,#No,#360,#70
- cmp.l #1,d0 ;was Yes-Gadaget touched ?
- beq KillCoolCapture ;Yes, KillCoolCapture
- bra NoAMIGAMemoryVirus ;No, jump to NoAMIGAMemoryVirus
-
- AskKickTagPtr:
- Requester #AKickText,#Yes,#No,#360,#70
- cmp.l #1,d0 ;was Yes-Gadget touched
- beq KillKickTagPtr ;Yes, KillKickTagPtr
- bra NoAMIGAMemoryVirus ;No, jump to NoAMIGAMemoryVirus
-
- KillColdCapture:
- move.l 4,a6 ;get ExecBase
- clr.l 42(a6) ;clear ColdCapture
- bsr ChkSum ;calculate new ChkSum
- rts ;return from subroutine
-
- KillCoolCapture:
- move.l 4,a6 ;get ExecBase
- clr.l 46(a6) ;clear CoolCapture
- bsr ChkSum ;calculate new ChkSum
- rts ;return from subroutine
-
- ChkSum:
- clr.w 82(a6) ;clear old ChkSum
- lea 34(a6),a0 ;get Versionnumber
- clr.l d0 ;clear d0
- moveq #23,d0 ;get counter
- clr.w d1 ;clear d1
- ChkSumLoop:
- add.w (a0)+,d1 ;add the lower words
- ;of the ExecBase-structure
- dbf d0,ChkSumLoop ;until d0 is count down
-
- not.w d1 ;invert this sum
- move.w d1,82(a6) ;get new ChkSum
- clr.l d0 ;clear d0
- rts ;return from subroutine
-
- KillKickMemPtr:
- move.l 4,a6 ;get ExecBase
- move.l 546(a6),a0 ;get KickMemPtr
- move.l (a0),d0 ;get successor
- move.l d0,546(a6) ;enter address of successor
- ;to KickMemPtr
- bsr KillKickCheckSum ;calculate new KickCheckSum
- rts ;return from subroutine
-
- KillKickTagPtr:
- move.l 4,a6 ;get ExecBase
- move.l 550(a6),a0 ;get KickTagPtr
- move.l 4(a0),d0 ;get successor
- move.l d0,550(a6) ;enter address of successor
- ;to KickTagPtr
- bsr KillKickCheckSum ;calculate new KickCheckSum
- rts ;return from subroutine
-
- KillKickCheckSum:
- move.l 4,a6 ;get ExecBase
- jsr -612(a6) ;call subroutine
- move.l d0,554(a6) ;enter new KickCheckSum
- ;to KickCheckSum
- rts ;return from subroutine
-
- FindTrackDisk:
- move.l ExecBase,a6 ;get ExecBase
- lea $0000015E(a6),a0 ;ListPtr
- lea TrackName(pc),a1 ;Name
- jsr FindName(a6) ;call subroutine
- move.l d0,a1 ;get address of TrackDisk
- rts ;return from subroutine
-
- Findkeyboard:
- move.l ExecBase,a6 ;get ExecBase
- lea $0000015E(a6),a0 ;ListPtr
- lea KeyName(pc),a1 ;Name
- jsr FindName(a6) ;call subroutine
- move.l d0,a1 ;get address of Keyboard
- rts ;return from subroutine
-
- returntoSystem:
- rts ;return from subroutine
-
- even
- AColdText:
- dc.b `Shall I restore ColdCapture ?`,0
-
- even
- ACoolText:
- dc.b `Shall I restore CoolCapture ?`,0
-
- even
- AKickText:
- dc.b `Shall I restore KickTagPtr ?`,0
-
- even
- TrackName:
- dc.b `trackdisk.device`,0
-
- even
- KeyName:
- dc.b `keyboard.device`,0
-
- even
- Hochofenname:
- dc.b `Greetings to Hochofen`,0
-
- even
- ModemCheckerName:
- dc.b `Diskdriver.proc`,0
-
- even
- AbsoluteMemoryPositionVirusNameList:
- dc.l The16BitCrewText
- dc.l The2001Text
- dc.l AEKText
- dc.l AIDSText
- dc.l AlienNewBeatText
- dc.l AmigaMasterText
- dc.l ASSText
- dc.l ASVText
- dc.l AsylantText
- dc.l BamigaSectorOneText
- dc.l BBProtText
- dc.l BeethovenText
- dc.l BigBossText
- dc.l BlackflashText
- dc.l BladeRunnersText
- dc.l BLFText
- dc.l BlowJobText
- dc.l BretHawnesText
- dc.l ButonicText
- dc.l ByteVoyagerText
- dc.l ByteVoyagerIIText
- dc.l CascadeText
- dc.l ClonkText
- dc.l CodersNightmareText
- dc.l ColorText
- dc.l CompuPhagozyteText
- dc.l CompuPhagozyte2Text
- dc.l CompuPhagozyteIIText
- dc.l CompuPhagozyteIIIText
- dc.l CompuPhagozyteIIIBCText
- dc.l CompuPhagozyteIVText
- dc.l DStructureText
- dc.l DAGText
- dc.l DAT89Text
- dc.l DATACRIMEText
- dc.l DigitalEmotionsText
- dc.l DisgustText
- dc.l DiskguardText
- dc.l DiskHerpesText
- dc.l DiskTerminatorText
- dc.l DottyText
- dc.l DUMDUMText
- dc.l ExcrementText
- dc.l ExecutorsText
- dc.l FASTText
- dc.l FastEddieText
- dc.l GadaffiText
- dc.l GlasnostText
- dc.l GoldenRiderText
- dc.l GraffitiText
- dc.l GremlinText
- dc.l GXTeamText
- dc.l GyrosText
- dc.l HCSText
- dc.l HCSIIText
- dc.l HillyText
- dc.l HODENText
- dc.l IceText
- dc.l IndianaJonesText
- dc.l InfectorText
- dc.l InfluenzaText
- dc.l INGOText
- dc.l JITRText
- dc.l JulieText
- dc.l KaukiText
- dc.l KefrensText
- dc.l KilledText
- dc.l LADSText
- dc.l LoverboySexmachineText
- dc.l LSDText
- dc.l MADIIText
- dc.l MEXXText
- dc.l MGM89Text
- dc.l MOSHText
- dc.l MOSH2Text
- dc.l MutilatorText
- dc.l NANOoldText
- dc.l NANOnewText
- dc.l NastyNastyText
- dc.l NorthStarText
- dc.l NorthStarIIText
- dc.l OverkillText
- dc.l PARATAXIText
- dc.l PARATAXIIIText
- dc.l PayDayText
- dc.l PentagonSlayerText
- dc.l PentagonSlayer2Text
- dc.l PentagonSlayer3Text
- dc.l PlastiqueText
- dc.l REPText
- dc.l REVENGEText
- dc.l SachsenText
- dc.l SADDAMHUSSEINText
- dc.l SaoPauloText
- dc.l SATANText
- dc.l SCAText
- dc.l SendarionText
- dc.l SherlockText
- dc.l SmilyCancerText
- dc.l SSText
- dc.l SSIIText
- dc.l SuicideMachineText
- dc.l SuperboyText
- dc.l SupplyTeamText
- dc.l SystemZV30Text
- dc.l SystemZV40Text
- dc.l SystemZV50Text
- dc.l SystemZV51Text
- dc.l SystemZV53Text
- dc.l SystemZV54Text
- dc.l SystemZV61Text
- dc.l TargetText
- dc.l TelStarText
- dc.l TermigatorText
- dc.l TIMEBOMBText
- dc.l TNKText
- dc.l TomatesGentechnic10Text
- dc.l TomatesGentechnic20text
- dc.l TURKText
- dc.l UltrafoxText
- dc.l USSR492Text
- dc.l VirusConstructionSetBootblockText
- dc.l VirusSlayerText
- dc.l VirusV1Text
- dc.l WahnfriedText
- dc.l WARHAWKText
- dc.l ZaccessV10Text
- dc.l ZLXText
- dc.l ZombiText
-
- even
- AbsoluteMemoryPositionVirusTestbytesList:
- dc.l $43726577
- dc.l $30303132
- dc.l ` AEK`
- dc.l $48495621
- dc.l `ALIE`
- dc.l `Mast`
- dc.l `ROTE`
- dc.l `SV!A`
- dc.l `ASYL`
- dc.l `BS1!`
- dc.l `B-Pr`
- dc.l `BETH`
- dc.l `A!BI`
- dc.l `blac`
- dc.l `lade`
- dc.l `trac`
- dc.l `cato`
- dc.l `BRET`
- dc.l `BAHA`
- dc.l `VOYA`
- dc.l `oyag`
- dc.l `Casc`
- dc.l `LONK`
- dc.l `oder`
- dc.l `TURK`
- dc.l `gozy`
- dc.l `The `
- dc.l `COMP`
- dc.l `agoz`
- dc.l `gozy`
- dc.l `agoz`
- dc.l `Stru`
- dc.l `from`
- dc.l `T '8`
- dc.l `DATA`
- dc.l `EMOT`
- dc.l `Viru`
- dc.l `DISK`
- dc.l ` H e`
- dc.l `isk-`
- dc.l `Dott`
- dc.l `MDUM`
- dc.l `EXCR`
- dc.l `XECU`
- dc.l `ains`
- dc.l `EDDI`
- dc.l $47414441
- dc.l `Glas`
- dc.l `Gold`
- dc.l `fiti`
- dc.l `grap`
- dc.l `libr`
- dc.l `GYRO`
- dc.l $482E432E
- dc.l `H.C.`
- dc.l `dos.`
- dc.l `HODE`
- dc.l `INC!`
- dc.l `ndia`
- dc.l `INFE`
- dc.l `I N `
- dc.l `INGO`
- dc.l `JITR`
- dc.l `dos.`
- dc.l `dos.`
- dc.l `efre`
- dc.l `Kill`
- dc.l `LADS`
- dc.l `Love`
- dc.l $4C534421
- dc.l $004D4144
- dc.l `MEXX`
- dc.l `MGM8`
- dc.l `MOSH`
- dc.l `MOSH`
- dc.l `grap`
- dc.l `N A `
- dc.l `Nano`
- dc.l `Nast`
- dc.l $4E4F5254
- dc.l $57726974
- dc.l `Over`
- dc.l `PARA`
- dc.l `PARA`
- dc.l `PayD`
- dc.l $656E7461
- dc.l `enta`
- dc.l `enta`
- dc.l ` L A`
- dc.l `REP!`
- dc.l $52657665
- dc.l `ACHS`
- dc.l `2000`
- dc.l `PAUL`
- dc.l `ATAN`
- dc.l $53434121
- dc.l `Send`
- dc.l `ORSI`
- dc.l $52494F4E
- dc.l `!SS!`
- dc.l `HEIL`
- dc.l `uici`
- dc.l `Supe`
- dc.l `uppl`
- dc.l ` V3.`
- dc.l ` V4.`
- dc.l ` V5.`
- dc.l `5.1 `
- dc.l `V5.3`
- dc.l `V5.4`
- dc.l `V6.1`
- dc.l $43524E00
- dc.l `grap`
- dc.l `NsAx`
- dc.l $424F4D42
- dc.l `TNK!`
- dc.l `OMAT`
- dc.l `Toma`
- dc.l `TURK`
- dc.l `NuNu`
- dc.l `Sent`
- dc.l $00BFE001
- dc.l `VIRU`
- dc.l `sind`
- dc.l `AHNF`
- dc.l `WARH`
- dc.l `ZACC`
- dc.l `ZLX!`
- dc.l `bi I`
-
- even
- AbsoluteMemorypositionVirusOffsetList:
- dc.l $0007EDE0
- dc.l $0007EFE8
- dc.l $0007EFD0
- dc.l $0007EFF0
- dc.l $00020240
- dc.l $0007EF30
- dc.l $0007F4B2
- dc.l $0007DF00
- dc.l $0007EF30
- dc.l $0007EFE8
- dc.l $0007A338
- dc.l $0007F008
- dc.l $0007EFE2
- dc.l $0007F010
- dc.l $0007EF30
- dc.l $0007F31A
- dc.l $0007F02E
- dc.l $0007F004
- dc.l $0007EF2C
- dc.l $0007F330
- dc.l $0007F2E2
- dc.l $0007E3E2
- dc.l $0007D398
- dc.l $0007FA5C
- dc.l $00070260
- dc.l $0007C400
- dc.l $0007C380
- dc.l $0007C1B0
- dc.l $0007C35C
- dc.l $0007C030
- dc.l $0007C030
- dc.l $0007C168
- dc.l $0007EFB6
- dc.l $0007FAC0
- dc.l $0007DDC6
- dc.l $0007EE80
- dc.l $0007EDB8
- dc.l $0007FCF4
- dc.l $0007EF90
- dc.l $0007EF24
- dc.l $0007F018
- dc.l $0007FA10
- dc.l $0007F454
- dc.l $0007EF48
- dc.l $0007F240
- dc.l $0007F3D4
- dc.l $0007FB40
- dc.l $0007F730
- dc.l $0007C34C
- dc.l $0007EF90
- dc.l $0007F760
- dc.l $0007F8C0
- dc.l $0007EE3E
- dc.l $0007EF44
- dc.l $0007EF4E
- dc.l $0007F440
- dc.l $0007F2D4
- dc.l $0007EFE4
- dc.l $0007E91E
- dc.l $0007F310
- dc.l $0007F3D2
- dc.l $0007F408
- dc.l $0007EC18
- dc.l $0007F826
- dc.l $0007EE98
- dc.l $0007EFAC
- dc.l $0007EE64
- dc.l $0007F408
- dc.l $0007EDD6
- dc.l $0007EFE4
- dc.l $0007FB72
- dc.l $0007EFE4
- dc.l $0007E582
- dc.l $0007C016
- dc.l $0007C016
- dc.l $0007CD4C
- dc.l $0007C492
- dc.l $0007C03A
- dc.l $0007F1D6
- dc.l $0007EF84
- dc.l $0007EF9A
- dc.l $0007F722
- dc.l $0007EFCC
- dc.l $0007EE82
- dc.l $0007EC10
- dc.l $0007FD86
- dc.l $0007F368
- dc.l $0007E2DA
- dc.l $0007EE12
- dc.l $0007EFE4
- dc.l $0007E3E2
- dc.l $000782D8
- dc.l $0007F012
- dc.l $0007FEF0
- dc.l $0007CF26
- dc.l $0007EFE8
- dc.l $0007E3E2
- dc.l $0007FCF6
- dc.l $0007FB00
- dc.l $0007C012
- dc.l $0007C01A
- dc.l $0007E424
- dc.l $0007EEE2
- dc.l $0007F2C8
- dc.l $0007F42A
- dc.l $0007F42A
- dc.l $0007F42A
- dc.l $0007F42C
- dc.l $0007F42A
- dc.l $0007F42A
- dc.l $0007F42A
- dc.l $0007ED9C
- dc.l $0007FED4
- dc.l $0007F712
- dc.l $00070346
- dc.l $0007EFE4
- dc.l $00070182
- dc.l $0007F640
- dc.l $0007F066
- dc.l $0007EDB0
- dc.l $0007F454
- dc.l $0007F146
- dc.l $0007FA10
- dc.l $0007EF22
- dc.l $0007F312
- dc.l $0007E966
- dc.l $0007EDD6
- dc.l $0007EFE4
- dc.l $0007A18C
-
-
- even
- ColdRelativeMemoryPositionVirusNameList:
- dc.l DestructorText
- dc.l DiskVal1234Text
- dc.l HARDEXText
- dc.l Joshua2Text
- dc.l LAMEText
- dc.l LOOMText
- dc.l RISCText
- dc.l SADDAMText
-
- even
- ColdRelativeMemoryPositionVirusTestbytesList:
- dc.l `estr`
- dc.l $0C681234
- dc.l `RDEX`
- dc.l `trac`
- dc.l `LAME`
- dc.l `LOOO`
- dc.l `ISC `
- dc.l `libr`
-
- even
- ColdRelativeMemoryPositionVirusOffsetList:
- dc.l $00000180
- dc.l $00000148
- dc.l $0000057E
- dc.l $00000242
- dc.l $0000014A
- dc.l $0000057C
- dc.l $0000057E
- dc.l $00000560
-
- even
- CoolRelativeMemoryPositionVirusNameList:
- dc.l AIDS2Text
- dc.l AngelText
- dc.l AustralianParasiteText
- dc.l BadBytesText
- dc.l BlizzProV31Text
- dc.l BlizzProV33Text
- dc.l CCCPText
- dc.l CrackerExterminatorText
- dc.l Crime2Text
- dc.l CrimePlusText
- dc.l DarthVaderText
- dc.l DiskDoktorsText
- dc.l DISKFurunkelText
- dc.l DivinaExterminatorText
- dc.l ExcrementText
- dc.l LameBlameText
- dc.l MICROSYSTEMSText
- dc.l MOSH2Text
- dc.l ObeliskText
- dc.l PARATAXIIText
- dc.l QRDLText
- dc.l USSR492Text
- dc.l WAFTText
-
- even
- CoolRelativeMemoryPositionVirusTestbytesList:
- dc.l `A'e*`
- dc.l `Ange`
- dc.l `Aust`
- dc.b `TTS `
- dc.l `Bliz`
- dc.l `Bliz`
- dc.l `CCCP`
- dc.l `CRAC`
- dc.l `Crim`
- dc.l `rime`
- dc.l `DART`
- dc.l `Dokt`
- dc.l `DISK`
- dc.l `IVIN`
- dc.l `EXCR`
- dc.l `ameB`
- dc.l `MICR`
- dc.l `MOSH`
- dc.l `GURU`
- dc.l `ARAT`
- dc.l `QRDL`
- dc.l `Sent`
- dc.l `est-`
-
- even
- CoolRelativeMemoryPositionVirusOffsetList:
- dc.l $0000033E
- dc.l $00000262
- dc.l $000002DE
- dc.l $00000310
- dc.l -$00000222
- dc.l -$00000238
- dc.l -$00000030
- dc.l -$00000096
- dc.l $00000346
- dc.l $000002B8
- dc.l $00000268
- dc.l $0000017C
- dc.l $0000035C
- dc.l $000002EA
- dc.l -$00000026
- dc.l $00000050
- dc.l $0000032C
- dc.l -$00000072
- dc.l -$00000034
- dc.l $0000013C
- dc.l $00000190
- dc.l -$00000026
- dc.l $000002DE
-
- even
- KickTagRelativeMemoryPositionVirusNameList:
- dc.l AmigaFreakText
- dc.l AmigaKnightText
- dc.l BGS9Text
- dc.l BootXText
- dc.l ByteBanditText
- dc.l ByteBanditPlusText
- dc.l ByteBandit2Text
- dc.l ByteBanditturboText
- dc.l ByteWarriorText
- dc.l CobraText
- dc.l DetlefText
- dc.l DisasterMasterText
- dc.l ElectroVisionText
- dc.l EuropeanText
- dc.l ExtremeText
- dc.l FICAText
- dc.l ForpibText
- dc.l FrityText
- dc.l GermanyText
- dc.l GuardiansBootAidsText
- dc.l HaukeText
- dc.l IncognitoText
- dc.l IngerIQText
- dc.l IngosReturnText
- dc.l IRQText
- dc.l JeffBUTONICV131Text
- dc.l JeffBUTONICV300Text
- dc.l JoshuaText
- dc.l LamerExterminatoroldIIIText
- dc.l LamerExterminatornewText
- dc.l LamerExterminatorIText
- dc.l LamerExterminatorIIText
- dc.l LamerExterminatorIVVText
- dc.l LamerExterminatorVIText
- dc.l LamerExterminatorVIIText
- dc.l LamerExterminatorVIIIText
- dc.l NaSTText
- dc.l Obelisk2Text
- dc.l OPAPAText
- dc.l ReturnoftheLamerExterminatorText
- dc.l RevengeBootloaderText
- dc.l RevengeOfTheLAMERExterminatorText
- dc.l RevengeOfTheLAMERExterminatorText
- dc.l SCARFACEText
- dc.l SEPULTURAText
- dc.l ShitText
- dc.l SonjaText
- dc.l SystemZV64Text
- dc.l SystemZV65Text
- dc.l TerroristsText
- dc.l TFCRevengeText
- dc.l UKLamerStyleText
- dc.l VIPHSText
- dc.l WarsawAvengerText
- dc.l ZaccessV20Text
- dc.l ZaccessV30Text
-
- even
- KickTagRelativeMemoryPositionVirusTestbytesList:
- dc.l `AMIG`
- dc.l `STAR`
- dc.l `TTV1`
- dc.l `Boot`
- dc.l $42616E64
- dc.l `NqNq`
- dc.l `dos.`
- dc.l `trac`
- dc.l `Viru`
- dc.l `OBRA`
- dc.l `intu`
- dc.l `-seq`
- dc.l `ELEC`
- dc.l `Euro`
- dc.l `XTRE`
- dc.l `F.I.`
- dc.l `FORP`
- dc.l `rity`
- dc.l `Germ`
- dc.l `-aid`
- dc.l `Hauk`
- dc.l `dos.`
- dc.l `nger`
- dc.l `INGO`
- dc.l `RQ-T`
- dc.l `JEFF`
- dc.l `DASA`
- dc.l `trac`
- dc.l `LAME`
- dc.l `LAME`
- dc.l `AMER`
- dc.l `LAME`
- dc.l `AMER`
- dc.l `AMER`
- dc.l `LAME`
- dc.l `LAME`
- dc.l `NaST`
- dc.l `BELI`
- dc.l `PARA`
- dc.l `amer`
- dc.l `Reve`
- dc.l $38204F63
- dc.l `1986`
- dc.l `SCAR`
- dc.l `brar`
- dc.l `SHIT`
- dc.l `onja`
- dc.l `V6.4`
- dc.l `V6.5`
- dc.l `TTV1`
- dc.l `anat`
- dc.l `devi`
- dc.l `VIPH`
- dc.l `rsaw`
- dc.l `ZACC`
- dc.l `ACCE`
-
- even
- KickTagRelativeMemoryPositionVirusOffsetList:
- dc.l -$000003C4
- dc.l $00000242
- dc.l $00000A26
- dc.l -$00000184
- dc.l -$000003C2
- dc.l -$0000013C
- dc.l -$000003BC
- dc.l -$0000002A
- dc.l $000002B4
- dc.l -$00000052
- dc.l $00000218
- dc.l $00000562
- dc.l -$000003D2
- dc.l -$000003D2
- dc.l -$000001A2
- dc.l $000004CA
- dc.l -$000003C8
- dc.l -$000003CA
- dc.l -$000003D2
- dc.l -$00000024
- dc.l -$000003D2
- dc.l -$000003BE
- dc.l -$000003CE
- dc.l -$0000002A
- dc.l -$00000348
- dc.l $0000099C
- dc.l $000001A6
- dc.l $000000EA
- dc.l -$0000002E
- dc.l -$00000028
- dc.l -$00000022
- dc.l -$0000002A
- dc.l -$00000026
- dc.l -$00000028
- dc.l -$00000090
- dc.l -$00000064
- dc.l $0000009C
- dc.l -$0000009C
- dc.l -$00000098
- dc.l -$000000DC
- dc.l -$000003B8
- dc.l -$00000834
- dc.l -$0000082A
- dc.l -$0000003E
- dc.l $00000698
- dc.l -$0000017C
- dc.l -$0000001E
- dc.l -$000003DA
- dc.l -$000003DA
- dc.l $0000007A
- dc.l -$00000126
- dc.l -$000000E0
- dc.l -$00000398
- dc.l -$00000370
- dc.l -$000003CC
- dc.l -$0000019C
-
- NoAMIGAMemoryVirus:
-
- cmp.b #$FF,fastcheck ;was fastcheck-flag set ?
- beq returntoSystem ;No, returntoSystem
-
- move.l ExecBase,a6 ;get ExecBase
- move.l #MEMF_LARGEST,d1 ;want connected memory
- move.l #$5000,d0 ;want $5000 bytes
- jsr AllocMem(a6) ;call subroutine
-
- move.l d0,DiskValMem ;get MemPtr
- tst.l d0 ;error ?
- beq NoMemAlert ;Yes, jump to NoMemAlert
- clr.b TrackdiskFlag ;clear TrackDiskFlag
-
- clr.l AddressCounter ;clear AddressCounter
- clr.l DriveCounter ;clear DriveCounter
- clr.l DriveLoopCounter ;clear DriveLoopCounter
- clr.l OpenDriveCount ;clear OpenDriveCount
-
- OpenDrivesLoop:
- bsr BootblockStart ;open TrackDiskDevice
- cmp.b #$FF,TrackdiskFlag ;No more drives ?
- beq OpenDrivesLoopEnd ;Yes end the loop
- add.l #4,AddressCounter ;count up AddressCounter
- add.l #1,DriveCounter ;count up DriveCounter
- add.l #1,OpenDriveCount ;count up OpenDriveCount
- cmp.l #4,OpenDriveCount ;all floopydisks opened ?
- bne OpenDrivesLoopEnd
-
- OpenDrivesLoopEnd:
- cmp.l #0,OpenDriveCount ;TrackDisk-Error ?
- beq IntuiEnde2 ;Yes, go to IntuiEnde2
-
- sub.l #4,AddressCounter
- sub.l #1,DriveCounter
-
- move.l Intuibase(pc),a6 ;get Intuibase
- lea NewWindow(pc),a0 ;get NewWindow-structure
- jsr OpenWindow(a6) ;call subroutine
- move.l d0,Winhandle ;get Winhandle
- bra IntuiWait3 ;jump to IntuiWait3
-
- IntuiWait:
- move.l Winhandle(pc),a0 ;get Winhandle
- move.l ExecBase,a6 ;get ExecBase
- move.l 86(a0),a0 ;get Message
- jsr GetMsg(a6) ;call subroutine
-
- IntuiWait3:
- move.l Winhandle(pc),a0 ;get Winhandle
- move.l 86(a0),a0 ;get Message
- move.l ExecBase,a6 ;get ExecBase
- jsr WaitPort(a6) ;call subroutine
- move.l d0,a1 ;get Message
- move.l 20(a1),d1 ;write Message to d1
- cmp.l #$8000,d1 ;Diskinserted ?
- beq VirusCheck ;Yes, go to VirusCheck
-
- IntuiPart2:
- cmp.l #$200,d1 ;WindowClosed ?
- beq IntuiEnde ;Yes, end Intui
- bra IntuiWait ;Jump to IntuiWait
-
- IntuiEnde:
- move.l Winhandle(pc),a0 ;get Winhandle
- move.l Intuibase(pc),a6 ;get Intuibase
- jsr CloseWindow(a6) ;call subroutine
-
- clr.l AddressCounter ;clear AddressCounter
- clr.l DriveCounter ;clear DriveCounter
- clr.l DriveLoopCounter ;clear DriveLoopCounter
-
- CloseDriveLoop:
- add.l #1,DriveLoopCounter ;count up DriveLoopCounter
- bsr BootblockEnde ;close TrackDiskDevice
- add.l #4,AddressCounter ;count up AddressCounter
- add.l #1,DriveCounter ;count up DriveCounter
- move.l DriveLoopCounter(pc),d0
- cmp.l OpenDriveCount,d0 ;all drives closed ?
- bne CloseDriveLoop ;No, continue the loop
-
- IntuiEnde2:
- move.l ExecBase,a6 ;get ExecBase
- move.l DiskValMem(pc),a1 ;get MemPtr
- move.l #$5000,d0 ;deallocate $5000 bytes
- jsr FreeMem(a6) ;call subroutine
- rts ;return from subroutine
-
- Even
- NewWindow:
- dc.w 100
- dc.w 0
- dc.w 400
- dc.w 10
- dc.b 0
- dc.b 1
- dc.l $200!$8000
- dc.l $1000!1!2!4!8
- dc.l 0
- dc.l 0
- dc.l Windowtitle
- dc.l 0
- dc.l 0
- dc.w 300
- dc.w 10
- dc.w 300
- dc.w 10
- dc.w 1
-
-
- even
- WindowTitle:
- dc.b `AntiCicloVir V2.3a by Matthias Gutt`,0
-
- even
- Winhandle:
- dc.l 0
-
-
- BootblockStart:
- move.l ExecBase,a6 ;get ExecBase
- move.l #MEMF_CHIP!MEMF_LARGEST,d1;get connected CHIP-RAM
- move.l #$2048,d0 ;want $2048 bytes
- jsr AllocMem(a6) ;call subroutine
- tst.l d0 ;error ?
- beq BootblockCheckEnde ;Yes, end BootblockCheck
- lea Sectorbuffer(pc),a0 ;get Sectorbuffer
- add.l AddressCounter(pc),a0
- move.l d0,(a0) ;No, get Sectorbufferaddress
- move.l d0,TrackSecBuffer ;get Sectorbuffer in
- ;TDIOStdReq-structure
- cmp.l #0,DriveCounter ;first floopydisk ?
- bne BootblockStart2 ;No, skip to BBStart2
-
- move.l #0,a1 ;my task
- bsr Task ;jump to subroutine
- move.l d0,AntiCicloTask ;get TaskPtr
-
- move.l ExecBase,a6 ;get ExecBase
- move.l #-1,d0 ;allocate free signal
- jsr AllocSignal(a6) ;call subroutine
- cmp.l #0,d0 ;error ?
- ble BootblockCheckEnde ;Yes, end the BootblockCheck
- clr.l d7 ;No, clear d7
- move.l d0,d7 ;get Signalbit
- move.b d0,Sigbit ;get Signalbit in
- ;MsgPort-Structure
- BootblockStart2:
- move.l ExecBase,a6 ;get ExecBase-address
- move.l #MEMF_PUBLIC!MEMF_CHIP!MEMF_CLEAR!MEMF_LARGEST,d1
- move.l #100,d0 ;need 100 bytes
- jsr AllocMem(a6) ;call subroutine
- tst.l d0 ;error ?
- beq FreeSignalIt ;Yes, end BootBlockCheck
- lea DeviceMem(pc),a0
- add.l AddressCounter(pc),a0
- move.l d0,(a0) ;get MemPtr
- move.l d0,TrackDeviceMem ;get DeviceMem in
- ;TDIOStdReq-structure
-
- move.l ExecBase,a6 ;get ExecBase
- lea DeviceMem(pc),a0
- add.l AddressCounter(pc),a0
- move.l (a0),a1 ;get MemPtr
- lea Device(pc),a0 ;get Device-structure
- move.l #40,d0 ;get size
- jsr CopyMem(a6) ;call subroutine
-
- move.l ExecBase,a6 ;get ExecBase
- move.l #MEMF_PUBLIC!MEMF_CHIP!MEMF_CLEAR!MEMF_LARGEST,d1
- move.l #100,d0 ;need 100 bytes
- jsr AllocMem(a6) ;call subroutine
- tst.l d0 ;error ?
- beq BootblockCheckEnde2 ;Yes, end BootBlockCheck
- lea UnitMem(pc),a0
- add.l AddressCounter(pc),a0
- move.l d0,(a0) ;get MemPtr
- move.l d0,TrackUnitMem ;get UnitMem in
- ;TDIOStdReq-structure
-
- move.l ExecBase,a6 ;get ExecBase
- lea UnitMem(pc),a0
- add.l AddressCounter(pc),a0
- move.l (a0),a1 ;get MemPtr
- lea Unit(pc),a0 ;get Unit-structure
- move.l #40,d0 ;get size
- jsr CopyMem(a6) ;call subroutine
-
- lea UnitMem(pc),a0 ;get UnitMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a0
- add.l #20,a0 ;get UnitMsgList
- move.l a0,(a0) ;get lh_Head
- move.l a0,8(a0) ;get lh_TailPred
- add.l #4,(a0) ;get lh_Tail
-
- cmp.l #0,DriveCounter ;first floppydisk
- bne BootBlockStart3
-
- move.l ExecBase,a6 ;get ExecBase
- move.l #MEMF_PUBLIC!MEMF_CHIP!MEMF_CLEAR!MEMF_LARGEST,d1
- move.l #1000,d0 ;want 1000 bytes
- jsr AllocMem(a6) ;call subroutine
- tst.l d0 ;error ?
- beq BootBlockCheckEnde3 ;Yes, end the BootblockCheck !
- move.l d0,MsgPortMem ;No, get MemPtr
-
- move.l ExecBase,a6 ;get ExecBase
- lea MsgPortStructure(pc),a0 ;get MsgPort-structure
- move.l MsgPortMem(pc),a1 ;get MsgPortMemPtr
- move.l #34,d0 ;get size
- jsr CopyMem(a6) ;call subroutine
-
- move.l MsgPortMem(pc),a0
- add.l #20,a0 ;get MsgList
- move.l a0,(a0) ;get lh_Head
- move.l a0,8(a0) ;get lh_TailPred
- add.l #4,(a0) ;get lh_Tail
-
- move.l ExecBase,a6 ;get ExecBase
- move.l MsgPortMem(pc),a1 ;get MsgPortMemPtr
- jsr AddPort(a6) ;call subroutine
-
- BootBlockStart3:
- move.l MsgPortMem(pc),d0
- move.l d0,TrackDiskMsgPortMem
- move.l ExecBase,a6 ;get ExecBase
- move.l #MEMF_PUBLIC!MEMF_CHIP!MEMF_CLEAR!MEMF_LARGEST,d1
- move.l #100,d0 ;need only 100 bytes
- jsr AllocMem(a6) ;call subroutine
- tst.l d0 ;error ?
- beq BootblockCheckEnde4 ;Yes, end BootblockCheck
- lea TrackDiskIOSTDRequestMem(pc),a0
- add.l AddressCounter(pc),a0
- move.l d0,(a0) ;get MemPtr
-
- move.l ExecBase,a6 ;get ExecBase
- lea TrackDiskIOSTdRequestMem(pc),a0
- add.l AddressCounter(pc),a0
- move.l (a0),a1 ;get TDIOStdReqMem-Ptr
- lea TrackdiskIOStdRequest(pc),a0;get TDIOStdReq-structure
- move.l #100,d0 ;get size
- jsr CopyMem(a6) ;call subroutine
-
- move.l ExecBase,a6 ;get ExecBase
- lea TrackDiskIOStdRequestMem(pc),a0
- add.l AddressCounter(pc),a0
- move.l (a0),a1 ;get TDIOStdReqMem-Ptr
- lea TrackName(PC),a0 ;get TrackName
- move.l DriveCounter(pc),d0 ;use drive unit x
- move.l #0,d1 ;no flags
- jsr OpenDeviceRoutine(a6) ;call subroutine
- tst.l d0 ;error ?
- bne BootBlockCheckEnde5 ;Yes, end BootBlockCheck !
- rts ;return from subroutine
-
- ReadBootBlock:
- bsr DisplayCheck
- lea TrackDiskIOStdRequestMem(pc),a0;Get TDIOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.w #02,28(a1) ;enter read-command to TDIOStdReqMemPtr
- move.l #2048,$24(a1) ;enter 2048 bytes to TDIOStdReqMemPtr
- bsr BootBlockCheck ;jump to subroutine
- lea TrackDiskIOStdRequestMem(pc),a0;Get TDIOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.w #09,28(a1) ;turn off motor
- move.l #0,$24(a1) ;turn off motor
- bsr BootBlockCheck ;jump to subroutine
- bsr CheckBootMem ;jump to subroutine
- rts ;return from subroutine
-
- DisplayCheck:
- move.b DriveCounter(pc),d0
- add.b d0,DriveNumber
- move.l Intuibase(pc),a6 ;get Intuibase
- move.l Winhandle(pc),a0 ;get Winhandle-structure
- lea CheckWindowTitle(pc),a1 ;get CheckWindowTitle-address
- move.l #-1,a2 ;no new screen-title
- jsr SetWindowTitles(a6) ;call subroutine
- move.b #$30,DriveNumber
- rts ;return from subroutine
-
- DisplayWindowTitle:
- move.l Intuibase(pc),a6 ;get Intuibase
- move.l Winhandle(pc),a0 ;get Winhandle-structure
- lea WindowTitle(pc),a1 ;get WindowTitle-structure
- move.l #-1,a2 ;no new screen-title
- jsr SetWindowTitles(a6) ;call subroutine
- rts ;return from subroutine
-
-
- BootblockCheck:
- move.l ExecBase,a6 ;get ExecBase
- lea TrackdiskIOStdRequestMem(pc),a0;get IOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- jsr DoIORoutine(a6) ;call subroutine
-
- move.l ExecBase,a6 ;get ExecBase
- lea TrackdiskIOStdRequestMem(pc),a0;get IOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- jsr WaitIO(a6) ;call subroutine
-
- move.l ExecBase,a6 ;get ExecBase
- move.l MsgPortMem(pc),a0 ;get MsgPortMemPtr
- jsr GetMsg(a6) ;call subroutine
- move.l d0,TrackDiskMessage
- rts ;return from subroutine
-
- WriteBootBlock:
- move.l ExecBase,a6 ;get ExecBase
- lea Sectorbuffer(pc),a0 ;get Sectorbuffer
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- add.l #4,a1
- lea Bootblock(pc),a0 ;get Bootblockprg-Address
- clr.l d0
- move.b -1(a1),d0
- sub.l d0,start
- move.l #1020,d0 ;get size
- jsr CopyMem(a6) ;call subroutine
-
-
- lea TrackDiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.w #03,28(a1) ;enter write-command
- move.l #1024,$24(a1) ;enter 1024 bytes to write
- bsr BootBlockCheck ;jump to subroutine
-
- lea TrackDiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.w #04,28(a1) ;enter update-command
- bsr BootblockCheck ;jump to subroutine
-
- lea TrackDiskIOStdRequestMem(pc),a0
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- cmp.b #28,$1F(a1) ;Disk writeprotected ?
- beq DiskWriteProtected ;Yes, DiskWriteProtected
- lea TrackDiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.w #09,28(a1) ;turn off motor
- move.l #0,$24(a1) ;turn off motor
- bsr BootBlockCheck ;jump to subroutine
- rts ;return from subroutine
-
- DiskWriteProtected:
- clr.b $1F(a1) ;clear error-flag
- lea TrackDiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.w #09,28(a1) ;turn off motor
- move.l #0,$24(a1) ;turn off motor
- bsr BootBlockCheck ;jump to subroutine
-
- lea AutoRequestTextPtr(pc),a0 ;get RequestText
- move.l #DiskWriteProtectedText,(a0)
- lea GadgetTextPtr(pc),a0 ;get GadgetText
- move.l #ContinueText,(a0)
- lea GadgetText2Ptr(pc),a0 ;get next GadgetText
- move.l #ContinueText,(a0)
- move.l #0,a0
- lea AutoRequestText(pc),a1 ;get RequestText-structure
- lea GadgetText(pc),a2 ;get GadgetText-structure
- lea GadgetText2(pc),a3 ;get GadgetText2-structure
- moveq #0,d0 ;no IDCMP-Flag
- moveq #0,d1 ;no IDMCP-Flag
- move.l #610,d2 ;get Width for Request
- move.l #70,d3 ;get Height for Request
- move.l Intuibase(pc),a6 ;get Intuibase
- jsr AutoRequest(a6) ;call subroutine
- rts ;return from subroutine
-
-
- BootblockEnde:
- move.l ExecBase,a6 ;get ExecBase
- lea TrackDiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- jsr CloseDevice(a6) ;call subroutine
-
- cmp.l #0,DriveCounter ;first floppydisk ?
- bne BootblockEnde2 ;No, go to BootblockEnde2
-
- move.l ExecBase,a6 ;get ExecBase
- move.l MsgPortMem(pc),a1 ;get MsgPortMemPtr
- jsr RemPort(a6) ;call subroutine
-
- move.l MsgPortMem(pc),a0 ;get MsgPortMemPtr
- move.b #$FF,$8(a0) ;remove listtype
- move.l #-1,$14(a0) ;remove flag
-
- move.l ExecBase,a6 ;get ExecBase
- move.l MsgPortMem(pc),a1 ;get MsgPortMemPtr
- move.l #1000,d0 ;get size
- jsr FreeMem(a6) ;call subroutine
-
- BootBlockEnde2:
- lea TrackdiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a0
- move.b #$FF,$8(a0) ;remove listtype
- move.l #$FFFFFFFF,$14(a0) ;remove DevicePtr
- move.l #$FFFFFFFF,$18(a0) ;remove UnitPtr
- move.l ExecBase,a6 ;get ExecBase
- lea TrackDiskIOStdRequestMem(pc),a0;get IOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.l #100,d0 ;get size
- jsr FreeMem(a6) ;call subroutine
-
- move.l ExecBase,a6 ;get ExecBase
- lea DeviceMem(pc),a0 ;get DeviceMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.l #100,d0 ;get size
- jsr FreeMem(a6) ;call subroutine
-
- move.l ExecBase,a6 ;get ExecBase
- lea UnitMem(pc),a0 ;get UnitMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.l #100,d0 ;get size
- jsr FreeMem(a6) ;call subroutine
-
- cmp.l #0,DriveCounter ;first floppydisk
- bne BootBlockEnde3
- move.l ExecBase,a6 ;get ExecBase
- move.l d7,d0 ;get Signalbit
- jsr FreeSignal(a6) ;call subroutine
-
- BootBlockEnde3:
- move.l ExecBase,a6 ;get ExecBase
- lea Sectorbuffer(pc),a0 ;get Sectorbuffer
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.l #$2048,d0 ;get size
- jsr FreeMem(a6) ;call subroutine
- rts ;return from subroutine
-
- CheckBootMem:
- bsr DisplayWindowTitle
- move.l #185,d0
- lea BootblockVirusOffsetlist(pc),a0
- lea BootblockVirusTestbytesList(pc),a1
- lea BootblockVirusNameList(pc),a3
- lea Sectorbuffer(pc),a4
- add.l AddressCounter(pc),a4
-
- CompareBootblockLoop:
- move.l (a0)+,d1 ;get offset
- add.l (a4),d1 ;add offset to Sectorbuffer
- move.l d1,a2 ;write d1 to a2
- move.l (a2),d1 ;write longword from sectorbuffer to d1
- cmp.l (a1)+,d1 ;is this longword = testbytes ?
- beq BootblockVirus ;Yes, go to BootBlockVirus
- cmp.l #0,(a3)+ ;count BootblockVirusNameList
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne CompareBootblockLoop ;No, continue the loop !
- rts ;return from subroutine
-
- BootblockVirus:
- lea BootblockVirusName(pc),a0 ;get BootblockVirusNamebuffer
- move.l #40,d0 ;get counter
-
- ClearBootblockVirusNameLoop:
- move.b #00,(a0)+ ;clear the buffer
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne ClearBootblockVirusNameLoop ;No, continue the loop !
-
- lea BootblockVirusName(pc),a0 ;get BootblockVirusNamebuffer
- move.l (a3),a1 ;get VirusText-Address
-
- BootblockVirusNameLoop:
- move.b (a1)+,(a0)+ ;write VirusName to BootblockVirusNamebuffer
- cmp.b #0,(a1) ;Zero ?
- bne BootblockVirusNameLoop ;No, continue the loop !
-
- BootRequester:
- Requesterold BootReqText,Install,Continuetext2,#610,#70
- cmp.l #1,d0 ;was Gadget touched ?
- beq WriteBootblock ;Yes, WriteBootblock
- rts ;return from subroutine
-
- BootblockCheckEnde:
- bsr NoMemAlert ;jump to subroutine
- move.b #$FF,TrackdiskFlag ;set TrackDiskFlag
- rts ;return from subroutine
-
- BootblockCheckEnde5:
- lea TrackdiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a0
- move.b #$FF,$8(a0) ;remove listtype
- move.l #$FFFFFFFF,$14(a0) ;remove Devicestructure
- move.l #$FFFFFFFF,$18(a0) ;remove UnitStructure
- move.l ExecBase,a6 ;get ExecBase
- lea TrackdiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.l #100,d0 ;get size
- jsr FreeMem(a6) ;call subroutine
-
-
- BootblockCheckEnde4:
- cmp.l #0,DriveCounter ;first floppydisk ?
- bne BootblockCheckEnde3 ;Yes, go to BootblockCheckEnde3
-
- move.l ExecBase,a6 ;get ExecBase
- move.l MsgPortMem(pc),a1 ;get MsgPortMemPtr
- jsr RemPort(a6) ;call subroutine
-
- move.l MsgPortMem(pc),a0 ;get MsgPortMemPtr
- move.b #$FF,$8(a0) ;remove listtype
- move.l #-1,$14(a0) ;remove flags
-
- move.l ExecBase,a6 ;get ExecBase
- move.l MsgPortMem(pc),a1 ;get MsgPortMemPtr
- move.l #1000,d0 ;get size
- jsr FreeMem(a6) ;call subroutine
-
- BootblockCheckEnde3:
- move.l ExecBase,a6 ;get ExecBase
- lea UnitMem(pc),a0 ;get UnitMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.l #100,d0 ;get size
- jsr FreeMem(a6) ;call subroutine
-
- BootBlockCheckEnde2:
- move.l ExecBase,a6 ;get ExecBase
- lea DeviceMem(pc),a0 ;get DeviceMemPtr
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.l #100,d0 ;get size
- jsr FreeMem(a6) ;call subroutine
-
- FreeSignalIt:
- move.l ExecBase,a6 ;get ExecBase
- lea Sectorbuffer(pc),a0 ;get Sectorbuffer
- add.l AddressCounter(pc),a0
- move.l (a0),a1
- move.l #$2048,d0 ;get size
- jsr FreeMem(a6) ;call subroutine
-
- cmp.l #0,DriveCounter ;first floopydisk ?
- bne BootBlockCheckEnde0 ;Yes, go to BootBlockCheckEnde0
- move.l ExecBase,a6 ;get ExecBase
- move.l d7,d0 ;get Signalbit
- jsr FreeSignal(a6) ;call subroutine
-
- BootBlockCheckEnde0:
- bsr NoMemAlert ;jump to subroutine
- move.b #$FF,TrackdiskFlag ;set TrackDiskFlag
- rts ;return from subroutine
-
- even
- BootReqText:
- dc.b 0,2
- dc.b 0
- even
- dc.w 20,20
- dc.l 0
- dc.l BootText
- dc.l 0
-
- even
- Install:
- dc.b 0,2
- dc.b 0
- even
- dc.w 12,4
- dc.l 0
- dc.l InstallText
- dc.l 0
-
- InstallText:
- dc.b ` Install `,0
-
- even
- DiskWriteProtectedText:
- dc.b `Trackdisk I/O error: Disk write-protected !`,0
-
- even
- MsgPortStructure:
- dc.l 0
- dc.l 0
- dc.b 4
- dc.b 0
- dc.l PortName
- dc.b 0
- Sigbit:
- dc.b 0
- AntiCicloTask:
- dc.l 0
- dc.l 0
- dc.l 0
- dc.l 0
- dc.b 5
- dc.b 0
-
- even
- TrackdiskIOStdRequest: ;IOStdRequest-structure
- dc.l 0 ;Ptr of successor
- dc.l 0 ;Ptr of predecessor
- dc.b 6 ;messagetype
- dc.b 0 ;priority
- dc.l MessageName ;Ptr of Messagename
- TrackDiskMsgPortMem:
- dc.l 0 ;Ptr of MsgPort
- dc.w 56 ;messagelength
- TrackDeviceMem:
- dc.l 0
- TrackUnitMem: ;Ptr to Device-structure
- dc.l 0 ;Ptr to Unit-structure
- dc.w 2 ;Command
- dc.b 0 ;Flags
- dc.b 0 ;Errorbyte
- dc.l 0 ;Actualbyte
- dc.l 2048 ;Number of Bytes
- TrackSecbuffer:
- dc.l 0 ;Buffer-address
- dc.l 0 ;Sector-Nr.
- dc.l 0 ;DiskChangeCount
- dc.l 0 ;SecLabelBuffer
-
- even
- Device:
- dc.l 0
- dc.l 0
- dc.b 3
- dc.b 0
- dc.l TrackName
- dc.b 0
- dc.b 0
- dc.w 0
- dc.w 0
- dc.w 0
- dc.w 0
- dc.l TrackName
- dc.l 0
- dc.w 0
-
- even
- Unit:
- dc.l 0
- dc.l 0
- dc.b 4
- dc.b 0
- dc.l 0
- dc.b 0
- dc.b 0
- dc.l 0
- dc.l 0
- dc.l 0
- dc.l 0
- dc.b 5
- dc.b 0
- dc.b 0
- dc.b 0
- dc.w 0
-
- even
- CheckWindowTitle:
- dc.b `checking floppydrive DF`
- DriveNumber: dc.b `0: !!!`,0
-
- even
- MsgPortMem:
- dc.l 0
-
- TrackdiskIOStdRequestMem:
- dc.l 0
- dc.l 0
- dc.l 0
- dc.l 0
-
- DeviceMem:
- dc.l 0
- dc.l 0
- dc.l 0
- dc.l 0
-
- UnitMem:
- dc.l 0
- dc.l 0
- dc.l 0
- dc.l 0
-
- TrackDiskMessage:
- dc.l 0
-
- Sectorbuffer:
- dc.l 0
- dc.l 0
- dc.l 0
- dc.l 0
-
- TrackdiskFlag:
- dc.b 0
-
- even
- OpenDriveCount:
- dc.l 0
-
- even
- DriveCounter:
- dc.l 0
-
- even
- DriveLoopCounter:
- dc.l 0
-
- even
- AddressCounter:
- dc.l 0
-
- even
- MessageName:
- dc.b `AntiCicloVir.message`,0
-
- even
- PortName:
- dc.b `AntiCicloVir.port`,0
-
- even
- BootText:
- dc.b `VIRUS in Bootsectors: `
- Bootblockvirusname: blk.b 40,0
-
- even
- BootblockvirusNameList:
- dc.l The16BitCrewText
- dc.l The2001Text
- dc.l AEKText
- dc.l AHCText
- dc.l AIDSText
- dc.l AIDS2Text
- dc.l AlienNewBeatText
- dc.l AmigaFreakText
- dc.l AmigaMasterText
- dc.l AngelText
- dc.l ASSText
- dc.l ASVText
- dc.l AsylantText
- dc.l AustralianParasiteText
- dc.l BadBytesText
- dc.l BamigaSectorOneText
- dc.l BBProtText
- dc.l BigBossText
- dc.l BlackflashText
- dc.l BladeRunnersText
- dc.l BLFText
- dc.l BlizzProV31Text
- dc.l BlizzProV33Text
- dc.l BlowJobText
- dc.l BootXText
- dc.l ButonicText
- dc.l ByteBanditText
- dc.l ByteBanditPlusText
- dc.l ByteBandit2Text
- dc.l ByteBanditturboText
- dc.l ByteVoyagerText
- dc.l ByteVoyagerIIText
- dc.l ByteWarriorText
- dc.l CascadeText
- dc.l CCCPText
- dc.l ClaasAbrahamText
- dc.l ClonkText
- dc.l CobraText
- dc.l CodersNightmareText
- dc.l CopyLockText
- dc.l CrackerExterminatorText
- dc.l DAGText
- dc.l DAT89Text
- dc.l DatacrimeText
- dc.l DestructorText
- dc.l DetlefText
- dc.l DigitalEmotionsText
- dc.l DisgustText
- dc.l DiskDoktorsText
- dc.l DISKFurunkelText
- dc.l DiskGuardText
- dc.l DiskHerpesText
- dc.l DiskTerminatorText
- dc.l DivinaExterminatorText
- dc.l DottyText
- dc.l DUMDUMText
- dc.l ElectroVisionText
- dc.l EuropeanText
- dc.l ExcrementText
- dc.l ExecutorsText
- dc.l ExtremeText
- dc.l FASTText
- dc.l FastEddieText
- dc.l FICAText
- dc.l ForpibText
- dc.l FrityText
- dc.l fuckdeviceText
- dc.l GadaffiText
- dc.l GermanyText
- dc.l GlasnostText
- dc.l GraffitiText
- dc.l GremlinText
- dc.l GuardiansBootAidsText
- dc.l GXTeamText
- dc.l GyrosText
- dc.l HaukeText
- dc.l HCSText
- dc.l HCSIIText
- dc.l HighlanderText
- dc.l HillyText
- dc.l HODENText
- dc.l IceText
- dc.l IncognitoText
- dc.l IndianaJonesText
- dc.l InfectorText
- dc.l InfluenzaText
- dc.l IngerIQText
- dc.l IngoText
- dc.l JITRText
- dc.l JoshuaText
- dc.l JulieText
- dc.l KaukiText
- dc.l KefrensText
- dc.l KilledText
- dc.l LADSText
- dc.l LameBlameText
- dc.l LamerExterminatoroldText
- dc.l LamerExterminatornewText
- dc.l LamerExterminatorIText
- dc.l LamerExterminatorIIText
- dc.l LamerExterminatorIIIText
- dc.l LamerExterminatorIVText
- dc.l LamerExterminatorVText
- dc.l LamerExterminatorVIText
- dc.l LoverboySexmachineText
- dc.l LSDText
- dc.l MADText
- dc.l MADIIText
- dc.l MallanderText
- dc.l MEXXText
- dc.l MGM89Text
- dc.l MICROSYSTEMSText
- dc.l MOSHText
- dc.l MOSH2Text
- dc.l MutilatorText
- dc.l NastyNastyText
- dc.l NorthStarText
- dc.l NorthStarIIText
- dc.l ObeliskText
- dc.l Obelisk2Text
- dc.l OPAPAText
- dc.l OverkillText
- dc.l PARATAXIText
- dc.l PARATAXIIText
- dc.l PARATAXIIIText
- dc.l PayDayText
- dc.l PentagonSlayerText
- dc.l PentagonSlayer2Text
- dc.l PentagonSlayer3Text
- dc.l PlastiqueText
- dc.l REPText
- dc.l RevengeBootloaderText
- dc.l REVENGEText
- dc.l SachsenText
- dc.l SADDAMHUSSEINText
- dc.l SaoPauloText
- dc.l SATANText
- dc.l SCAText
- dc.l ScarfaceText
- dc.l SendarionText
- dc.l SherlockText
- dc.l ShitText
- dc.l SSText
- dc.l SSIIText
- dc.l SuicideMachineText
- dc.l SuperboyText
- dc.l SupplyTeamText
- dc.l SystemZV30Text
- dc.l SystemZV40Text
- dc.l SystemZV50Text
- dc.l SystemZV51Text
- dc.l SystemZV53Text
- dc.l SystemZV54Text
- dc.l SystemZV61Text
- dc.l SystemZV64Text
- dc.l SystemZV65Text
- dc.l TargetText
- dc.l TelstarText
- dc.l TermigatorText
- dc.l TFCRevengeText
- dc.l TimeBombText
- dc.l TNKText
- dc.l TomatesGentechnic10Text
- dc.l TomatesGentechnic20Text
- dc.l TURKText
- dc.l UltrafoxText
- dc.l UKLamerStyleText
- dc.l USSR492Text
- dc.l VCCofTNTText
- dc.l VIPHSText
- dc.l VirusConstructionSetBootblockText
- dc.l VirusSlayerText
- dc.l VirusV1Text
- dc.l WAFTText
- dc.l WahnfriedText
- dc.l WARHAWKText
- dc.l WarsawAvengerText
- dc.l ZACCESSV10Text
- dc.l ZACCESSV20Text
- dc.l ZACCESSV30Text
- dc.l ZenkerText
- dc.l ZESTText
- dc.l ZLXText
- dc.l ZombiText
-
- even
- BootblockvirusTestbytesList:
- dc.l `Crew`
- dc.l `0012`
- dc.l ` AEK`
- dc.l `A.H.`
- dc.l `HIV!`
- dc.l ` Ken`
- dc.l `ALIE`
- dc.l `AMIG`
- dc.l `Mast`
- dc.l $4EAEFF3A
- dc.l ` PRO`
- dc.l `SV!A`
- dc.l `ASYL`
- dc.l `Aust`
- dc.l `BOUT`
- dc.l `BS1!`
- dc.l `B-Pr`
- dc.l `_BOS`
- dc.l `blac`
- dc.l `lade`
- dc.l `dos.`
- dc.l $332E3100
- dc.l $332E3300
- dc.l `Allo`
- dc.l `Viru`
- dc.l `BAHA`
- dc.l `Band`
- dc.l `NqNq`
- dc.l `os.l`
- dc.l `trac`
- dc.l $61000336
- dc.l $600002E6
- dc.l `DASA`
- dc.l `Casc`
- dc.l `CCCP`
- dc.l $B18536B7
- dc.l `CLON`
- dc.l ` COB`
- dc.l `CODE`
- dc.l $0007F000
- dc.l `CRAC`
- dc.l ` DAG`
- dc.l `T '8`
- dc.l `DATA`
- dc.l `estr`
- dc.l $41FA001A
- dc.l `EMOT`
- dc.l `Viru`
- dc.l ` Dis`
- dc.l `DISK`
- dc.l `DISK`
- dc.l ` H e`
- dc.l `DISK`
- dc.l `dos.`
- dc.l `Dott`
- dc.l `MDUM`
- dc.l `ELEC`
- dc.l `Euro`
- dc.l `EXCR`
- dc.l `XECU`
- dc.l `XTRE`
- dc.l $0007F000
- dc.l $6000FC38
- dc.l `F.I.`
- dc.l `FORP`
- dc.l `rity`
- dc.l `fuck`
- dc.l `GADA`
- dc.l `Germ`
- dc.l `Glas`
- dc.l `fiti`
- dc.l `grap`
- dc.l `-aid`
- dc.l `intu`
- dc.l `GYRO`
- dc.l `Hauk`
- dc.l `H.C.`
- dc.l `H.C.`
- dc.l `HIGH`
- dc.l $0007FF00
- dc.l `HODE`
- dc.l `INC!`
- dc.l $2C790000
- dc.l `iana`
- dc.l $6000FC38
- dc.l `FUCK`
- dc.l `nger`
- dc.l `INGO`
- dc.l `JITR`
- dc.l $00BFE001
- dc.l $E0014E75
- dc.l `dos.`
- dc.l `efre`
- dc.l `Kill`
- dc.l `LADS`
- dc.l $6100FFDE
- dc.l $ABCD0000
- dc.l $ABCD0000
- dc.l $FEDC0000
- dc.l $ABCD0000
- dc.l $ABCD0000
- dc.l $ABCD0000
- dc.l $ABCD0000
- dc.l $ABCD0000
- dc.l ` Sex`
- dc.l `LSD!`
- dc.l `Infe`
- dc.l `cker`
- dc.l `DERK`
- dc.l `MEXX`
- dc.l `MGM8`
- dc.l `MICR`
- dc.l `MOSH`
- dc.l `MOSH`
- dc.l `dos.`
- dc.l `Nast`
- dc.l `Nort`
- dc.l `Nort`
- dc.l `GURU`
- dc.l ` OBE`
- dc.l ` OPA`
- dc.l $4BF90007
- dc.l `TAX `
- dc.l `ATAX`
- dc.l `ATAX`
- dc.l `PayD`
- dc.l `enta`
- dc.l `Circ`
- dc.l `enta`
- dc.l ` P L`
- dc.l `REP!`
- dc.l `Reve`
- dc.l `Reve`
- dc.l $00078400
- dc.l `2000`
- dc.l `PAUL`
- dc.l `SATA`
- dc.l `SCA!`
- dc.l `SCAR`
- dc.l `Send`
- dc.l `ORSI`
- dc.l $6100000A
- dc.l `!SS!`
- dc.l `HEIL`
- dc.l $2C790000
- dc.l `Supe`
- dc.l ` Sup`
- dc.l `3.0 `
- dc.l `4.0 `
- dc.l `5.0 `
- dc.l `5.1 `
- dc.l `V5.3`
- dc.l `V5.4`
- dc.l `V6.1`
- dc.l `V6.4`
- dc.l `V6.5`
- dc.l $43524E00
- dc.l `6.0 `
- dc.l `intu`
- dc.l ` 199`
- dc.l `IME `
- dc.l `TNK!`
- dc.l `OMAT`
- dc.l `Toma`
- dc.l `TURK`
- dc.l $4EF900FC
- dc.l $61000338
- dc.l `Sent`
- dc.l `grap`
- dc.l `VIPH`
- dc.l $00BFE001
- dc.l `VIRU`
- dc.l `sind`
- dc.l $2C780004
- dc.l `AHNF`
- dc.l `WARH`
- dc.l `Wars`
- dc.l `ZACC`
- dc.l `ZACC`
- dc.l `ACCE`
- dc.l `ZENK`
- dc.l `Z.E.`
- dc.l `ZLX!`
- dc.l $075A6F6D
-
- even
- BootblockvirusOffsetList:
- dc.l $000001E0
- dc.l $000003F0
- dc.l $000003D0
- dc.l $000002FC
- dc.l $000003F0
- dc.l $000002D0
- dc.l $00000240
- dc.l $0000001E
- dc.l $0000037A
- dc.l $00000054
- dc.l $00000344
- dc.l $000002F0
- dc.l $00000330
- dc.l $0000036C
- dc.l $000003A0
- dc.l $000003F0
- dc.l $00000338
- dc.l $000003F0
- dc.l $00000010
- dc.l $00000330
- dc.l $0000030E
- dc.l $0000002A
- dc.l $0000002A
- dc.l $0000002A
- dc.l $0000028E
- dc.l $0000032C
- dc.l $00000020
- dc.l $000002A8
- dc.l $000003C2
- dc.l $00000320
- dc.l $00000010
- dc.l $0000000C
- dc.l $000000C0
- dc.l $000003E2
- dc.l $00000054
- dc.l $00000004
- dc.l $000003B8
- dc.l $00000306
- dc.l $0000005A
- dc.l $00000018
- dc.l $00000014
- dc.l $000003BA
- dc.l $000002C0
- dc.l $000001C6
- dc.l $000001F4
- dc.l $00000010
- dc.l $00000280
- dc.l $000001B8
- dc.l $000003E8
- dc.l $000003B2
- dc.l $000002F4
- dc.l $00000390
- dc.l $000003C6
- dc.l $00000096
- dc.l $00000018
- dc.l $00000010
- dc.l $00000010
- dc.l $00000010
- dc.l $00000054
- dc.l $00000348
- dc.l $00000274
- dc.l $00000044
- dc.l $000003F8
- dc.l $000003F2
- dc.l $0000001A
- dc.l $00000018
- dc.l $000002DA
- dc.l $00000040
- dc.l $00000010
- dc.l $00000730
- dc.l $00000390
- dc.l $00000360
- dc.l $00000394
- dc.l $000001E0
- dc.l $0000023E
- dc.l $00000010
- dc.l $00000328
- dc.l $0000034E
- dc.l $0000025C
- dc.l $0000009C
- dc.l $000002D4
- dc.l $000003F0
- dc.l $00000120
- dc.l $00000320
- dc.l $000003F8
- dc.l $00000066
- dc.l $00000014
- dc.l $00000008
- dc.l $00000008
- dc.l $000001F4
- dc.l $00000334
- dc.l $00000298
- dc.l $000003AC
- dc.l $00000264
- dc.l $00000008
- dc.l $00000058
- dc.l $000003A6
- dc.l $00000396
- dc.l $00000342
- dc.l $00000392
- dc.l $000003F4
- dc.l $000003AE
- dc.l $000003AA
- dc.l $00000396
- dc.l $000001E0
- dc.l $000003F0
- dc.l $00000010
- dc.l $000000A0
- dc.l $00000008
- dc.l $000003F0
- dc.l $00000282
- dc.l $000003F4
- dc.l $00000016
- dc.l $00000016
- dc.l $000002A0
- dc.l $000001D6
- dc.l $00000010
- dc.l $00000012
- dc.l $00000038
- dc.l $00000370
- dc.l $00000368
- dc.l $00000014
- dc.l $000003F0
- dc.l $000003B0
- dc.l $00000220
- dc.l $00000010
- dc.l $00000286
- dc.l $00000370
- dc.l $000002DA
- dc.l $00000210
- dc.l $000003F0
- dc.l $00000010
- dc.l $000003E2
- dc.l $00000038
- dc.l $00000012
- dc.l $000002F0
- dc.l $00000280
- dc.l $000003F0
- dc.l $00000308
- dc.l $000003E2
- dc.l $000002F6
- dc.l $00000010
- dc.l $00000012
- dc.l $0000001A
- dc.l $0000032C
- dc.l $000002E2
- dc.l $00000324
- dc.l $0000002C
- dc.l $0000002C
- dc.l $0000002C
- dc.l $0000002C
- dc.l $0000002A
- dc.l $0000002A
- dc.l $0000002A
- dc.l $0000002A
- dc.l $0000002A
- dc.l $0000019C
- dc.l $00000024
- dc.l $000003EC
- dc.l $0000002C
- dc.l $00000342
- dc.l $000003F0
- dc.l $00000182
- dc.l $00000040
- dc.l $00000066
- dc.l $00000036
- dc.l $00000368
- dc.l $00000054
- dc.l $00000168
- dc.l $00000022
- dc.l $00000146
- dc.l $00000010
- dc.l $00000322
- dc.l $00000050
- dc.l $00000312
- dc.l $00000366
- dc.l $00000386
- dc.l $000001D6
- dc.l $00000016
- dc.l $0000027A
- dc.l $00000252
- dc.l $00000332
- dc.l $000003F0
- dc.l $00000184
-
- CPUCrashDummy:
- dc.l $00000000
-
- even
- BootBlock:
- start:
- dc.l $7ECF6BD7
- dc.l 880
- main: lea dosname2(PC),a1
- jsr -96(a6)
- tst.l d0
- beq.S error
- move.l d0,a0
- move.l $16(a0),a0
- moveq #0,d0
- halt: rts
- error: moveq #-1,d0
- bra.S halt
- dosname2: dc.b 'dos.library',0
-
- dc.b `Disk installed by AntiCicloVir V2.3a`,0
- dc.b `Send new viruses to Matthias Gutt * Kantstr. 16 `,0
- dc.b `* 21335 Lueneburg * Germany`,0
- blk.b 900,0
-
- even
- VirusCheck:
- move.l DiskValMem(pc),a5 ;get DiskValMemPtr
- move.l #SADDAM,d4 ;get pathname
- move.l Dosbase(pc),a6 ;get DosBase
- move.l #SADDAM,d1 ;get filename
- move.l #1005,d2 ;mode old
- jsr Open(a6) ;call subroutine
-
- cmp.l #0,d0 ;Error ?
- beq VirusCheckEnde ;Yes, go to VirusCheckEnde
- move.l d0,DiskValHandle ;No, get DiskValHandle
-
- move.l Dosbase(pc),a6 ;get DosBase
- move.l DiskValHandle(pc),d1 ;get DiskValHandle
- move.l a5,d2 ;get filebuffer
- move.l #1848,d3 ;get size
- jsr Read(a6) ;call subroutine
-
- move.l Dosbase(pc),a6 ;get DosBase
- move.l DiskValHandle(pc),d1 ;get DiskValHandle
- jsr Close(a6) ;call subroutine
-
- cmp.l #"BitM",$00000702(a5) ;SADDAM-Virus ?
- beq SADDAMRequest ;Yes !
- cmp.l #$60040000,$00000024(a5) ;RoLE-Virus ?
- beq ReturnRequest ;Yes !
- cmp.l #"trac",$000006C0(a5) ;DiskVal1234-Virus ?
- beq DiskVal1234Request ;Yes !
-
- VirusCheckEnde:
- clr.l DriveLoopCounter ;clear DriveLoopCounter
- clr.l DriveCounter ;clear DriveCounter
- clr.l AddressCounter ;clear AddressCounter
-
- DriveLoop:
- bsr ReadBootblock ;jump to subroutine
- add.l #1,DriveLoopCounter ;count up
- add.l #1,DriveCounter ;count up
- add.l #4,AddressCounter ;count up
- move.l DriveLoopCounter,d0
- cmp.l OpenDriveCount,d0 ;all floppydisks read ?
- bne DriveLoop
-
- DriveLoopEnd:
- sub.l #4,AddressCounter
- sub.l #1,DriveCounter
-
- bra IntuiWait ;Go to IntuiWait
-
-
- SADDAMRequest:
- Requester #SADDAMReq,#ContinueText,#ContinueText,#610,#70
- bsr KillFileVirus2 ;jump to subroutine
- bra VirusCheckEnde ;end VirusCheck
-
- ReturnRequest:
- Requester #ReturnReq,#ContinueText,#ContinueText,#610,#70
- move.l #SADDAM,d4 ;get pathname
- bsr KillFileVirus3 ;jump to subroutine
- bra VirusCheckEnde ;end VirusCheck
-
- DiskVal1234Request:
- Requester #DiskVal1234Req,#ContinueText,#ContinueText,#610,#70
- bsr KillFileVirus2 ;jump to subroutine
- bra VirusCheckEnde ;end VirusCheck
-
- Hochofen:
- lea HochofenText(pc),a0 ;get HochofenTextaddress
- move.l a0,(a3)
- bra AMIGAMemoryVirus ;jump to subroutine
-
- ModemChecker:
- lea ModemCheckerText(pc),a0 ;get ModemCheckerTextaddress
- move.l a0,(a3)
- bra AMIGAMemoryVirus ;jump to subroutine
-
- even
- SADDAMReq:
- dc.b `Disk-Validator: SADDAM Virus !!!`,0
-
- even
- ReturnReq:
- dc.b `Disk-Validator: Return of the Lamer Exterminator virus !!!`,0
-
- even
- DiskVal1234Req:
- dc.b `Disk-Validator: DiskVal1234 virus !!!`,0
-
- DiskValHandle:
- dc.l 0
-
- DiskValMem:
- dc.l 0
-
- even
- SADDAM:
- dc.b `:l/Disk-Validator`,0
-
-
- AMIGAMemoryVirus:
- move.l Intuibase(pc),a6 ;get Intuibase
- lea NewWindow(pc),a0 ;get NewWindow-structure
- jsr OpenWindow(a6) ;call subroutine
- move.l d0,Winhandle ;get Winhandle
-
- move.l #40,d0 ;get counter
- lea VirusName(pc),a0 ;get VirusNamebuffer
-
- ClearVirusNameLoop:
- move.b #00,(a0)+ ;clear the buffer
- sub.l #1,d0 ;count down
- cmp.l #0,d0 ;Zero ?
- bne ClearVirusNameLoop ;No, continue the loop !
-
- lea VirusName(pc),a0 ;get VirusNameBuffer
- move.l (a3),a1 ;get VirusNameText-Address
-
- AMIGAMemoryVirusNameLoop:
- move.b (a1)+,(a0)+ ;write VirusNameText to
- ;VirusNameBuffer
- cmp.b #0,(a1) ;Zero ?
- bne AMIGAMemoryVirusNameLoop ;No, continue the loop !
-
- AMIGAMemoryVirusRequest:
- Requester #MemoryText,#ContinueText,#ContinueText,#610,#70
-
- move.l Winhandle(pc),a0 ;get Winhandle
- move.l Intuibase(pc),a6 ;get Intuibase
- jsr CloseWindow(a6) ;call subroutine
- bra KillMem ;jump to subroutine
-
- even
- MemoryText:
- dc.b `VIRUS IS STILL in memory: `
- Virusname: blk.b 40,0
-
- even
- VirusNameList:
- The16BitCrewText:
- dc.b `16 Bit Crew`,0
-
- even
- The2001Text:
- dc.b `2001`,0
-
- even
- AEKText:
- dc.b `AEK`,0
-
- even
- AHCText:
- dc.b `A.H.C.`,0
-
- even
- AIDSText:
- dc.b `AIDS (SCA)`,0
-
- even
- AIDS2Text:
- dc.b `AIDS (VKill)`,0
-
- even
- AlienNewBeatText:
- dc.b `Alien New Beat V1.0`,0
-
- even
- AmigaFreakText:
- dc.b `AMIGA Freak`,0
-
- even
- AmigaKnightText:
- dc.b `AMIGA Knight`,0
-
- even
- AmigaMasterText:
- dc.b `AMIGA Master`,0
-
- even
- AngelText:
- dc.b `Angel`,0
-
- even
- AntiChristText:
- dc.b `AntiChrist`,0
-
- even
- AntiChristTextText:
- dc.b `AntiChrist-Text`,0
-
- even
- ASSText:
- dc.b `ASS Virusprotector V1.0`,0
-
- even
- ASVText:
- dc.b `ASV V0.000123`,0
-
- even
- AsylantText:
- dc.b `Asylant`,0
-
- even
- AustralianParasiteText:
- dc.b `Australian Parasite`,0
-
- even
- BadBytesText:
- dc.b `Bad Bytes`,0
-
- even
- BamigaSectorOneText:
- dc.b `Bamiga Sector One`,0
-
- even
- BBProtText:
- dc.b `BB-Prot`,0
-
- even
- BeethovenText:
- dc.b `Beethoven`,0
-
- even
- BestialDevastationText:
- dc.b `Bestial Devastation`,0
-
- even
- BGS9Text:
- dc.b `BGS 9`,0
-
- even
- BGS9IIText:
- dc.b `BGS 9 II`,0
-
- even
- BigBossText:
- dc.b `Big Boss`,0
-
- even
- BlackflashText:
- dc.b `Blackflash V2.0`,0
-
- even
- BladeRunnersText:
- dc.b `Blade Runners`,0
-
- even
- BLFText:
- dc.b `BLF`,0
-
- even
- BlizzProV31Text:
- dc.b `Blizz Pro V3.1`,0
-
- even
- BlizzProV33Text:
- dc.b `Blizz Pro V3.3`,0
-
- even
- BlowJobText:
- dc.b `BlowJob`,0
-
- even
- BlueboxText:
- dc.b `BlueBox.icon.library`,0
-
- even
- BootXText:
- dc.b `BootX`,0
-
- even
- BretHawnesText:
- dc.b `Bret Hawnes`,0
-
- even
- ButonicText:
- dc.b `Butonic 1.1`,0
-
- even
- ByteBanditText:
- dc.b `Byte Bandit`,0
-
- even
- ByteBanditPlusText:
- dc.b `Byte Bandit +`,0
-
- even
- ByteBandit2Text:
- dc.b `Byte Bandit 2`,0
-
- even
- ByteBanditturboText:
- dc.b `Byte Bandit turbo`,0
-
- even
- ByteVoyagerText:
- dc.b `BYTE VOYAGER`,0
-
- even
- ByteVoyagerIIText:
- dc.b `Byte Voyager II`,0
-
- even
- ByteWarriorText:
- dc.b `Byte Warrior`,0
-
- even
- CascadeText:
- dc.b `Cascade`,0
-
- even
- CCCPText:
- dc.b `CCCP`,0
-
- even
- ClaasAbrahamText:
- dc.b `Claas Abraham`,0
-
- even
- ClonkText:
- dc.b `CLONK`,0
-
- even
- COBRAText:
- dc.b `COBRA`,0
-
- even
- CodersNightmareText:
- dc.b `Coders Nightmare`,0
-
- even
- CommodoreText:
- dc.b `Commodore`,0
-
- even
- CopyLockText:
- dc.b `CopyLock`,0
-
- even
- ColorText:
- dc.b `Color (TURK V1.3)`,0
-
- even
- CompuPhagozyteText:
- dc.b `CompuPhagozyte`,0
-
- even
- CompuPhagozyte2Text:
- dc.b `CompuPhagozyte 2`,0
-
- even
- CompuPhagozyteIIText:
- dc.b `COMPUPhagozyte II`,0
-
- even
- CompuPhagozyteIIIText:
- dc.b `CompuPhagozyte III A`,0
-
- even
- CompuPhagozyteIIIBCText:
- dc.b `CompuPhagozyte III B/C`,0
-
- even
- CompuPhagozyteIVText:
- dc.b `CompuPhagozyte IV`,0
-
- even
- CrackerExterminatorText:
- dc.b `Cracker Exterminator`,0
-
- even
- Crime2Text:
- dc.b `Crime 2`,0
-
- even
- CrimePlusText:
- dc.b `Crime!++`,0
-
- even
- DStructureText:
- dc.b `D-Structure`,0
-
- even
- DAGText:
- dc.b `DAG`,0
-
- even
- DAGCreatorText:
- dc.b `DAG-Creator`,0
-
- even
- DarthVaderText:
- dc.b `DARTH VADER 1.1`,0
-
- even
- DAT89Text:
- dc.b `DAT '89`,0
-
- even
- DatacrimeText:
- dc.b `Datacrime`,0
-
- even
- DestructorText:
- dc.b `Destructor V1.2`,0
-
- even
- DetlefText:
- dc.b `Detlef`,0
-
- even
- DigitalEmotionsText:
- dc.b `DIGITAL EMOTIONS`,0
-
- even
- DisasterMasterText:
- dc.b `DISASTER-MASTER V2`,0
-
- even
- DisgustText:
- dc.b `Disgust`,0
-
- even
- DiskDoktorsText:
- dc.b `Disk-Doktors`,0
-
- even
- DISKFurunkelText:
- dc.b `DISK-Furunkel`,0
-
- even
- DiskguardText:
- dc.b `DISK GUARD V1.0`,0
-
- even
- DiskHerpesText:
- dc.b `Disk-Herpes`,0
-
- even
- DiskKillerText:
- dc.b `DISK-KILLER V1.0`,0
-
- even
- DiskTerminatorText:
- dc.b `Disk-Terminator`,0
-
- even
- DisktroyerV10Text:
- dc.b `Disktroyer V1.0`,0
-
- even
- DisktroyerV20Text:
- dc.b `Disktroyer V2.0`,0
-
- even
- DiskVal1234Text:
- dc.b `Disk-Val1234`,0
-
- even
- DivinaExterminatorText:
- dc.b `Divina Exterminator`,0
-
- even
- DMTrashText:
- dc.b `DM-Trash`,0
-
- even
- DottyText:
- dc.b `Dotty`,0
-
- even
- DriveInfoText:
- dc.b `Drive Info(Crime!Linkvirus)`,0
-
- even
- DUMDUMText:
- dc.b `DUMDUM`,0
-
- even
- ElectroVisionText:
- dc.b `ELECTRO.VISION`,0
-
- even
- EuropeanText:
- dc.b `European`,0
-
- even
- ExcrementText:
- dc.b `EXCREMENT`,0
-
- even
- ExcrementCreatorText:
- dc.b `EXCREMENT Creator`,0
-
- even
- ExecutorsText:
- dc.b `EXECUTORS`,0
-
- even
- ExtremeText:
- dc.b `EXTREME`,0
-
- even
- FASTText:
- dc.b `F.A.S.T`,0
-
- even
- FastEddieText:
- dc.b `Fast Eddie`,0
-
- even
- FICAText:
- dc.b `FICA`,0
-
- even
- ForpibText:
- dc.b `FORPIB`,0
-
- even
- FreedomText:
- dc.b `Freedom!`,0
-
- even
- FrityText:
- dc.b `Frity`,0
-
- even
- fuckdeviceText:
- dc.b `fuck.device`,0
-
- even
- GadaffiText:
- dc.b `GADAFFI`,0
-
- even
- GermanyText:
- dc.b `Germany`,0
-
- even
- GlasnostText:
- dc.b `GLASNOST`,0
-
- even
- GoldenRiderText:
- dc.b `Golden Rider`,0
-
- even
- GotchaLamerText:
- dc.b `Gotcha Lamer`,0
-
- even
- GotchaLamerCreatorText:
- dc.b `Gotcha Lamer Creator`,0
-
- even
- GraffitiText:
- dc.b `Graffiti`,0
-
- even
- GremlinText:
- dc.b `Gremlin`,0
-
- even
- GuardiansBootAidsText:
- dc.b `Guardians BootAids`,0
-
- even
- GXTeamText:
- dc.b `GX.Team`,0
-
- even
- GyrosText:
- dc.b `GYROS`,0
-
- even
- GZUSText:
- dc.b `G-Zus`,0
-
- even
- HARDEXText:
- dc.b `HARDEX`,0
-
- even
- HaukeText:
- dc.b `Hauke`,0
-
- even
- HCSText:
- dc.b `H.C.S`,0
-
- even
- HCSIIText:
- dc.b `H.C.S II`,0
-
- even
- HighlanderText:
- dc.b `HIGHLANDER`,0
-
- even
- HillyText:
- dc.b `Hilly`,0
-
- even
- HochofenText:
- dc.b `Hochofen`,0
-
- even
- HODENText:
- dc.b `HODEN V33.17`,0
-
- even
- IceText:
- dc.b `ICE`,0
-
- even
- IncognitoText:
- dc.b `Incognito`,0
-
- even
- IndianaJonesText:
- dc.b `Indiana Jones`,0
-
- even
- InfectorText:
- dc.b `Infector`,0
-
- even
- InfluenzaText:
- dc.b `INFLUENZA`,0
-
- even
- IngerIQText:
- dc.b `Inger IQ`,0
-
- even
- IngoText:
- dc.b `INGO`,0
-
- even
- IngosReturnText:
- dc.b `INGOs Return`,0
-
- even
- IntelText:
- dc.b `INTEL`,0
-
- even
- IRQText:
- dc.b `IRQ`,0
-
- even
- JeffBUTONICV131Text:
- dc.b `Jeff BUTONIC V1.31`,0
-
- even
- JeffBUTONICV300Text:
- dc.b `Jeff BUTONIC V3.00`,0
-
- even
- JITRText:
- dc.b `JITR`,0
-
- even
- JoshuaText:
- dc.b `Joshua`,0
-
- even
- Joshua2Text:
- dc.b `Joshua 2`,0
-
- even
- JulieText:
- dc.b `Julie`,0
-
- even
- KaukiText:
- dc.b `Kauki`,0
-
- even
- KefrensText:
- dc.b `Kefrens`,0
-
- even
- KilledText:
- dc.b `Killed`,0
-
- even
- LADSText:
- dc.b `LADS`,0
-
- even
- LAMEText:
- dc.b `LAME`,0
-
- even
- LameBlameText:
- dc.b `Lame Blame!`,0
-
- even
- LamerExterminatoroldText:
- dc.b `old LAMER Exterminator`,0
-
- even
- LamerExterminatoroldIIIText:
- dc.b `(old) LAMER Exterminator (III)`,0
-
- even
- LamerExterminatornewText:
- dc.b `new Lamer Exterminator`,0
-
- even
- LamerExterminatorIText:
- dc.b `LAMER Exterminator I`,0
-
- even
- LamerExterminatorIIText:
- dc.b `LAMER Exterminator II`,0
-
- LamerExterminatorIIIText:
- dc.b `LAMER Exterminator III`,0
-
- even
- LamerExterminatorIVText:
- dc.b `LAMER Exterminator IV`,0
-
- even
- LamerExterminatorIVVText:
- dc.b `LAMER Exterminator IV or V`,0
-
- even
- LamerExterminatorVText:
- dc.b `LAMER Exterminator V`,0
-
- even
- LamerExterminatorVIText:
- dc.b `LAMER Exterminator VI`,0
-
- even
- LamerExterminatorVIItext:
- dc.b `LAMER Exterminator VII`,0
-
- even
- LamerExterminatorVIIIText:
- dc.b `LAMER Exterminator VIII`,0
-
- even
- LamerLoadWBText:
- dc.b `LAMER LoadWB`,0
-
- even
- LamerVirusXText:
- dc.b `LAMER VirusX`,0
-
- even
- Liberatorv121Text:
- dc.b `Liberator v1.21`,0
-
- even
- Liberatorv30Text:
- dc.b `Liberator v3.0`,0
-
- even
- Liberatorv501Text:
- dc.b `Liberator v5.01`,0
-
- even
- LOOMText:
- dc.b `LOOM`,0
-
- even
- LoverboySexmachineText:
- dc.b `Loverboy & Sexmachine`,0
-
- even
- LSDText:
- dc.b `LSD`,0
-
- even
- MADText:
- dc.b `MAD`,0
-
- even
- MADIIText:
- dc.b `MAD II`,0
-
- even
- MallanderText:
- dc.b `MALLANDER V1.0`,0
-
- even
- MENEMSREVENGEText:
- dc.b `MENEMs REVENGE`,0
-
- even
- MEXXText:
- dc.b `MEXX`,0
-
- even
- MGM89Text:
- dc.b `MGM 89`,0
-
- even
- MICROSYSTEMSText:
- dc.b `MICROSYSTEMS`,0
-
- even
- ModemCheckerText:
- dc.b `MODEMCHECKER`,0
-
- even
- ModemCheckerLoadWBText:
- dc.b `MODEMCHECKER LoadWB`,0
-
- even
- MOSHText:
- dc.b `MOSH`,0
-
- even
- MOSH2Text:
- dc.b `MOSH 2`,0
-
- even
- MutilatorText:
- dc.b `Mutilator`,0
-
- even
- NANOoldText:
- dc.b `old NANO`,0
-
- even
- NanonewText:
- dc.b `Nano (new)`,0
-
- even
- NaSTText:
- dc.b `NaST`,0
-
- even
- NastyNastyText:
- dc.b `Nasty-nasty`,0
-
- even
- NoGuruV20Text:
- dc.b `No Guru V2.0`,0
-
- even
- NorthStarText:
- dc.b `NORTH STAR`,0
-
- even
- NorthStarIIText:
- dc.b `NORTH STAR II`,0
-
- even
- ObeliskText:
- dc.b `OBELISK`,0
-
- even
- Obelisk2Text:
- dc.b `OBELISK 2`,0
-
- even
- OPAPAText:
- dc.b `OPAPA`,0
-
- even
- OverkillText:
- dc.b `Overkill`,0
-
- even
- PARATAXIText:
- dc.b `PARATAX I`,0
-
- even
- PARATAXIIText:
- dc.b `PARATAX II`,0
-
- even
- PARATAXIIIText:
- dc.b `PARATAX III`,0
-
- even
- PayDayText:
- dc.b `PayDay`,0
-
- even
- PentagonSlayerText:
- dc.b `Pentagon-Slayer`,0
-
- even
- PentagonSlayer2Text:
- dc.b `Pentagon-Slayer 2`,0
-
- even
- PentagonSlayer3Text:
- dc.b `Pentagon-Slayer 3`,0
-
- even
- PlastiqueText:
- dc.b `Plastique`,0
-
- even
- PPBombText:
- dc.b `PP-Bomb`,0
-
- even
- QRDLText:
- dc.b `QRDL 1.1`,0
-
- even
- RedOctoberText:
- dc.b `Red October 1.7`,0
-
- even
- REPText:
- dc.b `REP!`,0
-
- even
- ReturnoftheLamerExterminatorText:
- dc.b `Return of the Lamer Exterminator`,0
-
- even
- RevengeBootloaderText:
- dc.b `Revenge Bootloader`,0
-
- even
- RevengeOfTheLamerExterminatorText:
- dc.b `Revenge Of The LAMER Exterminator`,0
-
- even
- RevengeOfTheLamerExterminator2Text:
- dc.b `Revenge Of The LAMER Exterminator 2`,0
-
- even
- REVENGEText:
- dc.b `REVENGE V1.2`,0
-
- even
- RISCText:
- dc.b `RISC`,0
-
- even
- SachsenText:
- dc.b `SACHSEN No.1`,0
-
- even
- SADDAMText:
- dc.b `SADDAM`,0
-
- even
- SADDAMHUSSEINText:
- dc.b `SADDAM HUSSEIN`,0
-
- even
- SaoPauloText:
- dc.b `Sao Paulo`,0
-
- even
- SATANText:
- dc.b `SATAN`,0
-
- even
- SCAText:
- dc.b `SCA`,0
-
- even
- SCARFACEText:
- dc.b `SCARFACE`,0
-
- even
- SendarionText:
- dc.b `Sendarion #1`,0
-
- even
- SEPULTURAText:
- dc.b `SEPULTURA`,0
-
- even
- SherlockText:
- dc.b `Sherlock2.0`,0
-
- even
- ShitText:
- dc.b `Shit`,0
-
- even
- ShowSysopText:
- dc.b `ShowSysop`,0
-
- even
- SmilyCancerText:
- dc.b `Smily Cancer`,0
-
- even
- SmilyCancerLoadWBText:
- dc.b `Smily Cancer LoadWB`,0
-
- even
- SnoopDosText:
- dc.b `SnoopDos 1.6`,0
-
- even
- SonjaText:
- dc.b `Sonja`,0
-
- even
- SSText:
- dc.b `SS`,0
-
- even
- SSIIText:
- dc.b `SS II`,0
-
- even
- SuicideMachineText:
- dc.b `Suicide Machine`,0
-
- even
- SuperboyText:
- dc.b `Superboy`,0
-
- even
- SupplyTeamText:
- dc.b `Supply Team`,0
-
- even
- SystemZV30Text:
- dc.b `System Z V3.0`,0
-
- even
- systemZV40Text:
- dc.b `System Z V4.0`,0
-
- even
- SystemZV50Text:
- dc.b `System Z V5.0`,0
-
- even
- SystemZV51Text:
- dc.b `System Z V5.1`,0
-
- even
- SystemZV53Text:
- dc.b `System Z V5.3`,0
-
- even
- SystemZV54Text:
- dc.b `System Z V5.4`,0
-
- even
- SystemZV61Text:
- dc.b `System Z V6.1`,0
-
- even
- SystemZV64Text:
- dc.b `System Z V6.4`,0
-
- even
- SystemZV65Text:
- dc.b `System Z V6.5`,0
-
- even
- TargetText:
- dc.b `TARGET`,0
-
- even
- TelecomText:
- dc.b `Telecom`,0
-
- even
- TelStarText:
- dc.b `TelStar`,0
-
- even
- TermigatorText:
- dc.b `Termigator`,0
-
- even
- TerroristsText:
- dc.b `Terrorists`,0
-
- even
- TFCRevengeText:
- dc.b `T.F.C. Revenge`,0
-
- even
- TFCRevengeLoadWBText:
- dc.b `T.F.C. Revenge LoadWB`,0
-
- even
- TimeBombText:
- dc.b `TIME BOMB 1.0`,0
-
- even
- TimeBombV09Text:
- dc.b `TIME BOMB V0.9`,0
-
- even
- TNKText:
- dc.b `TNK!`,0
-
- even
- TomatesGentechnic10Text:
- dc.b `TOMATES GENTECHNIC 1.0`,0
-
- even
- TomatesGentechnic20Text:
- dc.b `TOMATES GENTECHNIC 2.0`,0
-
- even
- TravelingJackText:
- dc.b `Traveling Jack`,0
-
- even
- TravelingJack2Text:
- dc.b `Traveling Jack 2`,0
-
- even
- TravelingJackTextText:
- dc.b `Traveling Jack-Text`,0
-
- even
- TURKText:
- dc.b `TURK V1.3`,0
-
- even
- UltrafoxText:
- dc.b `Ultrafox`,0
-
- even
- UKLamerStyleText:
- dc.b `UK Lamer Style`,0
-
- USSR492Text:
- dc.b `USSR 492`,0
-
- even
- VCCofTNTText:
- dc.b `VCC of TNT`,0
-
- even
- VIPHSText:
- dc.b `VIPHS`,0
-
- even
- VirusConstructionSetText:
- dc.b `Virus Construction Set`,0
-
- even
- VirusConstructionSetBootblockText:
- dc.b `Virus Construction Set-Bootblock`,0
-
- even
- VirusSlayerText:
- dc.b `Virus Slayer`,0
-
- even
- VirusV1Text:
- dc.b `Virus V1`,0
-
- even
- WAFTText:
- dc.b `WAFT`,0
-
- even
- WahnfriedText:
- dc.b `WAHNFRIED`,0
-
- even
- WARHAWKText:
- dc.b `WARHAWK`,0
-
- even
- WarsawAvengerText:
- dc.b `Warsaw Avenger`,0
-
- even
- XenoText:
- dc.b `Xeno`,0
-
- even
- xprzspeedV32Text:
- dc.b `xprzspeed V3.2`,0
-
- even
- ZaccessV10Text:
- dc.b `ZACCESS V1.0`,0
-
- even
- ZaccessV20Text:
- dc.b `ZACCESS V2.0`,0
-
- even
- ZaccessV30Text:
- dc.b `ZACCESS V3.0`,0
-
- even
- ZenkerText:
- dc.b `ZENKER`,0
-
- even
- ZESTText:
- dc.b `Z.E.S.T`,0
-
- even
- ZLXText:
- dc.b `ZLX!`,0
-
- even
- ZombiText:
- dc.b `Zombi I`,0
-
-