home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / disk / antivirus_utils / anticiclovir / anticiclovir.s < prev    next >
Text File  |  1995-02-27  |  97KB  |  5,099 lines

  1. ; program       : AntiCicloVir
  2. ; programsort   : Viruskiller
  3. ; versionsnr.   : 2.3a
  4. ; genesis date  : 17.09.1994
  5. ; author        : Mathias Gutt
  6. ;                 Kantstr. 16
  7. ;          21335 Lüneburg
  8. ;          Tel.: 04131/49624
  9. ;          Germany
  10. ; This program shows a simple form of virus-hunting
  11. ; and so I hope, some novices can find some useful
  12. ; routines in AntiCicloVir.
  13. ; AntiCicloVir is completely Public Domain and that
  14. ; means, you can do everything with the program
  15. ; and this source, but read the docs !!!
  16. ; You can put out some routines from AntiCicloVir, to
  17. ; include them into your own program, or you may use
  18. ; AntiCicloVir as base for your own viruskiller, but
  19. ; it is not allowed, to use the same name !!!
  20. ; AntiCicloVir shows the system-vectors to you,
  21. ; looks for known viruses in memory, in the bootsectors
  22. ; of every disk from every drive and checks directories
  23. ; and files for viruses ...
  24. ; I used the masterseka v1.51 to write this one.
  25. ; Please excuse my bad anglian !!!
  26. ; I know, that this source is not the best one, but
  27. ; if you have some questions, please write me !
  28.  
  29.  
  30. Execbase = 4
  31. MEMF_PUBLIC = 1
  32. MEMF_CHIP = 2
  33. MEMF_FAST = 4
  34. MEMF_CLEAR = 65536
  35. MEMF_LARGEST = 131072
  36.  
  37. Addport = -354
  38. AllocMem = -198
  39. AllocSignal = -330
  40. AutoRequest = -348
  41. Close = -36
  42. CloseDevice = -450
  43. CloseLibrary = -414
  44. CloseWindow = -72
  45. CopyMem = -624
  46. CurrentDir = -126
  47. Delay = -$00C6
  48. DeleteFile = -$0048
  49. DisplayAlert = -90
  50. DoIORoutine = -456
  51. Examine = -102
  52. ExNext = -108
  53. FreeMem = -210
  54. FreeSignal = -336
  55. FindName = -276
  56. FindTask = -294
  57. GetMsg = -372
  58. Lock = -84
  59. Open = -$001E
  60. OpenDeviceRoutine = -444
  61. OldOpenLibrary = -408
  62. OpenWindow = -204
  63. Read = -42
  64. RemPort = -360
  65. Rename = -78
  66. SetProtection = -186
  67. SetWindowTitles = -276
  68. UnLock = -90
  69. WaitIO = -474
  70. WaitPort = -384
  71. Write = -$0030
  72.  
  73. Requester: MACRO        ;Macro
  74. lea AutoRequestTextPtr(pc),a0    ;get RequestText
  75. move.l ?1,(a0)            
  76. lea GadgetTextPtr(pc),a0    ;get GadgetText
  77. move.l ?2,(a0)
  78. lea GadgetText2Ptr(pc),a0    ;get next GadgetText
  79. move.l ?3,(a0)
  80. move.l #0,a0            
  81. lea AutoRequestText(pc),a1    ;get RequestText-structure    
  82. lea GadgetText(pc),a2        ;get GadgetText-structure
  83. lea GadgetText2(pc),a3        ;get GadgetText2-structure
  84. moveq #0,d0            ;no IDCMP-Flag
  85. moveq #0,d1            ;no IDMCP-Flag
  86. move.l ?4,d2            ;get Width for Request
  87. move.l ?5,d3            ;get Height for Request
  88. move.l Intuibase(pc),a6        ;get Intuibase
  89. jsr AutoRequest(a6)        ;call subroutine
  90. ENDM                ;end of macro
  91.  
  92. Requesterold: MACRO        ;Macro
  93. move.l #0,a0
  94. lea ?1,a1            ;get RequestText-structure
  95. lea ?2,a2            ;get GadgetText-structure
  96. lea ?3,a3            ;get Gadget2Text-structure
  97. moveq #0,d0            ;no IDCMP-Flag
  98. moveq #0,d1            ;no IDCMP-Flag
  99. move.l ?4,d2            ;get Width for Requester
  100. move.l ?5,d3            ;get Heigth for Requester
  101. move.l Intuibase(pc),a6        ;get Intuibase
  102. jsr AutoRequest(a6)        ;call subroutine
  103. ENDM                ;end of macro
  104.  
  105.  
  106. move.l a0,ParamAddress        ;get ParamAddress
  107. move.l d0,ParamLength        ;get ParamLength
  108.  
  109. ;WBStartup-Head
  110. ;This routine tries to find out, if AntiCicloVir was
  111. ;called from the Workbench or from the Shell.
  112.  
  113. move.l ExecBase,a6
  114. suba.l a1,a1
  115. jsr FindTask(a6)
  116. move.l d0,a4
  117. tst.l 172(a4)
  118. bne clicall            ;was called from shell
  119.  
  120. lea 92(a4),a0
  121. jsr WaitPort(a6)
  122. lea 92(a4),a0
  123. jsr GetMsg(a6)
  124. bra WBcall            ;was called from WB
  125.  
  126. clicall:
  127. bsr GetPara
  128. move.l Paramaddress(pc),a0
  129.  
  130. cmp.b #"-",(a0)+        ;look for option-line
  131. bne ScanFiles            ;if not go to scanfiles
  132.  
  133. Option:
  134. cmp.b #"c",(a0)            ;look for option c
  135. beq fastcheckset        ;if yes, go to fastcheckset
  136. cmp.b #"m",(a0)            ;look for option m
  137. beq Clicall2            ;if yes, go to Clicall2
  138. fastcheckset:
  139. move.b #$FF,fastcheck        ;set fastcheck-flag
  140.  
  141. Clicall2:
  142. move.b #$FF,StartupFlag        ;set StartupFlag
  143.  
  144. WBcall:
  145. ; This one is a little color-cycling, to greet the
  146. ; user !
  147.  
  148. Colors:
  149. add.l #$00070007,d0
  150. cmp.l #$00FF00FF,d0
  151. bge AntiCicloVir
  152. move.w #1,d1
  153.  
  154. Colorcycling:
  155. move.b $dff005,d2
  156.  
  157. ColorcyclingLoop:
  158. move.l d0,$dff180
  159. move.l d0,$dff184
  160. cmp.b $dff005,d2
  161.  
  162. beq.s ColorcyclingLoop
  163. dbra d1,ColorCycling
  164. bra Colors
  165.  
  166. AntiCicloVir:
  167. bsr OpenDos            ;open DosLib
  168. cmp.l #0,d0            ;error ?
  169. beq Ende            ;Yes, end it !
  170. move.l d0,Dosbase        ;No, get DosBase
  171. bsr OpenIntui            ;open IntuiLib
  172. cmp.l #0,d0            ;error ?
  173. beq CloseDos            ;Yes, close DosLib
  174. move.l d0,Intuibase        ;No, get Intuibase
  175. cmp.b #$FF,StartupFlag        ;was Startup-flag set ?
  176. bne WBStart            ;No, go to WBStart
  177. bsr OpenWin            ;open DOS-window
  178. cmp.l #0,d0            ;error ?
  179. beq CloseDos            ;Yes, close DosLib
  180. move.l d0,Handle        ;No, get Handle
  181.  
  182. WBStart:
  183. bsr vectors_table        ;show system-vectors
  184. cmp.b #$FF,StartupFlag        ;was Startup-flag set ?
  185. bne WBStart2            ;No, go to WBStart2
  186. bsr Print            ;print my message
  187.  
  188. WBStart2:
  189. bsr CheckMem            ;check memory for viruses
  190. cmp.b #$FF,StartupFlag        ;was Startup-flag set ?
  191. bne WBStart3            ;No, go to WBStart3
  192. bsr CloseWin            ;close DOS-Window
  193.  
  194. WBStart3:
  195. bsr CloseIntui            ;close IntuiLib
  196. bra CloseDos            ;close DosLib
  197.  
  198. ScanFiles:
  199. bsr OpenDos            ;open DosLib
  200. cmp.l #0,d0            ;error ?
  201. beq Ende            ;Yes, and good bye !
  202. move.l d0,Dosbase        ;No, get DosBase
  203. bsr OpenIntui            ;open IntuiLib
  204. cmp.l #0,d0            ;error ?
  205. beq CloseDos            ;Yes, end it !
  206. move.l d0,Intuibase        ;No, get Intuibase
  207. bsr OpenWin            ;open DOS-window
  208. cmp.l #0,d0            ;error ?
  209. beq CloseDos            ;Yes, close DosLib
  210. move.l d0,Handle        ;No, get Handle
  211. bsr Print            ;print my message
  212. move.b #$FF,fastcheck        ;set fastcheck-flag
  213. bsr CheckMem            ;check memory for viruses
  214. move.l ExecBase,a6        ;get ExecBase
  215. move.l #MEMF_CHIP!MEMF_CLEAR!MEMF_LARGEST,d1
  216. move.l #260,d0            ;allocate 260 B
  217. jsr AllocMem(a6)        ;connected CHIP-RAM !
  218. tst.l d0            ;error ?
  219. beq notenough            ;Yes, print notenough
  220. move.l d0,FileInfoBlockMem    ;No, get MemPtr
  221. move.l ExecBase,a6        ;get ExecBase
  222. move.l #MEMF_CHIP!MEMF_LARGEST,d1;allocate $5000 bytes
  223. move.l #$5000,d0        ;connected CHIP-RAM !
  224. jsr AllocMem(a6)
  225. tst.l d0            ;error ?
  226. beq notenough            ;Yes, print notenough
  227. move.l d0,FileMem        ;No, get MemPtr
  228. bsr GetLock            ;Go to GetLock
  229. cmp.l #0,d0            ;error ?
  230. beq ScanFilesEnd        ;Yes, end all !
  231. move.l d0,LockHandle        ;No, get Lock
  232. bsr ExamineIt            ;examine file
  233. cmp.l #0,d0            ;error ?
  234. beq FileTestEnd            ;Yes, go to FileTestEnd
  235. move.l FileInfoBlockMem(pc),a0    ;No, get FileInfoBlock 
  236. cmp.l #0,4(a0)            ;directory ?
  237. ble FileTest            ;No, go to filetest
  238.  
  239. DirectoryTest:            ;Yes !
  240. bsr MakeCurrentDir        ;branch to MakeCurrentDir
  241. move.l d0,OldLock        ;get old Lock
  242. bra Seek2            ;branch to Seek2
  243.  
  244. Seek:
  245. bsr CheckFile            ;branch to CheckFile
  246. Seek2:            
  247. bsr ExNextIt            ;get next FIB-datas
  248. cmp.l #0,d0            ;more datas ?
  249. bne Seek            ;Yes, go to Seek
  250. bsr UnLockIt            ;No, unlock it
  251. bsr OldCurrentDir        ;branch to OldCurrentDir
  252. bra ScanFilesEnd        ;end scanfiles
  253.  
  254. FileTest:
  255. lea Directory(pc),a0        ;get Directory
  256. move.l ParamLength,d0        ;get ParamLength
  257.  
  258. PathLoop:
  259. cmp.b #":",(a0)            ;look for :
  260. beq GetDirectoryname        ;Yes, get directoryname
  261. cmp.b #"/",(a0)+        ;look for /
  262. beq GetDirectoryname        ;Yes, get directoryname
  263. sub.l #1,d0            ;count down
  264. cmp.l #0,d0            ;zero ?
  265. bne PathLoop            ;No, continue loop !
  266. bra FileTest2            ;Yes, go to FileTest2
  267.  
  268. GetDirectoryName:
  269. move.b #$FF,FileFlag        ;set FileFlag
  270. lea Directory(pc),a0        ;get Directory
  271. move.l ParamLength,d0        ;get ParamLegth
  272. add.l d0,a0            ;add lentgh to address
  273.  
  274. DirectoryNameLoop:
  275. cmp.b #":",(a0)            ;look for :
  276. beq MakeCurrentPath        ;Yes, go to MakeCurrentPath
  277. cmp.b #"/",(a0)            ;look for /
  278. beq MakeCurrentPath        ;Yes, go to MakeCurrentPath
  279. sub.l #1,a0            ;count down
  280. sub.l #1,d0            ;count down
  281. cmp.l #0,d0            ;zero ?
  282. bne DirectoryNameLoop        ;No, continue loop !
  283. bra FileTest2            ;Yes, go to FileTest2
  284.  
  285. MakeCurrentPath:
  286. move.b #00,1(a0)        ;clear last byte
  287. bsr GetLock            ;go to GetLock
  288. cmp.l #0,d0            ;error ?
  289. beq FileTestEnd            ;Yes, end FileTest
  290. move.l d0,FileLockHandle    ;No, get Lock
  291. bsr MakeCurrentFileDir        ;branch to MakeCurrentFileDir
  292. move.l d0,OldLock        ;get old Lock
  293.  
  294. FileTest2:
  295. bsr CheckFile            ;branch to CheckFile
  296. cmp.b #$FF,FileFlag        ;was FileFlag set ?
  297. bne FileTestEnd            ;No, end FileTest
  298.  
  299. bsr UnLockFilePath        ;Yes, unlock filepath
  300. bsr OldCurrentDir        ;branch to OldCurrentDir
  301.  
  302. FileTestEnd:
  303. bsr UnLockIt            ;unlock file
  304. bra ScanFilesEnd        ;end scanfiles
  305.  
  306. GetPara:
  307. move.l Paramaddress(pc),a0    ;get Paramaddress
  308. lea Directory(pc),a1        ;get Directory
  309.  
  310. ParaLoop:
  311. move.b (a0)+,(a1)+        ;copy Parameter to Directory
  312. cmp.b #10,(a0)            ;Returncode ?
  313. bne ParaLoop            ;No, continue loop !
  314.  
  315. ParaLoopEnde:
  316. move.b #0,(a1)            ;Yes, remove returncode
  317. rts                ;return from subroutine
  318.  
  319. OpenDos:
  320. move.l ExecBase,a6        ;get ExecBase
  321. lea Dosname(pc),a1        ;get LibName
  322. move.l #0,d0            ;any version
  323. jsr OldOpenLibrary(a6)        ;call subroutine
  324. rts                ;return from subroutine
  325.  
  326. OpenIntui:
  327. move.l ExecBase,a6        ;get ExecBase
  328. lea Intuiname(pc),a1        ;get LibName
  329. move.l #0,d0            ;any version
  330. jsr OldOpenLibrary(a6)        ;call subroutine
  331. rts                ;return from subroutine
  332.  
  333. OpenWin:
  334. move.l Dosbase(pc),a6        ;get DosBase
  335. move.l #DOSWin,d1        ;get Window-address
  336. move.l #1006,d2            ;new mode
  337. jsr Open(a6)            ;call subroutine
  338. rts                ;return from subroutine
  339.  
  340. Print:
  341. move.l #Text,d2            ;get Text-Startaddress
  342. move.l #Textende,d3        ;get Text-Endaddress
  343. bsr PrintDOSText        ;jump to subroutine
  344. rts                ;return from subroutine
  345.  
  346. notenough:
  347. move.l #notenoughText,d2    ;get Text-Startaddress
  348. move.l #notenoughTextende,d3    ;get Text-Endaddress
  349. bsr PrintDOSText        ;jump to subroutine
  350. rts                ;return from subroutine
  351.  
  352. NoMemAlert:
  353. move.l Intuibase(pc),a6        ;get Intuibase
  354. move.l #40,d1            ;get Alert-Heigth
  355. lea string(pc),a0        ;get string-address
  356. jsr DisplayAlert(a6)        ;call subroutine
  357. rts                ;return from subroutine
  358.  
  359. CloseWin:
  360. move.l Handle(pc),d1        ;get Handle
  361. move.l Dosbase(pc),a6        ;get DosBase
  362. jsr Close(a6)            ;call subroutine
  363. rts                ;return from subroutine
  364.  
  365. CloseIntui:
  366. move.l ExecBase,a6        ;get ExecBase
  367. move.l Intuibase(pc),a1        ;get IntuiBase
  368. jsr CloseLibrary(a6)        ;call subroutine
  369. rts                ;return from subroutine
  370.  
  371. CloseDos:
  372. move.l ExecBase,a6        ;get ExecBase
  373. move.l Dosbase(pc),a1        ;get DosBase
  374. jsr CloseLibrary(a6)        ;call subroutine
  375. clr.l d0            ;clear d0
  376.  
  377. Ende:
  378. rts                ;return from subroutine
  379.  
  380. GetLock:
  381. move.l Dosbase(pc),a6        ;get DosBase
  382. move.l #Directory,d1        ;get Directory
  383. move.l #72,d2            ;read mode
  384. jsr Lock(a6)            ;call subroutine
  385. rts                ;return from subroutine
  386.  
  387. MakeCurrentDir:
  388. move.l Dosbase(pc),a6        ;get DosBase
  389. move.l LockHandle(pc),d1    ;get Lock
  390. jsr CurrentDir(a6)        ;call subroutine
  391. rts                ;return from subroutine
  392.  
  393. MakeCurrentFileDir:
  394. move.l Dosbase(pc),a6        ;get DosBase
  395. move.l FileLockHandle(pc),d1    ;get Lock
  396. jsr CurrentDir(a6)        ;call subroutine
  397. rts                ;return from subroutine
  398.  
  399. ExamineIt:
  400. move.l Dosbase(pc),a6        ;get DosBase
  401. move.l LockHandle(pc),d1    ;get Lock
  402. move.l FileInfoBlockMem(pc),d2    ;get FileInfoBlock-structure
  403. jsr Examine(a6)            ;call subroutine
  404. rts                ;return from subroutine
  405.  
  406. ExNextIt:
  407. move.l Dosbase(pc),a6        ;get DosBase
  408. move.l LockHandle(pc),d1    ;get Lock
  409. move.l FileInfoBlockMem(pc),d2     ;get FileInfoBlock-structure
  410. jsr ExNext(a6)            ;call subroutine
  411. rts                ;return from subroutine
  412.  
  413. UnLockIt:
  414. move.l Dosbase(pc),a6        ;get DosBase
  415. move.l LockHandle(pc),d1    ;get Lock
  416. jsr UnLock(a6)            ;call subroutine
  417. rts                ;return from subroutine
  418.  
  419. UnLockFilePath:
  420. move.l Dosbase(pc),a6        ;get DosBase
  421. move.l FileLockHandle(pc),d1    ;get FileInfoBlock-structure
  422. jsr UnLock(a6)            ;call subroutine
  423. rts                ;return from subroutine
  424.  
  425. OldCurrentDir:
  426. move.l Dosbase(pc),a6        ;get DosBase
  427. move.l OldLock(pc),d1        ;get old lock
  428. jsr CurrentDir(a6)        ;call subroutine
  429. rts                ;return from subroutine
  430.  
  431. ScanFilesEnd:
  432. move.l ExecBase,a6        ;get ExecBase
  433. move.l #260,d0            ;deallocate 260 Bytes
  434. move.l FileInfoBlockMem(pc),a1    ;memory from the
  435. jsr FreeMem(a6)            ;FileInfoBlock-structure
  436.  
  437. move.l ExecBase,a6        ;get ExecBase
  438. move.l #$5000,d0        ;deallocate $5000 Bytes
  439. move.l FileMem(pc),a1        ;memory from the
  440. jsr Freemem(a6)            ;filebuffer
  441.  
  442. bsr CloseWin            ;close DOS-window
  443. bsr CloseIntui            ;close IntuiLib
  444. bra CloseDos            ;close DosLib
  445.  
  446. even
  447. string:
  448. dc.b 0,200,10,`      NOT ENOUGH MEMORY !`,0
  449. dc.b 0,0,0,0
  450.  
  451. even
  452. Dosname:
  453. dc.b `dos.library`,0
  454.  
  455. even
  456. Intuiname:
  457. dc.b `intuition.library`,0
  458.  
  459. even
  460. Dosbase:
  461. dc.l 0
  462.  
  463. Intuibase:
  464. dc.l 0
  465.  
  466. Handle:
  467. dc.l 0
  468.  
  469. DateiHandle:
  470. dc.l 0
  471.  
  472. LockHandle:
  473. dc.l 0
  474.  
  475. FileLockHandle:
  476. dc.l 0
  477.  
  478. OldLock:
  479. dc.l 0
  480.  
  481. FileInfoBlockMem:
  482. dc.l 0
  483.  
  484. FileMem:
  485. dc.l 0
  486.  
  487. HunkPos:
  488. dc.l 0
  489.  
  490. Paramaddress:
  491. dc.l 0
  492.  
  493. ParamLength:
  494. dc.l 0
  495.  
  496. even
  497. Directory:
  498. blk.b 500,0
  499.  
  500. Sign:
  501. dc.b 0
  502.  
  503. fastcheck:
  504. dc.b 0
  505.  
  506. StartupFlag:
  507. dc.b 0
  508.  
  509. FileFlag:
  510. dc.b 0
  511.  
  512. even
  513. DOSWin:
  514. dc.b `*`,0
  515.  
  516. even
  517. Text:
  518. dc.b ` `,10
  519. dc.b $9b,`1;31m`
  520. dc.b `               AntiCicloVir `
  521. dc.b $9b,`3;31m`
  522. dc.b `- Virus-Statikum Version 2.3a`,10
  523. dc.b `       (C) 1992-1994 by Matthias Gutt, Kantstr.16 , 21335 Lüneburg , Germany`,10
  524. dc.b ` `,10
  525. dc.b $9b,`0;33m`
  526. dc.b `KNOWN VIRUSES COUNT:`,10
  527. dc.b `Bootblock-Viruses     : 188`,10
  528. dc.b `Linkviruses           :  15`,10
  529. dc.b `Fileviruses           :  28`,10
  530. dc.b `Disk-Validator-Viruses:   7`,10
  531. dc.b `Trojans               :  11`,10
  532. dc.b `Bombs                 :  17`,10
  533. dc.b `---------------------------`,10
  534. dc.b `ENEMIES (TOTAL)       : 266`,10
  535.  
  536. dc.b `Usage: AntiCicloVir [pathname]/[-c]/[-m]`,10
  537. dc.b `OPTIONS TABLE:`,10
  538. dc.b `-c = fast memorycheck`,10
  539. dc.b `-m = memorycheck + installing background task for looking`,10
  540. dc.b `     on every inserted disk for Bootblock- + Disk-Validator-viruses`,10
  541. dc.b ` `,10
  542. dc.b $9b,`0;31m`
  543. Textende:
  544.  
  545. even
  546. notenoughText:
  547. dc.b ` `,10
  548. dc.b `                            Not enough memory !`,10
  549.  
  550. notenoughTextende:
  551.  
  552. CheckFile:
  553. move.l #30,d0
  554. lea FileNameText(pc),a0        ;get FileNameText-address
  555.  
  556. ClearFileNameTextLoop:
  557. move.b #$20,(a0)+        ;clear all bytes with spaces
  558. sub.l #1,d0            ;count down
  559. cmp.l #0,d0            ;zero ?
  560. bne ClearFileNameTextLoop    ;No, continue loop !
  561.  
  562. move.l FileInfoBlockMem(pc),a0    ;get FIB-structure
  563. add.l #8,a0            ;get filename
  564. lea FileNameText(pc),a1        ;get address of FileNamebuffer
  565. move.l #30,d0
  566.  
  567. NameLoop:
  568. move.b (a0)+,(a1)+        ;write filename to filenamebuffer
  569. cmp.b #00,(a0)            ;look for zero
  570. beq NameLoopEnd            ;Yes, end the loop !
  571. sub.l #1,d0            ;count down
  572. cmp.l #0,d0            ;zero ?
  573. bne NameLoop            ;No, continue the loop !
  574. NameLoopEnd:
  575. move.l #FileNameText,d2        ;get FileNamebuffer-Startaddress
  576. move.l #FileNameTextende,d3    ;get FileNamebuffer-Endaddress
  577. bsr PrintDOSText        ;jump to subroutine
  578.  
  579. move.l FileInfoBlockMem(pc),a0    ;get FIB-structure
  580. cmp.l #0,4(a0)            ;Directory ?
  581. ble Sizehex            ;No, get filesize
  582.  
  583. move.l #DirText,d2        ;get DirText-Startaddress
  584. move.l #DirTextende,d3        ;get DirText-Endaddress
  585. bsr PrintDOSText        ;jump to subroutine
  586. bra Protection            ;branch Protection
  587.  
  588. Sizehex:
  589. move.l FileInfoBlockMem(pc),a6    ;get FIB-structure
  590. move.l 124(a6),d2        ;get Size-address
  591. lea Length(pc),a0        ;get Sizebuffer-address
  592. bsr hex                ;hex it !
  593.  
  594. move.l #SizeText,d2        ;get SizeText-Startaddress
  595. move.l #SizeTextende,d3        ;get SizeText-Endaddress
  596. bsr PrintDOSText        ;jump to subroutine
  597.  
  598. Protection:
  599. move.l PBits(pc),ProtectText    ;write Protectionbits to the buffer
  600.  
  601. lea ProtectText(pc),a0        ;get ProtectText-Startaddress
  602. move.l FileInfoBlockMem(pc),a6    ;get FIB-structure
  603. move.l #03,d0
  604.  
  605. ProtectionLoop:
  606. btst d0,116(a6)            ;is Protectionbit set ?
  607. bne SetLine            ;Yes, write line !
  608. ProtectionLoop2:
  609. cmp.b #0,(a0)+
  610. sub.l #1,d0            ;count down
  611. cmp.l #0,d0            ;lower than zero ?
  612. bge ProtectionLoop        ;No, continue the loop !
  613. bra ShowPBits            ;Yes, show Protectionbits
  614.  
  615. SetLine:
  616. move.b #`-`,(a0)        ;write line
  617. bra ProtectionLoop2        ;branch back to loop !
  618.  
  619. ShowPBits:
  620. move.l Dosbase(pc),a6        ;get DosBase
  621. move.l Handle(pc),d1        ;get Handle
  622. move.l #ProtectText,d2        ;get ProtectText-Startaddress
  623. move.l #8,d3            ;get Textlength
  624. jsr Write(a6)            ;call subroutine
  625.  
  626. move.l Dosbase(pc),a6        ;get DosBase
  627. move.l Handle(pc),d1        ;get Handle
  628. move.l FileInfoBlockMem(pc),d2    ;get FIB-structure
  629. add.l #144,d2            ;get CommentText-address
  630. move.l d2,a0            
  631. TextLoop:
  632. cmp.b #$00,(a0)+        ;zerobyte ?
  633. bne TextLoop            ;No, continue the loop !
  634. sub.l d2,a0            ;Yes, subtract end- from startaddress
  635. move.l a0,d3            ;get Textlength
  636. jsr Write(a6)            ;call subroutine
  637.  
  638. move.l Dosbase(pc),a6        ;get DosBase
  639. move.l FileInfoBlockMem(pc),d1    ;get FIB-structure
  640. add.l #8,d1            ;get filename
  641. move.l #1005,d2            ;old mode
  642. jsr Open(a6)            ;call subroutine
  643. cmp.l #0,d0            ;error ?
  644. beq OK2                ;Yes, end CheckFile
  645. move.l d0,Dateihandle        ;No, get Dateihandle
  646.  
  647. move.l Dosbase(pc),a6        ;get DosBase
  648. move.l Dateihandle(pc),d1    ;get Dateihandle
  649. move.l FileMem(pc),d2        ;get Filebuffer
  650. move.l #$5000,d3        ;read $5000 bytes
  651. jsr Read(a6)            ;call subroutine
  652.  
  653. move.l #53,d0            ;get counter
  654. lea FileVirusOffsetlist(pc),a0    ;get offsetlist
  655. lea Filevirustestbyteslist(pc),a1;get testbyteslist
  656. lea FilevirusNameList(pc),a3    ;get FileVirusNamelist
  657.  
  658. CompareFileLoop:
  659. move.l (a0)+,d1            ;get offset
  660. add.l FileMem(pc),d1        ;add filebuffer-address
  661. move.l d1,a2            ;write d1 to a2
  662. move.l (a2),d1            ;get one longword from filebuffer
  663. cmp.l (a1)+,d1            ;is this longword = testbytes ?
  664. beq Filevirus            ;Yes, go to Filevirus
  665. cmp.l #0,(a3)+            ;count FilevirusNamelist
  666. sub.l #1,d0            ;count down
  667. cmp.l #0,d0            ;zero ?
  668. bne CompareFileLoop        ;No, continue the loop !
  669.  
  670. SpecialVirus:
  671.  
  672. move.l #4,d0            ;get counter
  673. lea SpecialVirusOffsetList(pc),a0; get offsetlist
  674. lea SpecialVirusTestbytesList(pc),a1;get testbyteslist
  675. lea SpecialVirusNameList(pc),a3    ;get SpecialVirusNameList
  676. lea SpecialVirusInvisibleNameList(pc),a5
  677.  
  678. CompareSpecialVirusLoop:
  679. move.l (a0)+,d1            ;get offset
  680. add.l FileMem(pc),d1        ;add filebufferaddress to offset
  681. move.l d1,a2            ;write d1 to a2
  682. move.l (a2),d1            ;get one longword from filebuffer 
  683. cmp.l (a1)+,d1            ;is this longword = testbytes ?
  684. beq KillSpecialVirus        ;Yes, go to KillSpecialVirus
  685. cmp.l #0,(a3)+            ;count SpecialVirusNameList
  686. cmp.l #0,(a5)+            ;count SpecialVirusInvisibleNameList
  687. sub.l #1,d0            ;count down
  688. cmp.l #0,d0            ;zero ?
  689. bne CompareSpecialVirusLoop    ;No, continue the loop !
  690.  
  691. CheckFile2:
  692. move.l FileMem(pc),a0        ;get filebuffer
  693.  
  694. cmp.l #$60040000,$24(a0)    ;RoLe-Virus ?
  695. beq ReturnFile            ;Yes, go to ReturnFile
  696.  
  697. move.l FileInfoBlockMem(pc),d0    ;get FIB-structure
  698. add.l #8,d0            ;get filename
  699. move.l d0,a0            
  700. InvisibleLoop:
  701. cmp.b #$A0,(a0)+        ;Invisible sign in filename ?
  702. beq InvisibleFile        ;Yes, go to InvisibleFile
  703. cmp.b #$00,(a0)            ;any more byte ?
  704. bne InvisibleLoop        ;Yes, continue the loop !
  705.  
  706. move.l FileMem(pc),a0        ;get filebuffer
  707. cmp.l #$000003F3,(a0)        ;executable ?
  708. bne OK                ;No, end CheckFile
  709.  
  710. LinkLoop:
  711. cmp.l #$000003E9,(a0)+        ;Hunk-Start ?
  712. bne LinkLoop            ;No, continue the loop !
  713.  
  714. move.l a0,HunkPos        ;get Hunk-Startposition
  715. move.l #12,d0            ;get counter
  716. lea LinkvirusOffsetList(pc),a0    ;get offsetlist
  717. lea LinkvirusTestbytesList(pc),a1;get testbyteslist
  718. lea LinkvirusNameList(pc),a3    ;get LinkvirusNameList
  719.  
  720. CompareLinkLoop:
  721. move.l (a0)+,d1            ;get offset
  722. add.l HunkPos(pc),d1        ;add Hunkposition to offset
  723. move.l d1,a2            ;write d1 to a2
  724. move.l (a2),d1            ;get one longword from hunk
  725. cmp.l (a1)+,d1            ;is this longword = testbytes ?
  726. beq Linkvirus            ;Yes, go to Linkvirus
  727. cmp.l #0,(a3)+            ;count LinkvirusNameList
  728. sub.l #1,d0            ;count down
  729. cmp.l #0,d0            ;zero ?
  730. bne CompareLinkLoop        ;No, continue the loop !
  731.  
  732. CheckFile3:
  733. move.l HunkPos(pc),a0        ;get fisrt Hunkposition
  734.  
  735. cmp.l #$024D4558,$6CC(a0)    ;HQCruncher ?
  736. beq HQFile            ;Yes, go to HQFile
  737.  
  738. cmp.l #"powe",$60(a0)        ;PowerPacker ?
  739. beq PowerPackerFile        ;Yes, go to PowerPackerFile
  740.  
  741. cmp.l #"xplo",$30(a0)        ;Imploder
  742. beq ImploderFile        ;Yes, go to ImploderFile
  743.  
  744. move.l FileMem(pc),a0        ;get filebuffer
  745. cmp.l #$000003F3,(a0)        ;executable ?
  746. beq EXECUTABLEFile        ;Yes, got to ExecutableFile
  747.  
  748.  
  749. OK:
  750. move.l Dosbase(pc),a6        ;get DosBase
  751. move.l Dateihandle(pc),d1    ;get Dateihandle
  752. jsr Close(a6)            ;call subroutine
  753.  
  754. OK2:
  755. move.l #FileText2,d2        ;get FileText-Startaddress
  756. move.l #FileText2ende,d3    ;get FileText-Endaddress
  757. bsr PrintDOSText        ;jump to subroutine
  758. rts                ;return from subroutine
  759.  
  760. PrintDOSText:
  761. move.l Dosbase(pc),a6        ;get DosBase
  762. move.l Handle(pc),d1        ;get Handle
  763. sub.l d2,d3            ;get Textlength
  764. jsr Write(a6)            ;call subroutine
  765. rts                ;return from subroutine
  766.  
  767. FileVirusNameLoop:
  768. move.l #40,d0            ;get counter
  769. lea FileVirusName(pc),a0    ;get FileVirusNamebuffer
  770.  
  771. ClearFileVirusNameLoop:
  772. move.b #$00,(a0)+        ;clear all bytes
  773. sub.l #1,d0            ;count down
  774. cmp.l #0,d0            ;zero ?
  775. bne ClearFileVirusNameLoop    ;No, continue the Loop !
  776.  
  777. move.l #FileText,d2        ;get FileText-Startaddress
  778. move.l #FileTextende,d3        ;get FileText-Endaddress
  779. lea FileVirusName(pc),a0    ;get FileVirusNamebuffer
  780.  
  781. FileVirusNameLoopLoop:
  782. move.b (a1)+,(a0)+        ;write Virusname to Filevirusbuffer
  783. cmp.b #$00,(a1)            ;zero ?
  784. bne FileVirusNameLoopLoop    ;No, continue the loop !
  785. bsr PrintDOSText        ;jump to subroutine
  786. rts                ;return from subroutine
  787.  
  788. FileVirus:
  789. clr.l (a2)            ;clear testbytes in filebuffer
  790. move.l (a3),a1            ;get VirusText-Address
  791. bsr FileVirusNameLoop        ;go to FileVirusNameLoop
  792.  
  793. move.l FileInfoBlockMem(pc),d4    ;get FIB-structure
  794. add.l #8,d4            ;get filename
  795. bsr KillFileVirus        ;jump to subroutine
  796. bra OK2                ;end CheckFile
  797.  
  798. ReturnFile:
  799. clr.l $24(a0)            ;clear testbytes in filebuffer
  800. lea ReturnoftheLamerExterminatorText(pc),a1
  801. bsr FileVirusNameLoop        ;go to FileVirusNameLoop
  802. move.l FileInfoBlockMem(pc),d4    ;get FIB-structure
  803. add.l #8,d4            ;get filename
  804. bsr KillFileVirus3        ;jump to subroutine
  805. bra OK2                ;end CheckFile
  806.  
  807. HQFile:
  808. clr.l $6CC(a0)            ;clear testbytes in filebuffer
  809. move.l #HQCruncherText,d2    ;get HQCruncherText-StartAddress
  810. move.l #HQCruncherTextende,d3    ;get HQCruncherText-Endaddress
  811. bsr PrintDOSText        ;jump to subroutine
  812. bra OK                ;end CheckFile
  813.  
  814. PowerPackerFile:
  815. clr.l $60(a0)            ;clear testbytes in filebuffer
  816. move.l #PowerPackerText,d2    ;get PowerPackerText-Startaddress
  817. move.l #PowerPackerTextende,d3    ;get PowerPackerText-Endaddress
  818. bsr PrintDOSText        ;jump to subroutine
  819. bra OK                ;end CheckFile
  820.  
  821. ImploderFile:
  822. clr.l $30(a0)            ;clear the testbytes in filebuffer
  823. move.l #ImploderText,d2        ;get ImploderText-Startaddress
  824. move.l #ImploderTextende,d3    ;get ImploderText-Endaddress
  825. bsr PrintDOSText        ;jump to subroutine
  826. bra OK                ;end CheckFile
  827.  
  828. EXECUTABLEFile:
  829. move.l #ExecutableText,d2    ;get ExecutableText-Startaddress
  830. move.l #ExecutableTextende,d3    ;get ExecutableText-Endaddress
  831. bsr PrintDOSText        ;jump to subroutine
  832. bra OK                ;end CheckFile
  833.  
  834. InvisibleFile:
  835. move.l #InvisibleFileText,d2    ;get InvisibleText-Startaddress
  836. move.l #InvisibleFileTextende,d3;get InvisibleText-Endaddress
  837. bsr PrintDOSText        ;jump to subroutine
  838. move.l FileInfoBlockMem(pc),d4    ;get FIB-structure
  839. add.l #8,d4            ;get filename
  840. bsr KillFileVirus4        ;jump to subroutine
  841. bra OK2                ;end CheckFile
  842.  
  843. LinkvirusNameLoop:
  844. move.l #40,d0            ;get counter
  845. lea LinkvirusName(pc),a0    ;get LinkvirusNamebuffer-address
  846.  
  847. ClearLinkvirusNameLoop:
  848. move.b #$00,(a0)+        ;clear the buffer
  849. sub.l #1,d0            ;count down
  850. cmp.l #0,d0            ;zero ?
  851. bne ClearLinkvirusNameLoop    ;No, continue the loop !
  852.  
  853. move.l #LinkText,d2        ;get LinkText-Startaddress
  854. move.l #LinkTextende,d3        ;get LinkText-Endaddress
  855. lea LinkVirusName(pc),a0    ;get Linkvirusnamebuffer-address
  856.  
  857. LinkVirusNameLoopLoop:
  858. move.b (a1)+,(a0)+        ;write Virusname to LinkvirusNamebuffer
  859. cmp.b #$00,(a1)            ;zero ?
  860. bne LinkVirusNameLoopLoop    ;No, continue the loop !
  861. bsr PrintDOSText        ;jump to subroutine
  862. rts                ;return from subroutine
  863.  
  864. Linkvirus:
  865. clr.l (a2)            ;clear testbytes from filebuffer
  866. move.l (a3),a1            ;get VirusText-Address
  867. bsr LinkvirusNameLoop        ;jump to LinkvirusLoop
  868. bra OK2                ;end CheckFile
  869.  
  870. CloseVirus:
  871. move.l Dosbase(pc),a6        ;get DosBase
  872. move.l Dateihandle(pc),d1    ;get Dateihandle
  873. jsr Close(a6)            ;call subroutine
  874. rts                ;return from subroutine
  875.  
  876. KillFileVirus:
  877. bsr CloseVirus            ;jump to subroutine
  878. KillFileVirus2:            
  879. Requester #KillFileTexten,#Yes,#No,#310,#80
  880. cmp.l #0,d0            ;Zero ?
  881. beq KillFileVirusNext        ;Yes, do not kill the filevirus
  882.  
  883. DeleteVirus:
  884. move.l Dosbase(pc),a6        ;get DosBase
  885. move.l d4,d1            ;get filename
  886. move.l #%00000000,d2        ;unprotect
  887. jsr SetProtection(a6)        ;call subroutine
  888.  
  889. move.l Dosbase(pc),a6        ;get DosBase
  890. move.l d4,d1            ;get filename
  891. jsr DeleteFile(a6)        ;call subroutine
  892. KillFileVirusNext:
  893. rts                ;return from subroutine
  894.  
  895. RenameVirus:
  896. move.l Dosbase(pc),a6        ;get DosBase
  897. move.l d4,d2            ;get new filename
  898. jsr Rename(a6)            ;call subroutine
  899. rts                ;return from subroutine
  900.  
  901. KillSpecialVirus:
  902. clr.l (a2)            ;clear testbytes in filebuffer
  903. lea SpecialVirusName(pc),a0    ;get SpecialVirusNamebuffer-address
  904. move.l #40,d0            ;get counter
  905.  
  906. ClearSpecialVirusNameLoop:
  907. move.b #00,(a0)+        ;clear the buffer
  908. sub.l #1,d0            ;count down
  909. cmp.l #0,d0            ;Zero ?
  910. bne ClearSpecialVirusNameLoop    ;No, continue the loop !
  911.  
  912. lea SpecialVirusName(pc),a0    ;get SpecialVirusNamebuffer-address
  913. move.l (a3),a1            ;get Virusname-Address
  914.  
  915. SpecialVirusNameLoop:
  916. move.b (a1)+,(a0)+        ;write VirusName to SpecialVirusNamebuffer
  917. cmp.b #0,(a1)            ;Zero ?
  918. bne SpecialVirusNameLoop    ;No, continue the loop !
  919.  
  920. bsr CloseVirus            ;jump to subroutine
  921. Requester #KillSpecialVirusText,#Yes,#No,#610,#70
  922. cmp.l #0,d0            ;Zero ?
  923. beq KillSpecialVirusNext    ;Yes, do not kill the filevirus
  924. move.l FileInfoBlockMem(pc),d4    ;get FIB-structure
  925. add.l #8,d4            ;get filename
  926. bsr DeleteVirus            ;jump to subroutine
  927. KillSpecialVirusNext:    
  928. Requester #SpecialVirusOrigText,#Yes,#No,#610,#70
  929. cmp.l #0,d0            ;Zero ?
  930. beq KillSpecialVirusNextNext    ;Yes, do not rename the original
  931. move.l (a5),d1            ;No, get original-filename-address
  932. move.l FileInfoBlockMem(pc),d4    ;get FIB-structure
  933. add.l #8,d4            ;get filename
  934. bsr RenameVirus            ;jump to subroutine
  935. KillSpecialVirusNextNext:
  936. bra OK2                ;end CheckFile
  937.  
  938. KillFileVirus3:
  939. bsr CloseVirus            ;jump to subroutine
  940. Requester #RenameFileTexten,#Yes,#No,#400,#70
  941. cmp.l #0,d0            ;Zero ?
  942. beq KillFileVirus3Next        ;Yes, do not rename the file
  943.  
  944. move.l Dosbase(pc),a6        ;get DosBase
  945. move.l d4,d1            ;get old filename
  946. move.l #RETURN,d2        ;get new filename
  947. jsr Rename(a6)            ;call subroutine
  948. KillFileVirus3Next:
  949. rts                ;return from subroutine
  950.  
  951. KillFileVirus4:
  952. bsr CloseVirus            ;jump to subroutine
  953. Requester #RenameInvisibleFileText,#Yes,#No,#350,#70
  954. cmp.l #0,d0            ;Zero ?
  955. beq KillFileVirus4Next
  956.  
  957. move.l Dosbase(pc),a6        ;get DosBase
  958. move.l d4,d1            ;get old filename
  959. move.l #CRITICAL,d2        ;get new filename
  960. jsr Rename(a6)            ;call subroutine
  961. KillFileVirus4Next:
  962. rts                ;return from subroutine
  963.  
  964. even
  965. AutoRequestText:
  966. dc.b 0,2
  967. dc.b 0
  968. even
  969. dc.w 20,20
  970. dc.l 0
  971. AutoRequestTextPtr:
  972. dc.l 0
  973. dc.l 0
  974.  
  975. even
  976. KillFileTexten:
  977. dc.b `Shall I delete this File ?`,0
  978.  
  979. even
  980. KillSpecialVirusText:
  981. dc.b `Shall I delete the filevirus `
  982. SpecialVirusName: blk.b 40,0
  983.  
  984. even
  985. SpecialVirusOrigText:
  986. dc.b `Shall I rename the original file ?`,0
  987.  
  988. even
  989. RenameFileTexten:
  990. dc.b `Shall I rename the Disk-Validator ?`,0
  991.  
  992. even
  993. RenameInvisibleFileText:
  994. dc.b `Shall I rename this file ?`,0
  995.  
  996. even
  997. GadgetText:
  998. dc.b 0,2
  999. dc.b 0
  1000. even
  1001. dc.w 4,4
  1002. dc.l 0
  1003. GadgetTextPtr:
  1004. dc.l 0
  1005. dc.l 0
  1006.  
  1007. even
  1008. GadgetText2:
  1009. dc.b 0,2
  1010. dc.b 0
  1011. even
  1012. dc.w 4,4
  1013. dc.l 0
  1014. GadgetText2Ptr:
  1015. dc.l 0
  1016. dc.l 0
  1017.  
  1018. even
  1019. Yes:
  1020. dc.b `Yes !`,0
  1021.  
  1022. even
  1023. No:
  1024. dc.b `No !`,0
  1025.  
  1026. even
  1027. ContinueText:
  1028. dc.b ` OK `,0
  1029.  
  1030. even
  1031. ContinueText2:
  1032. dc.b 0,2
  1033. dc.b 0
  1034. even
  1035. dc.w 4,4
  1036. dc.l 0
  1037. dc.l ContinueText
  1038. dc.l 0
  1039. dc.l 0
  1040.  
  1041. even
  1042. RETURN:
  1043. dc.b `:L/LAMER-Virus`,0
  1044.  
  1045. even
  1046. CRITICAL:
  1047. dc.b `:CRITICAL-Virus`,0
  1048.  
  1049. even
  1050. SpecialVirusNameList:
  1051. dc.l BGS9Text
  1052. dc.l BGS9IIText
  1053. dc.l TerroristsText
  1054. dc.l NaSTText
  1055.  
  1056. even
  1057. SpecialVirusTestbytesList:
  1058. dc.l `TTV1`
  1059. dc.l `TTV1`
  1060. dc.l `TTV1`
  1061. dc.l `NaST`
  1062.  
  1063. even
  1064. SpecialVirusOffsetlist:
  1065. dc.l $00000A04
  1066. dc.l $00000A04
  1067. dc.l $00000620
  1068. dc.l $0000007A
  1069.  
  1070. even
  1071. SpecialVirusInvisibleNameList:
  1072. dc.l BGS9Invisible
  1073. dc.l BGS9Invisible2
  1074. dc.l TerroristsInvisible
  1075. dc.l NaSTInvisible
  1076.  
  1077. even
  1078. BGS9Invisible:
  1079. dc.b `:DEVS/           `,0
  1080.  
  1081. even
  1082. BGS9Invisible2:
  1083. dc.b `:DEVS/ é         `,0
  1084.  
  1085. even
  1086. TerroristsInvisible:
  1087. dc.b `:           `,0
  1088.  
  1089. even
  1090. NaSTInvisible:
  1091. dc.b `:c/              `,0
  1092.  
  1093. even
  1094. FileNameText: dc.b `                              `,0
  1095. FileNameTextende:
  1096.  
  1097. even
  1098. SizeText:
  1099. dc.b ` : $`
  1100. Length: dc.b `00000000  `,0
  1101. SizeTextende:
  1102.  
  1103. even
  1104. ExecutableText:
  1105. dc.b ` :EXECUTABLE   `,0
  1106. ExecutableTextende:
  1107.  
  1108. even
  1109. PBits:
  1110. dc.b `rwed`,0
  1111.  
  1112. even
  1113. ProtectText:
  1114. dc.b `       `,0
  1115. ProtectTextende:
  1116.  
  1117. even
  1118. FileText2:
  1119. dc.b `: OK`,10
  1120. FileText2ende:
  1121.  
  1122. even
  1123. DirText:
  1124. dc.b `      <DIR>   `,0
  1125. DirTextende:
  1126.  
  1127. even
  1128. HQCruncherText:
  1129. dc.b ` uses H&Q-Cruncher !`,0
  1130. HQCruncherTextende:
  1131.  
  1132. even
  1133. PowerPackerText:
  1134. dc.b ` uses powerpacker-Cruncher !`,0
  1135. PowerPackerTextende:
  1136.  
  1137. even
  1138. ImploderText:
  1139. dc.b ` uses implode.library !`,0
  1140. ImploderTextende:
  1141.  
  1142. even
  1143. InvisibleFileText:
  1144. dc.b $9b,`1;33m`
  1145. dc.b ` : ... filename contains invisible signs ! Possibility: FILEVIRUS !!!`,10
  1146. dc.b $9b,`0;31m`
  1147. InvisibleFileTextende:
  1148.  
  1149. even
  1150. FileText:
  1151. dc.b $9b,`1;33m`
  1152. dc.b ` : ... contains `
  1153. FileVirusname: blk.b 40,0
  1154. dc.b ` Filevirus !!!`,10
  1155. dc.b $9b,`0;31m`
  1156. FileTextende:
  1157.  
  1158. even
  1159. LinkText:
  1160. dc.b $9b,`1;33m`
  1161. dc.b ` : ... includes `
  1162. LinkVirusname: blk.b 40,0
  1163. dc.b ` Linkvirus !!!`,10
  1164. dc.b $9b,`0;31m`
  1165. LinkTextende:
  1166.  
  1167. even
  1168. LinkvirusNameList:
  1169. dc.l AntiChristText
  1170. dc.l BestialDevastationText
  1171. dc.l CCCPText
  1172. dc.l GotchaLamerText
  1173. dc.l HochofenText
  1174. dc.l IRQText
  1175. dc.l QRDLText
  1176. dc.l RedOctoberText
  1177. dc.l SmilyCancerText
  1178. dc.l TravelingJackText
  1179. dc.l TravelingJack2Text
  1180. dc.l XenoText
  1181.  
  1182. even
  1183. LinkvirusTestbytesList:
  1184. dc.l $00000250
  1185. dc.l `VAST`
  1186. dc.l `CCCP`
  1187. dc.l `tcha`
  1188. dc.l `hofe`
  1189. dc.l $000003EC
  1190. dc.l $60000342
  1191. dc.l `devi`
  1192. dc.l $60026068
  1193. dc.l $48E7FFFE
  1194. dc.l $48E7FFFE
  1195. dc.l `Nudo`
  1196.  
  1197. even
  1198. LinkvirusOffsetList:
  1199. dc.l $00000788
  1200. dc.l $00000070
  1201. dc.l $0000004C
  1202. dc.l $0000013C
  1203. dc.l $00000B90
  1204. dc.l $000000A4
  1205. dc.l $00000008
  1206. dc.l $00000484
  1207. dc.l $00000004
  1208. dc.l $00000010
  1209. dc.l $00000014
  1210. dc.l $00000414
  1211.  
  1212. even
  1213. FilevirusNameList:
  1214. dc.l AmigaKnightText
  1215. dc.l AntiChristTextText
  1216. dc.l BeethovenText
  1217. dc.l BlueboxText
  1218. dc.l BretHawnesText
  1219. dc.l ColorText
  1220. dc.l CommodoreText
  1221. dc.l CompuPhagozyteText
  1222. dc.l CompuPhagozyte2Text
  1223. dc.l CompuPhagozyteIIText
  1224. dc.l CompuPhagozyteIIIText
  1225. dc.l CompuPhagozyteIIIBCText
  1226. dc.l CompuPhagozyteIVText
  1227. dc.l DStructureText
  1228. dc.l DAGCreatorText
  1229. dc.l DarthVaderText
  1230. dc.l DisasterMasterText
  1231. dc.l DiskKillerText
  1232. dc.l DisktroyerV10Text
  1233. dc.l DisktroyerV20Text
  1234. dc.l DiskVal1234Text
  1235. dc.l DMTrashText
  1236. dc.l DriveInfoText
  1237. dc.l ExcrementCreatorText
  1238. dc.l FreedomText
  1239. dc.l GotchaLamerCreatorText
  1240. dc.l GZUSText
  1241. dc.l INTELText
  1242. dc.l JeffBUTONICV131Text
  1243. dc.l JeffBUTONICV300Text
  1244. dc.l LamerLoadWBText
  1245. dc.l LamerVirusXText
  1246. dc.l Liberatorv121Text
  1247. dc.l Liberatorv30Text
  1248. dc.l Liberatorv501Text
  1249. dc.l ModemCheckerText
  1250. dc.l ModemCheckerloadWBText
  1251. dc.l NANOoldText
  1252. dc.l NanonewText
  1253. dc.l NoGuruv20Text
  1254. dc.l PPBombText
  1255. dc.l RevengeOfTheLAMERExterminatorText
  1256. dc.l SADDAMText
  1257. dc.l SEPULTURAText
  1258. dc.l ShowSysopText
  1259. dc.l SmilyCancerLoadWBText
  1260. dc.l SnoopDosText
  1261. dc.l TelecomText
  1262. dc.l TFCRevengeLoadWBText
  1263. dc.l TimeBombV09Text
  1264. dc.l TravelingJackTextText
  1265. dc.l VirusConstructionSetText
  1266. dc.l xprzspeedV32Text
  1267.  
  1268. even
  1269. FilevirusTestbytesList:
  1270. dc.l `STAR`
  1271. dc.l `ntic`
  1272. dc.l `Beet`
  1273. dc.l `inpu`
  1274. dc.l `BRET`
  1275. dc.l `TURK`
  1276. dc.l `COMM`
  1277. dc.l ` Com`
  1278. dc.l `The `
  1279. dc.l `COMP`
  1280. dc.l `agoz`
  1281. dc.l `gozy`
  1282. dc.l `agoz`
  1283. dc.l `Stru`
  1284. dc.l $00000510
  1285. dc.l `DART`
  1286. dc.l $610002FA
  1287. dc.l `DISK`
  1288. dc.l `iskt`
  1289. dc.l `iskt`
  1290. dc.l `trac`
  1291. dc.l `user`
  1292. dc.l $4EAEFF3A
  1293. dc.l `EXCR`
  1294. dc.l `Free`
  1295. dc.l ` LAM`
  1296. dc.l `-Zus`
  1297. dc.l `oadw`
  1298. dc.l `DASA`
  1299. dc.l $4E714E71
  1300. dc.l `LAME`
  1301. dc.l `MER `
  1302. dc.l `erat`
  1303. dc.l `Libe`
  1304. dc.l `Libe`
  1305. dc.l `HECK`
  1306. dc.l `FUCK`
  1307. dc.l `N A `
  1308. dc.l `Nano`
  1309. dc.l `FNNF`
  1310. dc.l `egam`
  1311. dc.l $60040000
  1312. dc.l `BitM`
  1313. dc.l $4E716100
  1314. dc.l `SPOS`
  1315. dc.l `=WO/`
  1316. dc.l `oopD`
  1317. dc.l `brar`
  1318. dc.l `Fana`
  1319. dc.l `VIRU`
  1320. dc.l ` Jac`
  1321. dc.l `Star`
  1322. dc.l `Spee`
  1323.  
  1324. even
  1325. FilevirusOffsetList:
  1326. dc.l $00000342
  1327. dc.l $00000008
  1328. dc.l $00000044
  1329. dc.l $000001A0
  1330. dc.l $00000028
  1331. dc.l $00000260
  1332. dc.l $0000010E
  1333. dc.l $00000460
  1334. dc.l $00000380
  1335. dc.l $000001B0
  1336. dc.l $0000035C
  1337. dc.l $00000030
  1338. dc.l $00000030
  1339. dc.l $00000168
  1340. dc.l $00000710
  1341. dc.l $00000300
  1342. dc.l $00000028
  1343. dc.l $00000162
  1344. dc.l $00000220
  1345. dc.l $00000224
  1346. dc.l $000006C0
  1347. dc.l $000004C2
  1348. dc.l $0000002C
  1349. dc.l $000000C8
  1350. dc.l $0000054E
  1351. dc.l $000002F0
  1352. dc.l $0000361C
  1353. dc.l $0000027C
  1354. dc.l $00000206
  1355. dc.l $00000088
  1356. dc.l $00000448
  1357. dc.l $00000460
  1358. dc.l $0000129C
  1359. dc.l $00002784
  1360. dc.l $00003E80
  1361. dc.l $000033F0
  1362. dc.l $0000054C
  1363. dc.l $00000492
  1364. dc.l $0000003A
  1365. dc.l $000002F0
  1366. dc.l $00000410
  1367. dc.l $00000020
  1368. dc.l $00000702
  1369. dc.l $00000180
  1370. dc.l $000003D0
  1371. dc.l $00000C00
  1372. dc.l $000006B0
  1373. dc.l $00000290
  1374. dc.l $00000050
  1375. dc.l $000007C0
  1376. dc.l $00000010
  1377. dc.l $00000050
  1378. dc.l $000023F0
  1379.  
  1380. vectors_table:
  1381. bsr OpenTable            ;open table-window
  1382. cmp.l #0,d0            ;error ?
  1383. beq vectorsend            ;Yes, end vectors_table
  1384. move.l d0,vectorshandle        ;No, get handle
  1385. bsr vectors            ;show vectors
  1386. bsr vectorswait            ;delay vectors
  1387. bra vectorsend            ;close vectors_table
  1388.  
  1389. OpenTable:
  1390. move.l Dosbase(pc),a6        ;get ExecBase
  1391. move.l #Table,d1        ;get DOS-Window-Address
  1392. move.l #1006,d2            ;mode new
  1393. jsr Open(a6)            ;call subroutine
  1394. rts                ;return from subroutine
  1395.  
  1396. vectors:
  1397. move.l #17,d0            ;get counter
  1398. lea ExecVectorsList(pc),a3    ;get vectorslist
  1399. lea ExecVectorsNameList(pc),a4    ;get ExecVectorsNameList
  1400.  
  1401. ExecVectorsLoop:
  1402. move.l (a3)+,d4            ;get offset
  1403. move.l 4,a6            ;get ExecBase
  1404. add.l d4,a6            ;add offset to ExecBase
  1405. move.l (a6),d2            ;write ROM-address to d2
  1406. move.l (a4)+,a0            ;get vectorbuffer
  1407. bsr hex                ;hex !!!
  1408. sub.l #1,d0            ;count down
  1409. cmp.l #0,d0            ;Zero ?
  1410. bne ExecVectorsLoop        ;No, continue the loop !
  1411.  
  1412. bsr FindTrackDisk        ;get TrackDiskBase
  1413. move.l a1,a6            ;write TrackDiskBase to a6
  1414. move.l #2,d0            ;get counter
  1415. lea TrackDiskVectorsList(pc),a3    ;get offsetlist
  1416. lea TrackDiskVectorsNameList(pc),a4;get TrackDiskVectorsNameList
  1417.  
  1418. TrackDiskVectorsLoop:
  1419. move.l a6,a1            ;get TrackDiskBase
  1420. add.l (a3)+,a1            ;add offset to TrackDiskBase
  1421. move.l (a1),d2            ;write ROM-address to d2
  1422. move.l (a4)+,a0            ;get vectorbuffer
  1423. bsr hex                ;hex !!!
  1424. sub.l #1,d0            ;count down
  1425. cmp.l #0,d0            ;Zero ?
  1426. bne TrackDiskVectorsLoop    ;No, continue the loop !
  1427.  
  1428. bsr Findkeyboard        ;get KeyBoardBase
  1429. move.l -$0000001C(a1),d2    ;get offset
  1430. lea BeginIOVec(pc),a0        ;get vectorbuffer
  1431. bsr hex                ;hex !!!
  1432.  
  1433. move.l #4,d0            ;get counter
  1434. lea DOSVectorsList(pc),a3    ;get offsetlist
  1435. lea DOSVectorsNameList(pc),a4    ;get DOSVectorsNameList
  1436.  
  1437. DOSVectorsLoop:
  1438. move.l DosBase(pc),a6        ;get DosBase
  1439. add.l (a3)+,a6            ;add offset to DosBase
  1440. move.l (a6),d2            ;write ROM-address to d2
  1441. move.l (a4)+,a0            ;get vectorsbuffer
  1442. bsr hex                ;hex !!!
  1443. sub.l #1,d0            ;count down
  1444. cmp.l #0,d0            ;Zero ?
  1445. bne DOSVectorsLoop        ;No, continue the loop !
  1446.  
  1447. move.l #2,d0            ;get counter
  1448. lea IntuitionVectorsList(pc),a3    ;get offsetlist
  1449. lea IntuitionVectorsNameList(pc),a4;get IntuitionVectorsNameList
  1450.  
  1451. IntuitionLoop:
  1452. move.l Intuibase(pc),a6        ;get IntuiBase
  1453. add.l (a3)+,a6            ;add offset to Intuibase
  1454. move.l (a6),d2            ;write ROM-address to d2
  1455. move.l (a4)+,a0            ;get vectorsbuffer
  1456. bsr hex                ;hex !!!
  1457. sub.l #1,d0            ;count down
  1458. cmp.l #0,d0            ;Zero ?
  1459. bne IntuitionLoop        ;No, continue the loop !
  1460.  
  1461. move.l #Systemvectorstabletext,d2;get Systemvectorstabletext-Startaddress
  1462. move.l #Systemvectorstableend,d3;get Systemvectorstable-Endaddress
  1463. bsr PrintDOSText2        ;jump to subroutine
  1464. rts                ;return from subroutine
  1465.                     
  1466. hex:                
  1467. ;this routine converts the ROM-addresses to hexadecimal
  1468. ;numbers
  1469.  
  1470. move.l #8,d1            ;get counter
  1471.  
  1472. HexaLoop:
  1473. rol.l #4,d2            ;rotate 4 bits left
  1474. move.l d2,d3            ;get byte
  1475. and.b #$0f,d3            ;get nibble
  1476. add.b #$30,d3            ;get ciphers
  1477. cmp.b #$39,d3            ;d3 > 9 ?
  1478. ble display            ;No, diplay hexa-cipher
  1479. add.b #7,d3            ;Yes, get letter A-F
  1480.  
  1481. Display:
  1482. move.b d3,(a0)+            ;display one byte
  1483. sub.l #1,d1            ;count down
  1484. cmp.l #0,d1            ;Zero ?
  1485. bne HexaLoop            ;No, continue the loop !
  1486. rts                ;return from subroutine
  1487.  
  1488. vectorswait:
  1489. move.l Dosbase(pc),a6        ;get DosBase
  1490. move.l #300,d1            ;worth for Delay
  1491. jsr Delay(a6)            ;call subroutine
  1492.  
  1493. CloseTable:
  1494. move.l Dosbase(pc),a6        ;get DosBase
  1495. move.l vectorshandle(pc),d1    ;get handle
  1496. jsr Close(a6)            ;call subroutine
  1497. rts                ;return from subroutine
  1498.  
  1499. PrintDOSText2:
  1500. move.l Dosbase(pc),a6        ;get DosBase
  1501. move.l vectorshandle(pc),d1    ;get handle
  1502. sub.l d2,d3            ;calculate textlength
  1503. jsr Write(a6)            ;call subroutine
  1504. rts                ;return from subroutine
  1505.  
  1506. vectorsend:
  1507. rts                ;return from subroutine
  1508.  
  1509. even
  1510. Table:
  1511. dc.b `CON:0/0/600/200/System-Vectors-Table:`,0
  1512.  
  1513. even
  1514. Vectorshandle:
  1515. dc.l 0
  1516.  
  1517. even
  1518. ExecVectorsNameList:
  1519. dc.l ColdCapture
  1520. dc.l CoolCapture
  1521. dc.l WarmCapture
  1522. dc.l CHKSumVec
  1523. dc.l KickCheckSum
  1524. dc.l DoIO
  1525. dc.l KickMemPtr
  1526. dc.l KickTagPtr
  1527. dc.l RasterBeamVec
  1528. dc.l OldOpenLibraryVec
  1529. dc.l OpenLib
  1530. dc.l SKD
  1531. dc.l AlertVec
  1532. dc.l AllocMemVec
  1533. dc.l FreeMemVec
  1534. dc.l PutMsgVec
  1535. dc.l OpenDeviceVec
  1536.  
  1537. even
  1538. ExecVectorsList:
  1539. dc.l 42
  1540. dc.l 46
  1541. dc.l 50
  1542. dc.l 82
  1543. dc.l 554
  1544. dc.l -454
  1545. dc.l 546
  1546. dc.l 550
  1547. dc.l $90
  1548. dc.l -406
  1549. dc.l -550
  1550. dc.l -610
  1551. dc.l -106
  1552. dc.l -196
  1553. dc.l -208
  1554. dc.l -364
  1555. dc.l -442
  1556.  
  1557. even
  1558. TrackDiskVectorsNameList:
  1559. dc.l BeginIO
  1560. dc.l CloseVec
  1561.  
  1562. even
  1563. TrackDiskVectorsList:
  1564. dc.l -$0000001C
  1565. dc.l -$0000000A
  1566.  
  1567. even
  1568. DOSVectorsNameList:
  1569. dc.l OP
  1570. dc.l LoadSeg
  1571. dc.l WriteVec
  1572. dc.l LockVec
  1573.  
  1574. even
  1575. DOSVectorsList:
  1576. dc.l -28
  1577. dc.l -148
  1578. dc.l -46
  1579. dc.l -82
  1580.  
  1581. even
  1582. IntuitionVectorsNameList:
  1583. dc.l WindowOpen
  1584. dc.l DisplayAlertVec
  1585.  
  1586. even
  1587. IntuitionVectorsList:
  1588. dc.l -202
  1589. dc.l -88
  1590.  
  1591. even
  1592. Systemvectorstabletext:
  1593. dc.b `     ExecBase:`,10
  1594. dc.b `     ColdCapture:    $`
  1595. ColdCapture: dc.b `00000000`,0
  1596. dc.b ` CoolCapture:   $`
  1597. CoolCapture: dc.b `00000000`,10
  1598. dc.b `     WarmCapture:    $`
  1599. WarmCapture: dc.b `00000000`,0
  1600. dc.b ` ChkSum:        $`
  1601. CHKSumVec: dc.b `00000000`,10
  1602. dc.b `     KickMemPtr:     $`
  1603. KickMemPtr: dc.b `00000000`,0
  1604. dc.b ` KickTagPtr:    $`
  1605. KickTagPtr: dc.b `00000000`,10
  1606. dc.b `     KickCheckSum:   $`
  1607. KickCheckSum: dc.b `00000000`,0
  1608. dc.b ` RasterBeam Int.$`
  1609. RasterBeamVec: dc.b `00000000`,10
  1610. dc.b `     exec.library:`,10
  1611. dc.b `     Alert:          $`
  1612. AlertVec: dc.b `00000000`,0
  1613. dc.b ` AllocMem:      $`
  1614. AllocMemVec: dc.b `00000000`,10
  1615. dc.b `     FreeMem:        $`
  1616. FreeMemVec: dc.b `00000000`,0
  1617. dc.b ` PutMsg:        $`
  1618. PutMsgVec: dc.b `00000000`,10
  1619. dc.b `     OldOpenLibrary: $`
  1620. OldOpenLibraryVec: dc.b `00000000`,0
  1621. dc.b ` OpenDevice:    $`
  1622. OpenDeviceVec: dc.b `00000000`,10
  1623. dc.b `     DoIO:           $`
  1624. DoIO: dc.b `00000000`,0
  1625. dc.b ` OpenLibrary:   $`
  1626. OpenLib: dc.b `00000000`,10
  1627. dc.b `     SumKickData:    $`
  1628. SKD: dc.b `00000000`,10
  1629. dc.b `     dos.library:`,10
  1630. dc.b `     Open:           $`
  1631. OP: dc.b `00000000`,0
  1632. dc.b ` Write:         $`
  1633. WriteVec: dc.b `00000000`,10
  1634. dc.b `     Lock:           $`
  1635. LockVec: dc.b `00000000`,0
  1636. dc.b ` LoadSeg:       $`
  1637. LoadSeg: dc.b `00000000`,10
  1638. dc.b `     intuition.library:`,10
  1639. dc.b `     DisplayAlert:   $`
  1640. DisplayAlertVec: dc.b `00000000`,0
  1641. dc.b ` OpenWindow:    $`
  1642. WindowOpen: dc.b `00000000`,10
  1643. dc.b `     trackdisk.device:`,10
  1644. dc.b `     BeginIO:        $`
  1645. BeginIO: dc.b `00000000`,0
  1646. dc.b ` Close:         $`
  1647. CloseVec: dc.b `00000000`,10
  1648. dc.b `     keyboard.device:`,10
  1649. dc.b `     BeginIO:        $`
  1650. BeginIOVec: dc.b `00000000`,10
  1651. Systemvectorstableend:
  1652.  
  1653. even
  1654. CheckMem:
  1655. move.l #129,d0
  1656. lea AbsoluteMemoryPositionVirusOffsetList(pc),a0
  1657. lea AbsoluteMemoryPositionVirusTestbytesList(pc),a1
  1658. lea AbsoluteMemoryPositionVirusNameList(pc),a3
  1659.  
  1660. CompareAbsMemLoop:
  1661. move.l (a0)+,a2            ;get offset
  1662. move.l (a2),d1            ;get longword from offset-position
  1663. cmp.l (a1)+,d1            ;is this longword = testbytes ?
  1664. beq AMIGAMemoryVirus        ;Yes, go to AMIGAMemoryVirus
  1665. cmp.l #0,(a3)+            ;count AbsoluteMemoryPositionVirusNameList
  1666. sub.l #1,d0            ;count down
  1667. cmp.l #0,d0            ;Zero ?
  1668. bne CompareAbsMemLoop        ;No, continue the loop !
  1669.  
  1670. ColdRelativeMemoryPosition:
  1671. move.l #8,d0
  1672. lea ColdRelativeMemoryPositionVirusOffsetList(pc),a0
  1673. lea ColdRelativeMemoryPositionVirusTestbytesList(pc),a1
  1674. lea ColdRelativeMemoryPositionVirusNameList(pc),a3
  1675.  
  1676. CompareColdRelativeMemoryPositionLoop:
  1677. move.l (a0)+,d1            ;get offset
  1678. move.l ExecBase,a6        ;get ExecBase
  1679. move.l 42(a6),d2        ;get ColdCapture-Startaddress
  1680. add.l d2,d1            ;add offset to this Startaddress
  1681. move.l d1,a2            ;write d1 to a2
  1682. move.l (a2),d1            ;write longword from memory to d1
  1683. cmp.l (a1)+,d1            ;is this longword = testbytes ?
  1684. beq AMIGAMemoryVirus        ;Yes, go to AMIGAMemoryVirus
  1685. cmp.l #0,(a3)+            ;count ColdRelativeMemoryPositionVirusNameList
  1686. sub.l #1,d0            ;count down
  1687. cmp.l #0,d0            ;Zero ?
  1688. bne CompareColdRelativeMemoryPositionLoop;No, continue the loop !
  1689.  
  1690. CoolRelativeMemoryPosition:
  1691. move.l #23,d0
  1692. lea CoolRelativeMemoryPositionVirusOffsetList(pc),a0
  1693. lea CoolRelativeMemoryPositionVirusTestbytesList(pc),a1
  1694. lea CoolRelativeMemoryPositionVirusNameList(pc),a3
  1695.  
  1696. CompareCoolRelativeMemoryPositionLoop:
  1697. move.l (a0)+,d1            ;get offset
  1698. move.l ExecBase,a6        ;get ExecBase
  1699. move.l 46(a6),d2        ;get CoolCapture-Startaddress
  1700. add.l d2,d1            ;add offset to this Startaddress
  1701. move.l d1,a2            ;write d1 to a2
  1702. move.l (a2),d1            ;write longword from memory to d1
  1703. cmp.l (a1)+,d1            ;is this longword = testbytes ?
  1704. beq AMIGAMemoryVirus        ;Yes, go to AMIGAMemoryVirus
  1705. cmp.l #0,(a3)+            ;count CoolRelativeMemoryPositionVirusNameList
  1706. sub.l #1,d0            ;count down
  1707. cmp.l #0,d0            ;Zero ?
  1708. bne CompareCoolRelativeMemoryPositionLoop;No, continue the loop !
  1709.  
  1710. KickTagRelativeMemoryPosition:
  1711. move.l #56,d0
  1712. lea KickTagRelativeMemoryPositionVirusOffsetList(pc),a0
  1713. lea KickTagRelativeMemoryPositionVirusTestbytesList(pc),a1
  1714. lea KickTagRelativeMemoryPositionVirusNameList(pc),a3
  1715.  
  1716. CompareKickTagRelativeMemoryPositionLoop:
  1717. move.l (a0)+,d1            ;get offset
  1718. move.l ExecBase,a6        ;get ExecBase
  1719. move.l 550(a6),d2        ;get KickTagPtr-Startaddress
  1720. add.l d2,d1            ;add offset to this Startaddress
  1721. move.l d1,a2            ;write d1 to a2
  1722. move.l (a2),d1            ;write longword from memory to d1
  1723. cmp.l (a1)+,d1            ;is this longword = testbytes ?
  1724. beq AMIGAMemoryVirus        ;Yes, go to AMIGAMemoryVirus
  1725. cmp.l #0,(a3)+            ;count KickTagRelativeMemoryPositionVirusNameList
  1726. sub.l #1,d0            ;count down
  1727. cmp.l #0,d0            ;Zero ?
  1728. bne CompareKickTagRelativeMemoryPositionLoop;No, continue the loop !
  1729.  
  1730. CheckMemNext:
  1731. lea HochofenName(pc),a1        ;get HochofenName-Address
  1732. bsr Task            ;jump to subroutine
  1733. cmp.l #0,d0            ;Zero ?
  1734. bne Hochofen            ;No, its the Hochofen-virus
  1735.  
  1736. lea ModemCheckerName(pc),a1    ;get ModemCheckerName-Address
  1737. bsr Task            ;jump to subroutine
  1738. cmp.l #0,d0            ;Zero ?
  1739. bne ModemChecker        ;No, its the ModemChecker-virus
  1740. bra KillMem            ;jump to KillMem
  1741.  
  1742. Task:
  1743. move.l ExecBase,a6        ;get ExecBase
  1744. jsr FindTask(a6)        ;call subroutine
  1745. rts                ;return from subroutine
  1746.  
  1747. KillMem:
  1748. move.l ExecBase,a6        ;get ExecBase
  1749. cmp.l #0,42(a6)            ;is ColdCapture at zero ?
  1750. bne AskColdCapture        ;No, jump to AskColdCapture
  1751. cmp.l #0,46(a6)            ;is CoolCapture at zero ?
  1752. bne AskCoolCapture        ;No, jump to AskCoolCapture
  1753. cmp.l #0,550(a6)        ;is KickTagPtr at zero ?
  1754. bne AskKickTagPtr        ;No, jump to KickTagPtr
  1755.  
  1756. KillMem2:
  1757. bra NoAMIGAMemoryVirus        ;jump to NoAMIGAMemoryVirus
  1758.  
  1759. AskColdCapture:
  1760. Requester #AColdText,#Yes,#No,#360,#70
  1761. cmp.l #1,d0            ;was Yes-Gadget touched ?
  1762. beq KillColdCapture        ;Yes, KillColdCapture
  1763. bra NoAMIGAMemoryVirus        ;No, jump to NoAMIGAMemoryVirus
  1764.  
  1765. AskCoolCapture:
  1766. Requester #ACoolText,#Yes,#No,#360,#70
  1767. cmp.l #1,d0            ;was Yes-Gadaget touched ?
  1768. beq KillCoolCapture        ;Yes, KillCoolCapture
  1769. bra NoAMIGAMemoryVirus        ;No, jump to NoAMIGAMemoryVirus
  1770.  
  1771. AskKickTagPtr:
  1772. Requester #AKickText,#Yes,#No,#360,#70
  1773. cmp.l #1,d0            ;was Yes-Gadget touched
  1774. beq KillKickTagPtr        ;Yes, KillKickTagPtr
  1775. bra NoAMIGAMemoryVirus        ;No, jump to NoAMIGAMemoryVirus
  1776.  
  1777. KillColdCapture:
  1778. move.l 4,a6            ;get ExecBase
  1779. clr.l 42(a6)            ;clear ColdCapture
  1780. bsr ChkSum            ;calculate new ChkSum
  1781. rts                ;return from subroutine
  1782.  
  1783. KillCoolCapture:
  1784. move.l 4,a6            ;get ExecBase
  1785. clr.l 46(a6)            ;clear CoolCapture
  1786. bsr ChkSum            ;calculate new ChkSum
  1787. rts                ;return from subroutine
  1788.  
  1789. ChkSum:
  1790. clr.w 82(a6)            ;clear old ChkSum
  1791. lea 34(a6),a0            ;get Versionnumber
  1792. clr.l d0            ;clear d0
  1793. moveq #23,d0            ;get counter
  1794. clr.w d1            ;clear d1
  1795. ChkSumLoop:
  1796. add.w (a0)+,d1            ;add the lower words
  1797.                 ;of the ExecBase-structure
  1798. dbf d0,ChkSumLoop        ;until d0 is count down
  1799.  
  1800. not.w d1            ;invert this sum
  1801. move.w d1,82(a6)        ;get new ChkSum
  1802. clr.l d0            ;clear d0
  1803. rts                ;return from subroutine
  1804.  
  1805. KillKickMemPtr:
  1806. move.l 4,a6            ;get ExecBase
  1807. move.l 546(a6),a0        ;get KickMemPtr
  1808. move.l (a0),d0            ;get successor
  1809. move.l d0,546(a6)        ;enter address of successor
  1810.                 ;to KickMemPtr
  1811. bsr KillKickCheckSum        ;calculate new KickCheckSum
  1812. rts                ;return from subroutine
  1813.  
  1814. KillKickTagPtr:
  1815. move.l 4,a6            ;get ExecBase
  1816. move.l 550(a6),a0        ;get KickTagPtr
  1817. move.l 4(a0),d0            ;get successor
  1818. move.l d0,550(a6)        ;enter address of successor
  1819.                 ;to KickTagPtr
  1820. bsr KillKickCheckSum        ;calculate new KickCheckSum
  1821. rts                ;return from subroutine
  1822.  
  1823. KillKickCheckSum:
  1824. move.l 4,a6            ;get ExecBase
  1825. jsr -612(a6)            ;call subroutine
  1826. move.l d0,554(a6)        ;enter new KickCheckSum
  1827.                 ;to KickCheckSum
  1828. rts                ;return from subroutine
  1829.  
  1830. FindTrackDisk:
  1831. move.l ExecBase,a6        ;get ExecBase
  1832. lea $0000015E(a6),a0        ;ListPtr
  1833. lea TrackName(pc),a1        ;Name
  1834. jsr FindName(a6)        ;call subroutine
  1835. move.l d0,a1            ;get address of TrackDisk
  1836. rts                ;return from subroutine
  1837.  
  1838. Findkeyboard:
  1839. move.l ExecBase,a6        ;get ExecBase
  1840. lea $0000015E(a6),a0        ;ListPtr
  1841. lea KeyName(pc),a1        ;Name
  1842. jsr FindName(a6)        ;call subroutine
  1843. move.l d0,a1            ;get address of Keyboard
  1844. rts                ;return from subroutine
  1845.  
  1846. returntoSystem:
  1847. rts                ;return from subroutine
  1848.  
  1849. even
  1850. AColdText:
  1851. dc.b `Shall I restore ColdCapture ?`,0
  1852.  
  1853. even
  1854. ACoolText:
  1855. dc.b `Shall I restore CoolCapture ?`,0
  1856.  
  1857. even
  1858. AKickText:
  1859. dc.b `Shall I restore KickTagPtr ?`,0
  1860.  
  1861. even
  1862. TrackName:
  1863. dc.b `trackdisk.device`,0
  1864.  
  1865. even
  1866. KeyName:
  1867. dc.b `keyboard.device`,0
  1868.  
  1869. even
  1870. Hochofenname:
  1871. dc.b `Greetings to Hochofen`,0
  1872.  
  1873. even
  1874. ModemCheckerName:
  1875. dc.b `Diskdriver.proc`,0
  1876.  
  1877. even
  1878. AbsoluteMemoryPositionVirusNameList:
  1879. dc.l The16BitCrewText
  1880. dc.l The2001Text
  1881. dc.l AEKText
  1882. dc.l AIDSText
  1883. dc.l AlienNewBeatText
  1884. dc.l AmigaMasterText
  1885. dc.l ASSText
  1886. dc.l ASVText
  1887. dc.l AsylantText
  1888. dc.l BamigaSectorOneText
  1889. dc.l BBProtText
  1890. dc.l BeethovenText
  1891. dc.l BigBossText
  1892. dc.l BlackflashText
  1893. dc.l BladeRunnersText
  1894. dc.l BLFText
  1895. dc.l BlowJobText
  1896. dc.l BretHawnesText
  1897. dc.l ButonicText
  1898. dc.l ByteVoyagerText
  1899. dc.l ByteVoyagerIIText
  1900. dc.l CascadeText
  1901. dc.l ClonkText
  1902. dc.l CodersNightmareText
  1903. dc.l ColorText
  1904. dc.l CompuPhagozyteText
  1905. dc.l CompuPhagozyte2Text
  1906. dc.l CompuPhagozyteIIText
  1907. dc.l CompuPhagozyteIIIText
  1908. dc.l CompuPhagozyteIIIBCText
  1909. dc.l CompuPhagozyteIVText
  1910. dc.l DStructureText
  1911. dc.l DAGText
  1912. dc.l DAT89Text
  1913. dc.l DATACRIMEText
  1914. dc.l DigitalEmotionsText
  1915. dc.l DisgustText
  1916. dc.l DiskguardText
  1917. dc.l DiskHerpesText
  1918. dc.l DiskTerminatorText
  1919. dc.l DottyText
  1920. dc.l DUMDUMText
  1921. dc.l ExcrementText
  1922. dc.l ExecutorsText
  1923. dc.l FASTText
  1924. dc.l FastEddieText
  1925. dc.l GadaffiText
  1926. dc.l GlasnostText
  1927. dc.l GoldenRiderText
  1928. dc.l GraffitiText
  1929. dc.l GremlinText
  1930. dc.l GXTeamText
  1931. dc.l GyrosText
  1932. dc.l HCSText
  1933. dc.l HCSIIText
  1934. dc.l HillyText
  1935. dc.l HODENText
  1936. dc.l IceText
  1937. dc.l IndianaJonesText
  1938. dc.l InfectorText
  1939. dc.l InfluenzaText
  1940. dc.l INGOText
  1941. dc.l JITRText
  1942. dc.l JulieText
  1943. dc.l KaukiText
  1944. dc.l KefrensText
  1945. dc.l KilledText
  1946. dc.l LADSText
  1947. dc.l LoverboySexmachineText
  1948. dc.l LSDText
  1949. dc.l MADIIText
  1950. dc.l MEXXText
  1951. dc.l MGM89Text
  1952. dc.l MOSHText
  1953. dc.l MOSH2Text
  1954. dc.l MutilatorText
  1955. dc.l NANOoldText
  1956. dc.l NANOnewText
  1957. dc.l NastyNastyText
  1958. dc.l NorthStarText
  1959. dc.l NorthStarIIText
  1960. dc.l OverkillText
  1961. dc.l PARATAXIText
  1962. dc.l PARATAXIIIText
  1963. dc.l PayDayText
  1964. dc.l PentagonSlayerText
  1965. dc.l PentagonSlayer2Text
  1966. dc.l PentagonSlayer3Text
  1967. dc.l PlastiqueText
  1968. dc.l REPText
  1969. dc.l REVENGEText
  1970. dc.l SachsenText
  1971. dc.l SADDAMHUSSEINText
  1972. dc.l SaoPauloText
  1973. dc.l SATANText
  1974. dc.l SCAText
  1975. dc.l SendarionText
  1976. dc.l SherlockText
  1977. dc.l SmilyCancerText
  1978. dc.l SSText
  1979. dc.l SSIIText
  1980. dc.l SuicideMachineText
  1981. dc.l SuperboyText
  1982. dc.l SupplyTeamText
  1983. dc.l SystemZV30Text
  1984. dc.l SystemZV40Text
  1985. dc.l SystemZV50Text
  1986. dc.l SystemZV51Text
  1987. dc.l SystemZV53Text
  1988. dc.l SystemZV54Text
  1989. dc.l SystemZV61Text
  1990. dc.l TargetText
  1991. dc.l TelStarText
  1992. dc.l TermigatorText
  1993. dc.l TIMEBOMBText
  1994. dc.l TNKText
  1995. dc.l TomatesGentechnic10Text
  1996. dc.l TomatesGentechnic20text
  1997. dc.l TURKText
  1998. dc.l UltrafoxText
  1999. dc.l USSR492Text
  2000. dc.l VirusConstructionSetBootblockText
  2001. dc.l VirusSlayerText
  2002. dc.l VirusV1Text
  2003. dc.l WahnfriedText
  2004. dc.l WARHAWKText
  2005. dc.l ZaccessV10Text
  2006. dc.l ZLXText
  2007. dc.l ZombiText
  2008.  
  2009. even
  2010. AbsoluteMemoryPositionVirusTestbytesList:
  2011. dc.l $43726577
  2012. dc.l $30303132
  2013. dc.l ` AEK`
  2014. dc.l $48495621
  2015. dc.l `ALIE`
  2016. dc.l `Mast`
  2017. dc.l `ROTE`
  2018. dc.l `SV!A`
  2019. dc.l `ASYL`
  2020. dc.l `BS1!`
  2021. dc.l `B-Pr`
  2022. dc.l `BETH`
  2023. dc.l `A!BI`
  2024. dc.l `blac`
  2025. dc.l `lade`
  2026. dc.l `trac`
  2027. dc.l `cato`
  2028. dc.l `BRET`
  2029. dc.l `BAHA`
  2030. dc.l `VOYA`
  2031. dc.l `oyag`
  2032. dc.l `Casc`
  2033. dc.l `LONK`
  2034. dc.l `oder`
  2035. dc.l `TURK`
  2036. dc.l `gozy`
  2037. dc.l `The `
  2038. dc.l `COMP`
  2039. dc.l `agoz`
  2040. dc.l `gozy`
  2041. dc.l `agoz`
  2042. dc.l `Stru`
  2043. dc.l `from`
  2044. dc.l `T '8`
  2045. dc.l `DATA`
  2046. dc.l `EMOT`
  2047. dc.l `Viru`
  2048. dc.l `DISK`
  2049. dc.l ` H e`
  2050. dc.l `isk-`
  2051. dc.l `Dott`
  2052. dc.l `MDUM`
  2053. dc.l `EXCR`
  2054. dc.l `XECU`
  2055. dc.l `ains`
  2056. dc.l `EDDI`
  2057. dc.l $47414441
  2058. dc.l `Glas`
  2059. dc.l `Gold`
  2060. dc.l `fiti`
  2061. dc.l `grap`
  2062. dc.l `libr`
  2063. dc.l `GYRO`
  2064. dc.l $482E432E
  2065. dc.l `H.C.`
  2066. dc.l `dos.`
  2067. dc.l `HODE`
  2068. dc.l `INC!`
  2069. dc.l `ndia`
  2070. dc.l `INFE`
  2071. dc.l `I N `
  2072. dc.l `INGO`
  2073. dc.l `JITR`
  2074. dc.l `dos.`
  2075. dc.l `dos.`
  2076. dc.l `efre`
  2077. dc.l `Kill`
  2078. dc.l `LADS`
  2079. dc.l `Love`
  2080. dc.l $4C534421
  2081. dc.l $004D4144
  2082. dc.l `MEXX`
  2083. dc.l `MGM8`
  2084. dc.l `MOSH`
  2085. dc.l `MOSH`
  2086. dc.l `grap`
  2087. dc.l `N A `
  2088. dc.l `Nano`
  2089. dc.l `Nast`
  2090. dc.l $4E4F5254
  2091. dc.l $57726974
  2092. dc.l `Over`
  2093. dc.l `PARA`
  2094. dc.l `PARA`
  2095. dc.l `PayD`
  2096. dc.l $656E7461
  2097. dc.l `enta`
  2098. dc.l `enta`
  2099. dc.l ` L A`
  2100. dc.l `REP!`
  2101. dc.l $52657665
  2102. dc.l `ACHS`
  2103. dc.l `2000`
  2104. dc.l `PAUL`
  2105. dc.l `ATAN`
  2106. dc.l $53434121
  2107. dc.l `Send`
  2108. dc.l `ORSI`
  2109. dc.l $52494F4E
  2110. dc.l `!SS!`
  2111. dc.l `HEIL`
  2112. dc.l `uici`
  2113. dc.l `Supe`
  2114. dc.l `uppl`
  2115. dc.l ` V3.`
  2116. dc.l ` V4.`
  2117. dc.l ` V5.`
  2118. dc.l `5.1 `
  2119. dc.l `V5.3`
  2120. dc.l `V5.4`
  2121. dc.l `V6.1`
  2122. dc.l $43524E00
  2123. dc.l `grap`
  2124. dc.l `NsAx`
  2125. dc.l $424F4D42
  2126. dc.l `TNK!`
  2127. dc.l `OMAT`
  2128. dc.l `Toma`
  2129. dc.l `TURK`
  2130. dc.l `NuNu`
  2131. dc.l `Sent`
  2132. dc.l $00BFE001
  2133. dc.l `VIRU`
  2134. dc.l `sind`
  2135. dc.l `AHNF`
  2136. dc.l `WARH`
  2137. dc.l `ZACC`
  2138. dc.l `ZLX!`
  2139. dc.l `bi I`
  2140.  
  2141. even
  2142. AbsoluteMemorypositionVirusOffsetList:
  2143. dc.l $0007EDE0
  2144. dc.l $0007EFE8
  2145. dc.l $0007EFD0
  2146. dc.l $0007EFF0
  2147. dc.l $00020240
  2148. dc.l $0007EF30
  2149. dc.l $0007F4B2
  2150. dc.l $0007DF00
  2151. dc.l $0007EF30
  2152. dc.l $0007EFE8
  2153. dc.l $0007A338
  2154. dc.l $0007F008
  2155. dc.l $0007EFE2
  2156. dc.l $0007F010
  2157. dc.l $0007EF30
  2158. dc.l $0007F31A
  2159. dc.l $0007F02E
  2160. dc.l $0007F004
  2161. dc.l $0007EF2C
  2162. dc.l $0007F330
  2163. dc.l $0007F2E2
  2164. dc.l $0007E3E2
  2165. dc.l $0007D398
  2166. dc.l $0007FA5C
  2167. dc.l $00070260
  2168. dc.l $0007C400
  2169. dc.l $0007C380
  2170. dc.l $0007C1B0
  2171. dc.l $0007C35C
  2172. dc.l $0007C030
  2173. dc.l $0007C030
  2174. dc.l $0007C168
  2175. dc.l $0007EFB6
  2176. dc.l $0007FAC0
  2177. dc.l $0007DDC6
  2178. dc.l $0007EE80
  2179. dc.l $0007EDB8
  2180. dc.l $0007FCF4
  2181. dc.l $0007EF90
  2182. dc.l $0007EF24
  2183. dc.l $0007F018
  2184. dc.l $0007FA10
  2185. dc.l $0007F454
  2186. dc.l $0007EF48
  2187. dc.l $0007F240
  2188. dc.l $0007F3D4
  2189. dc.l $0007FB40
  2190. dc.l $0007F730
  2191. dc.l $0007C34C
  2192. dc.l $0007EF90
  2193. dc.l $0007F760
  2194. dc.l $0007F8C0
  2195. dc.l $0007EE3E
  2196. dc.l $0007EF44
  2197. dc.l $0007EF4E
  2198. dc.l $0007F440
  2199. dc.l $0007F2D4
  2200. dc.l $0007EFE4
  2201. dc.l $0007E91E
  2202. dc.l $0007F310
  2203. dc.l $0007F3D2
  2204. dc.l $0007F408
  2205. dc.l $0007EC18
  2206. dc.l $0007F826
  2207. dc.l $0007EE98
  2208. dc.l $0007EFAC
  2209. dc.l $0007EE64
  2210. dc.l $0007F408
  2211. dc.l $0007EDD6
  2212. dc.l $0007EFE4
  2213. dc.l $0007FB72
  2214. dc.l $0007EFE4
  2215. dc.l $0007E582
  2216. dc.l $0007C016
  2217. dc.l $0007C016
  2218. dc.l $0007CD4C
  2219. dc.l $0007C492
  2220. dc.l $0007C03A
  2221. dc.l $0007F1D6
  2222. dc.l $0007EF84
  2223. dc.l $0007EF9A
  2224. dc.l $0007F722
  2225. dc.l $0007EFCC
  2226. dc.l $0007EE82
  2227. dc.l $0007EC10
  2228. dc.l $0007FD86
  2229. dc.l $0007F368
  2230. dc.l $0007E2DA
  2231. dc.l $0007EE12
  2232. dc.l $0007EFE4
  2233. dc.l $0007E3E2
  2234. dc.l $000782D8
  2235. dc.l $0007F012
  2236. dc.l $0007FEF0
  2237. dc.l $0007CF26
  2238. dc.l $0007EFE8
  2239. dc.l $0007E3E2
  2240. dc.l $0007FCF6
  2241. dc.l $0007FB00
  2242. dc.l $0007C012
  2243. dc.l $0007C01A
  2244. dc.l $0007E424
  2245. dc.l $0007EEE2
  2246. dc.l $0007F2C8
  2247. dc.l $0007F42A
  2248. dc.l $0007F42A
  2249. dc.l $0007F42A
  2250. dc.l $0007F42C
  2251. dc.l $0007F42A
  2252. dc.l $0007F42A
  2253. dc.l $0007F42A
  2254. dc.l $0007ED9C
  2255. dc.l $0007FED4
  2256. dc.l $0007F712
  2257. dc.l $00070346
  2258. dc.l $0007EFE4
  2259. dc.l $00070182
  2260. dc.l $0007F640
  2261. dc.l $0007F066
  2262. dc.l $0007EDB0
  2263. dc.l $0007F454
  2264. dc.l $0007F146
  2265. dc.l $0007FA10
  2266. dc.l $0007EF22
  2267. dc.l $0007F312
  2268. dc.l $0007E966
  2269. dc.l $0007EDD6
  2270. dc.l $0007EFE4
  2271. dc.l $0007A18C
  2272.  
  2273.  
  2274. even
  2275. ColdRelativeMemoryPositionVirusNameList:
  2276. dc.l DestructorText
  2277. dc.l DiskVal1234Text
  2278. dc.l HARDEXText
  2279. dc.l Joshua2Text
  2280. dc.l LAMEText
  2281. dc.l LOOMText
  2282. dc.l RISCText
  2283. dc.l SADDAMText
  2284.  
  2285. even
  2286. ColdRelativeMemoryPositionVirusTestbytesList:
  2287. dc.l `estr`
  2288. dc.l $0C681234
  2289. dc.l `RDEX`
  2290. dc.l `trac`
  2291. dc.l `LAME`
  2292. dc.l `LOOO`
  2293. dc.l `ISC `
  2294. dc.l `libr`
  2295.  
  2296. even
  2297. ColdRelativeMemoryPositionVirusOffsetList:
  2298. dc.l $00000180
  2299. dc.l $00000148
  2300. dc.l $0000057E
  2301. dc.l $00000242
  2302. dc.l $0000014A
  2303. dc.l $0000057C
  2304. dc.l $0000057E
  2305. dc.l $00000560
  2306.  
  2307. even
  2308. CoolRelativeMemoryPositionVirusNameList:
  2309. dc.l AIDS2Text
  2310. dc.l AngelText
  2311. dc.l AustralianParasiteText
  2312. dc.l BadBytesText
  2313. dc.l BlizzProV31Text
  2314. dc.l BlizzProV33Text
  2315. dc.l CCCPText
  2316. dc.l CrackerExterminatorText
  2317. dc.l Crime2Text
  2318. dc.l CrimePlusText
  2319. dc.l DarthVaderText
  2320. dc.l DiskDoktorsText
  2321. dc.l DISKFurunkelText
  2322. dc.l DivinaExterminatorText
  2323. dc.l ExcrementText
  2324. dc.l LameBlameText
  2325. dc.l MICROSYSTEMSText
  2326. dc.l MOSH2Text
  2327. dc.l ObeliskText
  2328. dc.l PARATAXIIText
  2329. dc.l QRDLText
  2330. dc.l USSR492Text
  2331. dc.l WAFTText
  2332.  
  2333. even
  2334. CoolRelativeMemoryPositionVirusTestbytesList:
  2335. dc.l `A'e*`
  2336. dc.l `Ange`
  2337. dc.l `Aust`
  2338. dc.b `TTS `
  2339. dc.l `Bliz`
  2340. dc.l `Bliz`
  2341. dc.l `CCCP`
  2342. dc.l `CRAC`
  2343. dc.l `Crim`
  2344. dc.l `rime`
  2345. dc.l `DART`
  2346. dc.l `Dokt`
  2347. dc.l `DISK`
  2348. dc.l `IVIN`
  2349. dc.l `EXCR`
  2350. dc.l `ameB`
  2351. dc.l `MICR`
  2352. dc.l `MOSH`
  2353. dc.l `GURU`
  2354. dc.l `ARAT`
  2355. dc.l `QRDL`
  2356. dc.l `Sent`
  2357. dc.l `est-`
  2358.  
  2359. even
  2360. CoolRelativeMemoryPositionVirusOffsetList:
  2361. dc.l $0000033E
  2362. dc.l $00000262
  2363. dc.l $000002DE
  2364. dc.l $00000310
  2365. dc.l -$00000222
  2366. dc.l -$00000238
  2367. dc.l -$00000030
  2368. dc.l -$00000096
  2369. dc.l $00000346
  2370. dc.l $000002B8
  2371. dc.l $00000268
  2372. dc.l $0000017C
  2373. dc.l $0000035C
  2374. dc.l $000002EA
  2375. dc.l -$00000026
  2376. dc.l $00000050
  2377. dc.l $0000032C
  2378. dc.l -$00000072
  2379. dc.l -$00000034
  2380. dc.l $0000013C
  2381. dc.l $00000190
  2382. dc.l -$00000026
  2383. dc.l $000002DE
  2384.  
  2385. even
  2386. KickTagRelativeMemoryPositionVirusNameList:
  2387. dc.l AmigaFreakText
  2388. dc.l AmigaKnightText
  2389. dc.l BGS9Text
  2390. dc.l BootXText
  2391. dc.l ByteBanditText
  2392. dc.l ByteBanditPlusText
  2393. dc.l ByteBandit2Text
  2394. dc.l ByteBanditturboText
  2395. dc.l ByteWarriorText
  2396. dc.l CobraText
  2397. dc.l DetlefText
  2398. dc.l DisasterMasterText
  2399. dc.l ElectroVisionText
  2400. dc.l EuropeanText
  2401. dc.l ExtremeText
  2402. dc.l FICAText
  2403. dc.l ForpibText
  2404. dc.l FrityText
  2405. dc.l GermanyText
  2406. dc.l GuardiansBootAidsText
  2407. dc.l HaukeText
  2408. dc.l IncognitoText
  2409. dc.l IngerIQText
  2410. dc.l IngosReturnText
  2411. dc.l IRQText
  2412. dc.l JeffBUTONICV131Text
  2413. dc.l JeffBUTONICV300Text
  2414. dc.l JoshuaText
  2415. dc.l LamerExterminatoroldIIIText
  2416. dc.l LamerExterminatornewText
  2417. dc.l LamerExterminatorIText
  2418. dc.l LamerExterminatorIIText
  2419. dc.l LamerExterminatorIVVText
  2420. dc.l LamerExterminatorVIText
  2421. dc.l LamerExterminatorVIIText
  2422. dc.l LamerExterminatorVIIIText
  2423. dc.l NaSTText
  2424. dc.l Obelisk2Text
  2425. dc.l OPAPAText
  2426. dc.l ReturnoftheLamerExterminatorText
  2427. dc.l RevengeBootloaderText
  2428. dc.l RevengeOfTheLAMERExterminatorText
  2429. dc.l RevengeOfTheLAMERExterminatorText
  2430. dc.l SCARFACEText
  2431. dc.l SEPULTURAText
  2432. dc.l ShitText
  2433. dc.l SonjaText
  2434. dc.l SystemZV64Text
  2435. dc.l SystemZV65Text
  2436. dc.l TerroristsText
  2437. dc.l TFCRevengeText
  2438. dc.l UKLamerStyleText
  2439. dc.l VIPHSText
  2440. dc.l WarsawAvengerText
  2441. dc.l ZaccessV20Text
  2442. dc.l ZaccessV30Text
  2443.  
  2444. even
  2445. KickTagRelativeMemoryPositionVirusTestbytesList:
  2446. dc.l `AMIG`
  2447. dc.l `STAR`
  2448. dc.l `TTV1`
  2449. dc.l `Boot`
  2450. dc.l $42616E64
  2451. dc.l `NqNq`
  2452. dc.l `dos.`
  2453. dc.l `trac`
  2454. dc.l `Viru`
  2455. dc.l `OBRA`
  2456. dc.l `intu`
  2457. dc.l `-seq`
  2458. dc.l `ELEC`
  2459. dc.l `Euro`
  2460. dc.l `XTRE`
  2461. dc.l `F.I.`
  2462. dc.l `FORP`
  2463. dc.l `rity`
  2464. dc.l `Germ`
  2465. dc.l `-aid`
  2466. dc.l `Hauk`
  2467. dc.l `dos.`
  2468. dc.l `nger`
  2469. dc.l `INGO`
  2470. dc.l `RQ-T`
  2471. dc.l `JEFF`
  2472. dc.l `DASA`
  2473. dc.l `trac`
  2474. dc.l `LAME`
  2475. dc.l `LAME`
  2476. dc.l `AMER`
  2477. dc.l `LAME`
  2478. dc.l `AMER`
  2479. dc.l `AMER`
  2480. dc.l `LAME`
  2481. dc.l `LAME`
  2482. dc.l `NaST`
  2483. dc.l `BELI`
  2484. dc.l `PARA`
  2485. dc.l `amer`
  2486. dc.l `Reve`
  2487. dc.l $38204F63
  2488. dc.l `1986`
  2489. dc.l `SCAR`
  2490. dc.l `brar`
  2491. dc.l `SHIT`
  2492. dc.l `onja`
  2493. dc.l `V6.4`
  2494. dc.l `V6.5`
  2495. dc.l `TTV1`
  2496. dc.l `anat`
  2497. dc.l `devi`
  2498. dc.l `VIPH`
  2499. dc.l `rsaw`
  2500. dc.l `ZACC`
  2501. dc.l `ACCE`
  2502.  
  2503. even
  2504. KickTagRelativeMemoryPositionVirusOffsetList:
  2505. dc.l -$000003C4
  2506. dc.l $00000242
  2507. dc.l $00000A26
  2508. dc.l -$00000184
  2509. dc.l -$000003C2
  2510. dc.l -$0000013C
  2511. dc.l -$000003BC
  2512. dc.l -$0000002A
  2513. dc.l $000002B4
  2514. dc.l -$00000052
  2515. dc.l $00000218
  2516. dc.l $00000562
  2517. dc.l -$000003D2
  2518. dc.l -$000003D2
  2519. dc.l -$000001A2
  2520. dc.l $000004CA
  2521. dc.l -$000003C8
  2522. dc.l -$000003CA
  2523. dc.l -$000003D2
  2524. dc.l -$00000024
  2525. dc.l -$000003D2
  2526. dc.l -$000003BE
  2527. dc.l -$000003CE
  2528. dc.l -$0000002A
  2529. dc.l -$00000348
  2530. dc.l $0000099C
  2531. dc.l $000001A6
  2532. dc.l $000000EA
  2533. dc.l -$0000002E
  2534. dc.l -$00000028
  2535. dc.l -$00000022
  2536. dc.l -$0000002A
  2537. dc.l -$00000026
  2538. dc.l -$00000028
  2539. dc.l -$00000090
  2540. dc.l -$00000064
  2541. dc.l $0000009C
  2542. dc.l -$0000009C
  2543. dc.l -$00000098
  2544. dc.l -$000000DC
  2545. dc.l -$000003B8
  2546. dc.l -$00000834
  2547. dc.l -$0000082A
  2548. dc.l -$0000003E
  2549. dc.l $00000698
  2550. dc.l -$0000017C
  2551. dc.l -$0000001E
  2552. dc.l -$000003DA
  2553. dc.l -$000003DA
  2554. dc.l $0000007A
  2555. dc.l -$00000126 
  2556. dc.l -$000000E0
  2557. dc.l -$00000398
  2558. dc.l -$00000370
  2559. dc.l -$000003CC
  2560. dc.l -$0000019C
  2561.  
  2562. NoAMIGAMemoryVirus:
  2563.  
  2564. cmp.b #$FF,fastcheck        ;was fastcheck-flag set ?
  2565. beq returntoSystem        ;No, returntoSystem
  2566.  
  2567. move.l ExecBase,a6        ;get ExecBase
  2568. move.l #MEMF_LARGEST,d1        ;want connected memory
  2569. move.l #$5000,d0        ;want $5000 bytes
  2570. jsr AllocMem(a6)        ;call subroutine
  2571.  
  2572. move.l d0,DiskValMem        ;get MemPtr
  2573. tst.l d0            ;error ?
  2574. beq NoMemAlert            ;Yes, jump to NoMemAlert
  2575. clr.b TrackdiskFlag        ;clear TrackDiskFlag
  2576.  
  2577. clr.l AddressCounter        ;clear AddressCounter
  2578. clr.l DriveCounter        ;clear DriveCounter
  2579. clr.l DriveLoopCounter        ;clear DriveLoopCounter
  2580. clr.l OpenDriveCount        ;clear OpenDriveCount
  2581.  
  2582. OpenDrivesLoop:
  2583. bsr BootblockStart        ;open TrackDiskDevice
  2584. cmp.b #$FF,TrackdiskFlag    ;No more drives ?
  2585. beq OpenDrivesLoopEnd        ;Yes end the loop
  2586. add.l #4,AddressCounter        ;count up AddressCounter
  2587. add.l #1,DriveCounter        ;count up DriveCounter
  2588. add.l #1,OpenDriveCount        ;count up OpenDriveCount
  2589. cmp.l #4,OpenDriveCount        ;all floopydisks opened ?
  2590. bne OpenDrivesLoopEnd
  2591.  
  2592. OpenDrivesLoopEnd:
  2593. cmp.l #0,OpenDriveCount        ;TrackDisk-Error ?
  2594. beq IntuiEnde2            ;Yes, go to IntuiEnde2
  2595.  
  2596. sub.l #4,AddressCounter
  2597. sub.l #1,DriveCounter
  2598.  
  2599. move.l Intuibase(pc),a6        ;get Intuibase
  2600. lea NewWindow(pc),a0        ;get NewWindow-structure
  2601. jsr OpenWindow(a6)        ;call subroutine
  2602. move.l d0,Winhandle        ;get Winhandle
  2603. bra IntuiWait3            ;jump to IntuiWait3
  2604.  
  2605. IntuiWait:
  2606. move.l Winhandle(pc),a0        ;get Winhandle
  2607. move.l ExecBase,a6        ;get ExecBase
  2608. move.l 86(a0),a0        ;get Message
  2609. jsr GetMsg(a6)            ;call subroutine
  2610.  
  2611. IntuiWait3:
  2612. move.l Winhandle(pc),a0        ;get Winhandle
  2613. move.l 86(a0),a0        ;get Message
  2614. move.l ExecBase,a6        ;get ExecBase
  2615. jsr WaitPort(a6)        ;call subroutine
  2616. move.l d0,a1            ;get Message
  2617. move.l 20(a1),d1        ;write Message to d1    
  2618. cmp.l #$8000,d1            ;Diskinserted ?
  2619. beq VirusCheck          ;Yes, go to VirusCheck
  2620.  
  2621. IntuiPart2:
  2622. cmp.l #$200,d1            ;WindowClosed ?
  2623. beq IntuiEnde            ;Yes, end Intui
  2624. bra IntuiWait            ;Jump to IntuiWait
  2625.  
  2626. IntuiEnde:
  2627. move.l Winhandle(pc),a0        ;get Winhandle
  2628. move.l Intuibase(pc),a6        ;get Intuibase
  2629. jsr CloseWindow(a6)        ;call subroutine
  2630.  
  2631. clr.l AddressCounter        ;clear AddressCounter
  2632. clr.l DriveCounter        ;clear DriveCounter
  2633. clr.l DriveLoopCounter        ;clear DriveLoopCounter
  2634.  
  2635. CloseDriveLoop:
  2636. add.l #1,DriveLoopCounter    ;count up DriveLoopCounter
  2637. bsr BootblockEnde        ;close TrackDiskDevice
  2638. add.l #4,AddressCounter        ;count up AddressCounter
  2639. add.l #1,DriveCounter        ;count up DriveCounter
  2640. move.l DriveLoopCounter(pc),d0
  2641. cmp.l OpenDriveCount,d0        ;all drives closed ?
  2642. bne CloseDriveLoop        ;No, continue the loop
  2643.  
  2644. IntuiEnde2:
  2645. move.l ExecBase,a6        ;get ExecBase
  2646. move.l DiskValMem(pc),a1    ;get MemPtr
  2647. move.l #$5000,d0        ;deallocate $5000 bytes
  2648. jsr FreeMem(a6)            ;call subroutine
  2649. rts                ;return from subroutine
  2650.  
  2651. Even
  2652. NewWindow:
  2653. dc.w 100
  2654. dc.w 0
  2655. dc.w 400
  2656. dc.w 10
  2657. dc.b 0
  2658. dc.b 1
  2659. dc.l $200!$8000
  2660. dc.l $1000!1!2!4!8
  2661. dc.l 0
  2662. dc.l 0
  2663. dc.l Windowtitle
  2664. dc.l 0
  2665. dc.l 0
  2666. dc.w 300
  2667. dc.w 10
  2668. dc.w 300
  2669. dc.w 10
  2670. dc.w 1
  2671.  
  2672.  
  2673. even
  2674. WindowTitle:
  2675. dc.b `AntiCicloVir V2.3a by Matthias Gutt`,0
  2676.  
  2677. even
  2678. Winhandle:
  2679. dc.l 0
  2680.  
  2681.  
  2682. BootblockStart:
  2683. move.l ExecBase,a6        ;get ExecBase
  2684. move.l #MEMF_CHIP!MEMF_LARGEST,d1;get connected CHIP-RAM
  2685. move.l #$2048,d0        ;want $2048 bytes
  2686. jsr AllocMem(a6)        ;call subroutine
  2687. tst.l d0            ;error ?
  2688. beq BootblockCheckEnde        ;Yes, end BootblockCheck
  2689. lea Sectorbuffer(pc),a0        ;get Sectorbuffer
  2690. add.l AddressCounter(pc),a0    
  2691. move.l d0,(a0)          ;No, get Sectorbufferaddress
  2692. move.l d0,TrackSecBuffer    ;get Sectorbuffer in
  2693.                 ;TDIOStdReq-structure
  2694. cmp.l #0,DriveCounter        ;first floopydisk ?
  2695. bne BootblockStart2        ;No, skip to BBStart2
  2696.  
  2697. move.l #0,a1            ;my task
  2698. bsr Task            ;jump to subroutine
  2699. move.l d0,AntiCicloTask        ;get TaskPtr
  2700.  
  2701. move.l ExecBase,a6        ;get ExecBase
  2702. move.l #-1,d0            ;allocate free signal
  2703. jsr AllocSignal(a6)        ;call subroutine
  2704. cmp.l #0,d0            ;error ?
  2705. ble BootblockCheckEnde        ;Yes, end the BootblockCheck
  2706. clr.l d7            ;No, clear d7
  2707. move.l d0,d7            ;get Signalbit
  2708. move.b d0,Sigbit        ;get Signalbit in
  2709.                 ;MsgPort-Structure
  2710. BootblockStart2:
  2711. move.l ExecBase,a6        ;get ExecBase-address
  2712. move.l #MEMF_PUBLIC!MEMF_CHIP!MEMF_CLEAR!MEMF_LARGEST,d1
  2713. move.l #100,d0            ;need 100 bytes
  2714. jsr AllocMem(a6)        ;call subroutine
  2715. tst.l d0            ;error ?
  2716. beq FreeSignalIt        ;Yes, end BootBlockCheck
  2717. lea DeviceMem(pc),a0
  2718. add.l AddressCounter(pc),a0
  2719. move.l d0,(a0)            ;get MemPtr
  2720. move.l d0,TrackDeviceMem    ;get DeviceMem in
  2721.                 ;TDIOStdReq-structure
  2722.  
  2723. move.l ExecBase,a6        ;get ExecBase
  2724. lea DeviceMem(pc),a0
  2725. add.l AddressCounter(pc),a0
  2726. move.l (a0),a1            ;get MemPtr
  2727. lea Device(pc),a0        ;get Device-structure
  2728. move.l #40,d0            ;get size
  2729. jsr CopyMem(a6)            ;call subroutine
  2730.  
  2731. move.l ExecBase,a6        ;get ExecBase
  2732. move.l #MEMF_PUBLIC!MEMF_CHIP!MEMF_CLEAR!MEMF_LARGEST,d1
  2733. move.l #100,d0            ;need 100 bytes
  2734. jsr AllocMem(a6)        ;call subroutine
  2735. tst.l d0            ;error ?
  2736. beq BootblockCheckEnde2        ;Yes, end BootBlockCheck
  2737. lea UnitMem(pc),a0
  2738. add.l AddressCounter(pc),a0
  2739. move.l d0,(a0)                ;get MemPtr
  2740. move.l d0,TrackUnitMem      ;get UnitMem in
  2741.                 ;TDIOStdReq-structure
  2742.  
  2743. move.l ExecBase,a6        ;get ExecBase
  2744. lea UnitMem(pc),a0
  2745. add.l AddressCounter(pc),a0
  2746. move.l (a0),a1            ;get MemPtr
  2747. lea Unit(pc),a0            ;get Unit-structure
  2748. move.l #40,d0            ;get size
  2749. jsr CopyMem(a6)            ;call subroutine
  2750.  
  2751. lea UnitMem(pc),a0        ;get UnitMemPtr
  2752. add.l AddressCounter(pc),a0
  2753. move.l (a0),a0
  2754. add.l #20,a0            ;get UnitMsgList
  2755. move.l a0,(a0)            ;get lh_Head
  2756. move.l a0,8(a0)            ;get lh_TailPred
  2757. add.l #4,(a0)            ;get lh_Tail
  2758.  
  2759. cmp.l #0,DriveCounter        ;first floppydisk
  2760. bne BootBlockStart3
  2761.  
  2762. move.l ExecBase,a6        ;get ExecBase
  2763. move.l #MEMF_PUBLIC!MEMF_CHIP!MEMF_CLEAR!MEMF_LARGEST,d1
  2764. move.l #1000,d0            ;want 1000 bytes
  2765. jsr AllocMem(a6)        ;call subroutine
  2766. tst.l d0            ;error ?
  2767. beq BootBlockCheckEnde3        ;Yes, end the BootblockCheck !
  2768. move.l d0,MsgPortMem        ;No, get MemPtr
  2769.  
  2770. move.l ExecBase,a6        ;get ExecBase
  2771. lea MsgPortStructure(pc),a0    ;get MsgPort-structure
  2772. move.l MsgPortMem(pc),a1    ;get MsgPortMemPtr
  2773. move.l #34,d0            ;get size
  2774. jsr CopyMem(a6)            ;call subroutine
  2775.  
  2776. move.l MsgPortMem(pc),a0
  2777. add.l #20,a0            ;get MsgList
  2778. move.l a0,(a0)          ;get lh_Head
  2779. move.l a0,8(a0)            ;get lh_TailPred
  2780. add.l #4,(a0)            ;get lh_Tail
  2781.  
  2782. move.l ExecBase,a6        ;get ExecBase
  2783. move.l MsgPortMem(pc),a1    ;get MsgPortMemPtr
  2784. jsr AddPort(a6)            ;call subroutine
  2785.  
  2786. BootBlockStart3:
  2787. move.l MsgPortMem(pc),d0
  2788. move.l d0,TrackDiskMsgPortMem
  2789. move.l ExecBase,a6        ;get ExecBase
  2790. move.l #MEMF_PUBLIC!MEMF_CHIP!MEMF_CLEAR!MEMF_LARGEST,d1
  2791. move.l #100,d0            ;need only 100 bytes
  2792. jsr AllocMem(a6)        ;call subroutine
  2793. tst.l d0            ;error ?
  2794. beq BootblockCheckEnde4        ;Yes, end BootblockCheck
  2795. lea TrackDiskIOSTDRequestMem(pc),a0
  2796. add.l AddressCounter(pc),a0
  2797. move.l d0,(a0)            ;get MemPtr
  2798.  
  2799. move.l ExecBase,a6        ;get ExecBase
  2800. lea TrackDiskIOSTdRequestMem(pc),a0
  2801. add.l AddressCounter(pc),a0
  2802. move.l (a0),a1            ;get TDIOStdReqMem-Ptr
  2803. lea TrackdiskIOStdRequest(pc),a0;get TDIOStdReq-structure
  2804. move.l #100,d0            ;get size
  2805. jsr CopyMem(a6)            ;call subroutine
  2806.  
  2807. move.l ExecBase,a6        ;get ExecBase
  2808. lea TrackDiskIOStdRequestMem(pc),a0
  2809. add.l AddressCounter(pc),a0
  2810. move.l (a0),a1            ;get TDIOStdReqMem-Ptr
  2811. lea TrackName(PC),a0        ;get TrackName
  2812. move.l DriveCounter(pc),d0    ;use drive unit x
  2813. move.l #0,d1            ;no flags
  2814. jsr OpenDeviceRoutine(a6)    ;call subroutine
  2815. tst.l d0            ;error ?
  2816. bne BootBlockCheckEnde5        ;Yes, end BootBlockCheck !
  2817. rts                ;return from subroutine
  2818.  
  2819. ReadBootBlock:
  2820. bsr DisplayCheck
  2821. lea TrackDiskIOStdRequestMem(pc),a0;Get TDIOStdReqMemPtr
  2822. add.l AddressCounter(pc),a0
  2823. move.l (a0),a1
  2824. move.w #02,28(a1)        ;enter read-command to TDIOStdReqMemPtr
  2825. move.l #2048,$24(a1)        ;enter 2048 bytes to TDIOStdReqMemPtr
  2826. bsr BootBlockCheck        ;jump to subroutine
  2827. lea TrackDiskIOStdRequestMem(pc),a0;Get TDIOStdReqMemPtr
  2828. add.l AddressCounter(pc),a0
  2829. move.l (a0),a1
  2830. move.w #09,28(a1)        ;turn off motor
  2831. move.l #0,$24(a1)        ;turn off motor
  2832. bsr BootBlockCheck        ;jump to subroutine
  2833. bsr CheckBootMem        ;jump to subroutine
  2834. rts                ;return from subroutine
  2835.  
  2836. DisplayCheck:
  2837. move.b DriveCounter(pc),d0
  2838. add.b d0,DriveNumber
  2839. move.l Intuibase(pc),a6        ;get Intuibase
  2840. move.l Winhandle(pc),a0        ;get Winhandle-structure
  2841. lea CheckWindowTitle(pc),a1    ;get CheckWindowTitle-address
  2842. move.l #-1,a2            ;no new screen-title
  2843. jsr SetWindowTitles(a6)        ;call subroutine
  2844. move.b #$30,DriveNumber
  2845. rts                ;return from subroutine
  2846.  
  2847. DisplayWindowTitle:
  2848. move.l Intuibase(pc),a6        ;get Intuibase
  2849. move.l Winhandle(pc),a0        ;get Winhandle-structure
  2850. lea WindowTitle(pc),a1        ;get WindowTitle-structure
  2851. move.l #-1,a2            ;no new screen-title
  2852. jsr SetWindowTitles(a6)        ;call subroutine
  2853. rts                ;return from subroutine
  2854.  
  2855.  
  2856. BootblockCheck:
  2857. move.l ExecBase,a6        ;get ExecBase
  2858. lea TrackdiskIOStdRequestMem(pc),a0;get IOStdReqMemPtr
  2859. add.l AddressCounter(pc),a0
  2860. move.l (a0),a1
  2861. jsr DoIORoutine(a6)        ;call subroutine
  2862.  
  2863. move.l ExecBase,a6        ;get ExecBase
  2864. lea TrackdiskIOStdRequestMem(pc),a0;get IOStdReqMemPtr
  2865. add.l AddressCounter(pc),a0
  2866. move.l (a0),a1
  2867. jsr WaitIO(a6)            ;call subroutine
  2868.  
  2869. move.l ExecBase,a6        ;get ExecBase
  2870. move.l MsgPortMem(pc),a0    ;get MsgPortMemPtr
  2871. jsr GetMsg(a6)            ;call subroutine
  2872. move.l d0,TrackDiskMessage    
  2873. rts                ;return from subroutine
  2874.  
  2875. WriteBootBlock:
  2876. move.l ExecBase,a6        ;get ExecBase
  2877. lea Sectorbuffer(pc),a0        ;get Sectorbuffer
  2878. add.l AddressCounter(pc),a0
  2879. move.l (a0),a1
  2880. add.l #4,a1
  2881. lea Bootblock(pc),a0        ;get Bootblockprg-Address
  2882. clr.l d0
  2883. move.b -1(a1),d0
  2884. sub.l d0,start
  2885. move.l #1020,d0            ;get size
  2886. jsr CopyMem(a6)            ;call subroutine
  2887.  
  2888.  
  2889. lea TrackDiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
  2890. add.l AddressCounter(pc),a0
  2891. move.l (a0),a1
  2892. move.w #03,28(a1)        ;enter write-command
  2893. move.l #1024,$24(a1)        ;enter 1024 bytes to write
  2894. bsr BootBlockCheck        ;jump to subroutine
  2895.  
  2896. lea TrackDiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
  2897. add.l AddressCounter(pc),a0
  2898. move.l (a0),a1
  2899. move.w #04,28(a1)        ;enter update-command
  2900. bsr BootblockCheck        ;jump to subroutine
  2901.  
  2902. lea TrackDiskIOStdRequestMem(pc),a0
  2903. add.l AddressCounter(pc),a0
  2904. move.l (a0),a1
  2905. cmp.b #28,$1F(a1)        ;Disk writeprotected ?
  2906. beq DiskWriteProtected        ;Yes, DiskWriteProtected
  2907. lea TrackDiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
  2908. add.l AddressCounter(pc),a0
  2909. move.l (a0),a1
  2910. move.w #09,28(a1)        ;turn off motor
  2911. move.l #0,$24(a1)        ;turn off motor
  2912. bsr BootBlockCheck        ;jump to subroutine
  2913. rts                ;return from subroutine
  2914.  
  2915. DiskWriteProtected:
  2916. clr.b $1F(a1)            ;clear error-flag
  2917. lea TrackDiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
  2918. add.l AddressCounter(pc),a0
  2919. move.l (a0),a1
  2920. move.w #09,28(a1)        ;turn off motor
  2921. move.l #0,$24(a1)        ;turn off motor
  2922. bsr BootBlockCheck        ;jump to subroutine
  2923.  
  2924. lea AutoRequestTextPtr(pc),a0    ;get RequestText
  2925. move.l #DiskWriteProtectedText,(a0)            
  2926. lea GadgetTextPtr(pc),a0    ;get GadgetText
  2927. move.l #ContinueText,(a0)
  2928. lea GadgetText2Ptr(pc),a0    ;get next GadgetText
  2929. move.l #ContinueText,(a0)
  2930. move.l #0,a0            
  2931. lea AutoRequestText(pc),a1    ;get RequestText-structure    
  2932. lea GadgetText(pc),a2        ;get GadgetText-structure
  2933. lea GadgetText2(pc),a3        ;get GadgetText2-structure
  2934. moveq #0,d0            ;no IDCMP-Flag
  2935. moveq #0,d1            ;no IDMCP-Flag
  2936. move.l #610,d2            ;get Width for Request
  2937. move.l #70,d3            ;get Height for Request
  2938. move.l Intuibase(pc),a6        ;get Intuibase
  2939. jsr AutoRequest(a6)        ;call subroutine
  2940. rts                ;return from subroutine
  2941.  
  2942.  
  2943. BootblockEnde:
  2944. move.l ExecBase,a6        ;get ExecBase
  2945. lea TrackDiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
  2946. add.l AddressCounter(pc),a0
  2947. move.l (a0),a1
  2948. jsr CloseDevice(a6)        ;call subroutine
  2949.  
  2950. cmp.l #0,DriveCounter        ;first floppydisk ?
  2951. bne BootblockEnde2        ;No, go to BootblockEnde2
  2952.  
  2953. move.l ExecBase,a6        ;get ExecBase
  2954. move.l MsgPortMem(pc),a1    ;get MsgPortMemPtr
  2955. jsr RemPort(a6)            ;call subroutine
  2956.  
  2957. move.l MsgPortMem(pc),a0    ;get MsgPortMemPtr
  2958. move.b #$FF,$8(a0)        ;remove listtype
  2959. move.l #-1,$14(a0)        ;remove flag
  2960.  
  2961. move.l ExecBase,a6        ;get ExecBase
  2962. move.l MsgPortMem(pc),a1    ;get MsgPortMemPtr
  2963. move.l #1000,d0            ;get size
  2964. jsr FreeMem(a6)            ;call subroutine
  2965.  
  2966. BootBlockEnde2:
  2967. lea TrackdiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
  2968. add.l AddressCounter(pc),a0
  2969. move.l (a0),a0
  2970. move.b #$FF,$8(a0)        ;remove listtype
  2971. move.l #$FFFFFFFF,$14(a0)    ;remove DevicePtr
  2972. move.l #$FFFFFFFF,$18(a0)    ;remove UnitPtr
  2973. move.l ExecBase,a6        ;get ExecBase
  2974. lea TrackDiskIOStdRequestMem(pc),a0;get IOStdReqMemPtr
  2975. add.l AddressCounter(pc),a0
  2976. move.l (a0),a1
  2977. move.l #100,d0            ;get size
  2978. jsr FreeMem(a6)            ;call subroutine
  2979.  
  2980. move.l ExecBase,a6        ;get ExecBase
  2981. lea DeviceMem(pc),a0        ;get DeviceMemPtr
  2982. add.l AddressCounter(pc),a0
  2983. move.l (a0),a1
  2984. move.l #100,d0            ;get size
  2985. jsr FreeMem(a6)            ;call subroutine
  2986.  
  2987. move.l ExecBase,a6        ;get ExecBase
  2988. lea UnitMem(pc),a0        ;get UnitMemPtr
  2989. add.l AddressCounter(pc),a0
  2990. move.l (a0),a1
  2991. move.l #100,d0            ;get size
  2992. jsr FreeMem(a6)            ;call subroutine
  2993.  
  2994. cmp.l #0,DriveCounter        ;first floppydisk
  2995. bne BootBlockEnde3
  2996. move.l ExecBase,a6        ;get ExecBase
  2997. move.l d7,d0            ;get Signalbit
  2998. jsr FreeSignal(a6)        ;call subroutine
  2999.  
  3000. BootBlockEnde3:
  3001. move.l ExecBase,a6        ;get ExecBase
  3002. lea Sectorbuffer(pc),a0     ;get Sectorbuffer
  3003. add.l AddressCounter(pc),a0
  3004. move.l (a0),a1
  3005. move.l #$2048,d0        ;get size
  3006. jsr FreeMem(a6)            ;call subroutine
  3007. rts                ;return from subroutine
  3008.  
  3009. CheckBootMem:
  3010. bsr DisplayWindowTitle
  3011. move.l #185,d0
  3012. lea BootblockVirusOffsetlist(pc),a0
  3013. lea BootblockVirusTestbytesList(pc),a1
  3014. lea BootblockVirusNameList(pc),a3
  3015. lea Sectorbuffer(pc),a4
  3016. add.l AddressCounter(pc),a4
  3017.  
  3018. CompareBootblockLoop:
  3019. move.l (a0)+,d1            ;get offset
  3020. add.l (a4),d1                    ;add offset to Sectorbuffer
  3021. move.l d1,a2            ;write d1 to a2
  3022. move.l (a2),d1            ;write longword from sectorbuffer to d1
  3023. cmp.l (a1)+,d1            ;is this longword = testbytes ?
  3024. beq BootblockVirus        ;Yes, go to BootBlockVirus
  3025. cmp.l #0,(a3)+            ;count BootblockVirusNameList
  3026. sub.l #1,d0            ;count down
  3027. cmp.l #0,d0            ;Zero ?
  3028. bne CompareBootblockLoop    ;No, continue the loop !
  3029. rts                ;return from subroutine
  3030.  
  3031. BootblockVirus:
  3032. lea BootblockVirusName(pc),a0    ;get BootblockVirusNamebuffer
  3033. move.l #40,d0            ;get counter
  3034.  
  3035. ClearBootblockVirusNameLoop:
  3036. move.b #00,(a0)+        ;clear the buffer
  3037. sub.l #1,d0            ;count down
  3038. cmp.l #0,d0            ;Zero ?
  3039. bne ClearBootblockVirusNameLoop    ;No, continue the loop !
  3040.  
  3041. lea BootblockVirusName(pc),a0    ;get BootblockVirusNamebuffer
  3042. move.l (a3),a1            ;get VirusText-Address
  3043.  
  3044. BootblockVirusNameLoop:
  3045. move.b (a1)+,(a0)+        ;write VirusName to BootblockVirusNamebuffer
  3046. cmp.b #0,(a1)            ;Zero ?
  3047. bne BootblockVirusNameLoop    ;No, continue the loop !
  3048.  
  3049. BootRequester:
  3050. Requesterold BootReqText,Install,Continuetext2,#610,#70
  3051. cmp.l #1,d0            ;was Gadget touched ?
  3052. beq WriteBootblock        ;Yes, WriteBootblock
  3053. rts                ;return from subroutine
  3054.  
  3055. BootblockCheckEnde:
  3056. bsr NoMemAlert            ;jump to subroutine
  3057. move.b #$FF,TrackdiskFlag    ;set TrackDiskFlag
  3058. rts                ;return from subroutine
  3059.  
  3060. BootblockCheckEnde5:
  3061. lea TrackdiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
  3062. add.l AddressCounter(pc),a0
  3063. move.l (a0),a0
  3064. move.b #$FF,$8(a0)        ;remove listtype
  3065. move.l #$FFFFFFFF,$14(a0)    ;remove Devicestructure
  3066. move.l #$FFFFFFFF,$18(a0)    ;remove UnitStructure
  3067. move.l ExecBase,a6        ;get ExecBase
  3068. lea TrackdiskIOStdRequestMem(pc),a0;get TDIOStdReqMemPtr
  3069. add.l AddressCounter(pc),a0
  3070. move.l (a0),a1
  3071. move.l #100,d0            ;get size
  3072. jsr FreeMem(a6)            ;call subroutine
  3073.  
  3074.  
  3075. BootblockCheckEnde4:
  3076. cmp.l #0,DriveCounter        ;first floppydisk ?
  3077. bne BootblockCheckEnde3        ;Yes, go to BootblockCheckEnde3
  3078.  
  3079. move.l ExecBase,a6        ;get ExecBase
  3080. move.l MsgPortMem(pc),a1    ;get MsgPortMemPtr
  3081. jsr RemPort(a6)            ;call subroutine
  3082.  
  3083. move.l MsgPortMem(pc),a0    ;get MsgPortMemPtr
  3084. move.b #$FF,$8(a0)        ;remove listtype
  3085. move.l #-1,$14(a0)        ;remove flags
  3086.  
  3087. move.l ExecBase,a6        ;get ExecBase
  3088. move.l MsgPortMem(pc),a1    ;get MsgPortMemPtr
  3089. move.l #1000,d0            ;get size
  3090. jsr FreeMem(a6)            ;call subroutine
  3091.  
  3092. BootblockCheckEnde3:
  3093. move.l ExecBase,a6        ;get ExecBase
  3094. lea UnitMem(pc),a0        ;get UnitMemPtr
  3095. add.l AddressCounter(pc),a0
  3096. move.l (a0),a1
  3097. move.l #100,d0            ;get size
  3098. jsr FreeMem(a6)            ;call subroutine
  3099.  
  3100. BootBlockCheckEnde2:
  3101. move.l ExecBase,a6        ;get ExecBase
  3102. lea DeviceMem(pc),a0        ;get DeviceMemPtr
  3103. add.l AddressCounter(pc),a0
  3104. move.l (a0),a1
  3105. move.l #100,d0            ;get size
  3106. jsr FreeMem(a6)            ;call subroutine
  3107.  
  3108. FreeSignalIt:
  3109. move.l ExecBase,a6        ;get ExecBase
  3110. lea Sectorbuffer(pc),a0            ;get Sectorbuffer
  3111. add.l AddressCounter(pc),a0
  3112. move.l (a0),a1
  3113. move.l #$2048,d0        ;get size
  3114. jsr FreeMem(a6)            ;call subroutine
  3115.  
  3116. cmp.l #0,DriveCounter        ;first floopydisk ?
  3117. bne BootBlockCheckEnde0        ;Yes, go to BootBlockCheckEnde0
  3118. move.l ExecBase,a6        ;get ExecBase
  3119. move.l d7,d0            ;get Signalbit
  3120. jsr FreeSignal(a6)        ;call subroutine
  3121.  
  3122. BootBlockCheckEnde0:
  3123. bsr NoMemAlert            ;jump to subroutine
  3124. move.b #$FF,TrackdiskFlag    ;set TrackDiskFlag
  3125. rts                ;return from subroutine
  3126.  
  3127. even
  3128. BootReqText:
  3129. dc.b 0,2
  3130. dc.b 0
  3131. even
  3132. dc.w 20,20
  3133. dc.l 0
  3134. dc.l BootText
  3135. dc.l 0
  3136.  
  3137. even
  3138. Install:
  3139. dc.b 0,2
  3140. dc.b 0
  3141. even
  3142. dc.w 12,4
  3143. dc.l 0
  3144. dc.l InstallText
  3145. dc.l 0
  3146.  
  3147. InstallText:
  3148. dc.b ` Install `,0
  3149.  
  3150. even
  3151. DiskWriteProtectedText:
  3152. dc.b `Trackdisk I/O error: Disk write-protected !`,0
  3153.  
  3154. even
  3155. MsgPortStructure:        
  3156. dc.l 0                
  3157. dc.l 0                
  3158. dc.b 4                
  3159. dc.b 0                
  3160. dc.l PortName                          
  3161. dc.b 0
  3162. Sigbit:                
  3163. dc.b 0                   
  3164. AntiCicloTask:
  3165. dc.l 0        
  3166. dc.l 0
  3167. dc.l 0
  3168. dc.l 0
  3169. dc.b 5
  3170. dc.b 0
  3171.  
  3172. even
  3173. TrackdiskIOStdRequest:        ;IOStdRequest-structure
  3174. dc.l 0                ;Ptr of successor
  3175. dc.l 0                ;Ptr of predecessor
  3176. dc.b 6                ;messagetype
  3177. dc.b 0                ;priority
  3178. dc.l MessageName                ;Ptr of Messagename
  3179. TrackDiskMsgPortMem:
  3180. dc.l 0              ;Ptr of MsgPort
  3181. dc.w 56                ;messagelength
  3182. TrackDeviceMem:
  3183. dc.l 0
  3184. TrackUnitMem:              ;Ptr to Device-structure
  3185. dc.l 0                      ;Ptr to Unit-structure
  3186. dc.w 2                ;Command
  3187. dc.b 0                ;Flags
  3188. dc.b 0                ;Errorbyte
  3189. dc.l 0                ;Actualbyte
  3190. dc.l 2048            ;Number of Bytes
  3191. TrackSecbuffer:
  3192. dc.l 0                     ;Buffer-address
  3193. dc.l 0                ;Sector-Nr.
  3194. dc.l 0                ;DiskChangeCount
  3195. dc.l 0                ;SecLabelBuffer
  3196.  
  3197. even
  3198. Device:
  3199. dc.l 0
  3200. dc.l 0
  3201. dc.b 3
  3202. dc.b 0
  3203. dc.l TrackName
  3204. dc.b 0
  3205. dc.b 0
  3206. dc.w 0
  3207. dc.w 0
  3208. dc.w 0
  3209. dc.w 0
  3210. dc.l TrackName
  3211. dc.l 0
  3212. dc.w 0
  3213.  
  3214. even
  3215. Unit:
  3216. dc.l 0
  3217. dc.l 0
  3218. dc.b 4
  3219. dc.b 0
  3220. dc.l 0
  3221. dc.b 0
  3222. dc.b 0
  3223. dc.l 0
  3224. dc.l 0
  3225. dc.l 0
  3226. dc.l 0
  3227. dc.b 5
  3228. dc.b 0
  3229. dc.b 0
  3230. dc.b 0
  3231. dc.w 0
  3232.  
  3233. even
  3234. CheckWindowTitle:
  3235. dc.b `checking floppydrive DF` 
  3236. DriveNumber: dc.b `0: !!!`,0
  3237.  
  3238. even
  3239. MsgPortMem:
  3240. dc.l 0
  3241.  
  3242. TrackdiskIOStdRequestMem:
  3243. dc.l 0
  3244. dc.l 0
  3245. dc.l 0
  3246. dc.l 0
  3247.  
  3248. DeviceMem:
  3249. dc.l 0
  3250. dc.l 0
  3251. dc.l 0
  3252. dc.l 0
  3253.  
  3254. UnitMem:
  3255. dc.l 0
  3256. dc.l 0
  3257. dc.l 0
  3258. dc.l 0
  3259.  
  3260. TrackDiskMessage:
  3261. dc.l 0
  3262.  
  3263. Sectorbuffer:
  3264. dc.l 0
  3265. dc.l 0
  3266. dc.l 0
  3267. dc.l 0
  3268.  
  3269. TrackdiskFlag:
  3270. dc.b 0
  3271.  
  3272. even
  3273. OpenDriveCount:
  3274. dc.l 0
  3275.  
  3276. even
  3277. DriveCounter:
  3278. dc.l 0
  3279.  
  3280. even
  3281. DriveLoopCounter:
  3282. dc.l 0
  3283.  
  3284. even
  3285. AddressCounter:
  3286. dc.l 0
  3287.  
  3288. even
  3289. MessageName:
  3290. dc.b `AntiCicloVir.message`,0
  3291.  
  3292. even
  3293. PortName:
  3294. dc.b `AntiCicloVir.port`,0
  3295.  
  3296. even
  3297. BootText:
  3298. dc.b `VIRUS in Bootsectors:  `
  3299. Bootblockvirusname: blk.b 40,0
  3300.  
  3301. even
  3302. BootblockvirusNameList:
  3303. dc.l The16BitCrewText
  3304. dc.l The2001Text
  3305. dc.l AEKText
  3306. dc.l AHCText
  3307. dc.l AIDSText
  3308. dc.l AIDS2Text
  3309. dc.l AlienNewBeatText
  3310. dc.l AmigaFreakText
  3311. dc.l AmigaMasterText
  3312. dc.l AngelText
  3313. dc.l ASSText
  3314. dc.l ASVText
  3315. dc.l AsylantText
  3316. dc.l AustralianParasiteText
  3317. dc.l BadBytesText
  3318. dc.l BamigaSectorOneText
  3319. dc.l BBProtText
  3320. dc.l BigBossText
  3321. dc.l BlackflashText
  3322. dc.l BladeRunnersText
  3323. dc.l BLFText
  3324. dc.l BlizzProV31Text
  3325. dc.l BlizzProV33Text
  3326. dc.l BlowJobText
  3327. dc.l BootXText
  3328. dc.l ButonicText
  3329. dc.l ByteBanditText
  3330. dc.l ByteBanditPlusText
  3331. dc.l ByteBandit2Text
  3332. dc.l ByteBanditturboText
  3333. dc.l ByteVoyagerText
  3334. dc.l ByteVoyagerIIText
  3335. dc.l ByteWarriorText
  3336. dc.l CascadeText
  3337. dc.l CCCPText
  3338. dc.l ClaasAbrahamText
  3339. dc.l ClonkText
  3340. dc.l CobraText
  3341. dc.l CodersNightmareText
  3342. dc.l CopyLockText
  3343. dc.l CrackerExterminatorText
  3344. dc.l DAGText
  3345. dc.l DAT89Text
  3346. dc.l DatacrimeText
  3347. dc.l DestructorText
  3348. dc.l DetlefText
  3349. dc.l DigitalEmotionsText
  3350. dc.l DisgustText
  3351. dc.l DiskDoktorsText
  3352. dc.l DISKFurunkelText
  3353. dc.l DiskGuardText
  3354. dc.l DiskHerpesText
  3355. dc.l DiskTerminatorText
  3356. dc.l DivinaExterminatorText
  3357. dc.l DottyText
  3358. dc.l DUMDUMText
  3359. dc.l ElectroVisionText
  3360. dc.l EuropeanText
  3361. dc.l ExcrementText
  3362. dc.l ExecutorsText
  3363. dc.l ExtremeText
  3364. dc.l FASTText
  3365. dc.l FastEddieText
  3366. dc.l FICAText
  3367. dc.l ForpibText
  3368. dc.l FrityText
  3369. dc.l fuckdeviceText
  3370. dc.l GadaffiText
  3371. dc.l GermanyText
  3372. dc.l GlasnostText
  3373. dc.l GraffitiText
  3374. dc.l GremlinText
  3375. dc.l GuardiansBootAidsText
  3376. dc.l GXTeamText
  3377. dc.l GyrosText
  3378. dc.l HaukeText
  3379. dc.l HCSText
  3380. dc.l HCSIIText
  3381. dc.l HighlanderText
  3382. dc.l HillyText
  3383. dc.l HODENText
  3384. dc.l IceText
  3385. dc.l IncognitoText
  3386. dc.l IndianaJonesText
  3387. dc.l InfectorText
  3388. dc.l InfluenzaText
  3389. dc.l IngerIQText
  3390. dc.l IngoText
  3391. dc.l JITRText
  3392. dc.l JoshuaText
  3393. dc.l JulieText
  3394. dc.l KaukiText
  3395. dc.l KefrensText
  3396. dc.l KilledText
  3397. dc.l LADSText
  3398. dc.l LameBlameText
  3399. dc.l LamerExterminatoroldText
  3400. dc.l LamerExterminatornewText
  3401. dc.l LamerExterminatorIText
  3402. dc.l LamerExterminatorIIText
  3403. dc.l LamerExterminatorIIIText
  3404. dc.l LamerExterminatorIVText
  3405. dc.l LamerExterminatorVText
  3406. dc.l LamerExterminatorVIText
  3407. dc.l LoverboySexmachineText
  3408. dc.l LSDText
  3409. dc.l MADText
  3410. dc.l MADIIText
  3411. dc.l MallanderText
  3412. dc.l MEXXText
  3413. dc.l MGM89Text
  3414. dc.l MICROSYSTEMSText
  3415. dc.l MOSHText
  3416. dc.l MOSH2Text
  3417. dc.l MutilatorText
  3418. dc.l NastyNastyText
  3419. dc.l NorthStarText
  3420. dc.l NorthStarIIText
  3421. dc.l ObeliskText
  3422. dc.l Obelisk2Text
  3423. dc.l OPAPAText
  3424. dc.l OverkillText
  3425. dc.l PARATAXIText
  3426. dc.l PARATAXIIText
  3427. dc.l PARATAXIIIText
  3428. dc.l PayDayText
  3429. dc.l PentagonSlayerText
  3430. dc.l PentagonSlayer2Text
  3431. dc.l PentagonSlayer3Text
  3432. dc.l PlastiqueText
  3433. dc.l REPText
  3434. dc.l RevengeBootloaderText
  3435. dc.l REVENGEText
  3436. dc.l SachsenText
  3437. dc.l SADDAMHUSSEINText
  3438. dc.l SaoPauloText
  3439. dc.l SATANText
  3440. dc.l SCAText
  3441. dc.l ScarfaceText
  3442. dc.l SendarionText
  3443. dc.l SherlockText
  3444. dc.l ShitText
  3445. dc.l SSText
  3446. dc.l SSIIText
  3447. dc.l SuicideMachineText
  3448. dc.l SuperboyText
  3449. dc.l SupplyTeamText
  3450. dc.l SystemZV30Text
  3451. dc.l SystemZV40Text
  3452. dc.l SystemZV50Text
  3453. dc.l SystemZV51Text
  3454. dc.l SystemZV53Text
  3455. dc.l SystemZV54Text
  3456. dc.l SystemZV61Text
  3457. dc.l SystemZV64Text
  3458. dc.l SystemZV65Text
  3459. dc.l TargetText
  3460. dc.l TelstarText
  3461. dc.l TermigatorText
  3462. dc.l TFCRevengeText
  3463. dc.l TimeBombText
  3464. dc.l TNKText
  3465. dc.l TomatesGentechnic10Text
  3466. dc.l TomatesGentechnic20Text
  3467. dc.l TURKText
  3468. dc.l UltrafoxText
  3469. dc.l UKLamerStyleText
  3470. dc.l USSR492Text
  3471. dc.l VCCofTNTText
  3472. dc.l VIPHSText
  3473. dc.l VirusConstructionSetBootblockText
  3474. dc.l VirusSlayerText
  3475. dc.l VirusV1Text
  3476. dc.l WAFTText
  3477. dc.l WahnfriedText
  3478. dc.l WARHAWKText
  3479. dc.l WarsawAvengerText
  3480. dc.l ZACCESSV10Text
  3481. dc.l ZACCESSV20Text
  3482. dc.l ZACCESSV30Text
  3483. dc.l ZenkerText
  3484. dc.l ZESTText
  3485. dc.l ZLXText
  3486. dc.l ZombiText
  3487.  
  3488. even
  3489. BootblockvirusTestbytesList:
  3490. dc.l `Crew`
  3491. dc.l `0012`
  3492. dc.l ` AEK`
  3493. dc.l `A.H.`
  3494. dc.l `HIV!`
  3495. dc.l ` Ken`
  3496. dc.l `ALIE`
  3497. dc.l `AMIG`
  3498. dc.l `Mast`
  3499. dc.l $4EAEFF3A
  3500. dc.l ` PRO`
  3501. dc.l `SV!A`
  3502. dc.l `ASYL`
  3503. dc.l `Aust`
  3504. dc.l `BOUT`
  3505. dc.l `BS1!`
  3506. dc.l `B-Pr`
  3507. dc.l `_BOS`
  3508. dc.l `blac`
  3509. dc.l `lade`
  3510. dc.l `dos.`
  3511. dc.l $332E3100
  3512. dc.l $332E3300
  3513. dc.l `Allo`
  3514. dc.l `Viru`
  3515. dc.l `BAHA`
  3516. dc.l `Band`
  3517. dc.l `NqNq`
  3518. dc.l `os.l`
  3519. dc.l `trac`
  3520. dc.l $61000336
  3521. dc.l $600002E6
  3522. dc.l `DASA`
  3523. dc.l `Casc`
  3524. dc.l `CCCP`
  3525. dc.l $B18536B7
  3526. dc.l `CLON`
  3527. dc.l ` COB`
  3528. dc.l `CODE`
  3529. dc.l $0007F000
  3530. dc.l `CRAC`
  3531. dc.l ` DAG`
  3532. dc.l `T '8`
  3533. dc.l `DATA`
  3534. dc.l `estr`
  3535. dc.l $41FA001A
  3536. dc.l `EMOT`
  3537. dc.l `Viru`
  3538. dc.l ` Dis`
  3539. dc.l `DISK`
  3540. dc.l `DISK`
  3541. dc.l ` H e`
  3542. dc.l `DISK`
  3543. dc.l `dos.`
  3544. dc.l `Dott`
  3545. dc.l `MDUM`
  3546. dc.l `ELEC`
  3547. dc.l `Euro`
  3548. dc.l `EXCR`
  3549. dc.l `XECU`
  3550. dc.l `XTRE`
  3551. dc.l $0007F000
  3552. dc.l $6000FC38
  3553. dc.l `F.I.`
  3554. dc.l `FORP`
  3555. dc.l `rity`
  3556. dc.l `fuck`
  3557. dc.l `GADA`
  3558. dc.l `Germ`
  3559. dc.l `Glas`
  3560. dc.l `fiti`
  3561. dc.l `grap`
  3562. dc.l `-aid`
  3563. dc.l `intu`
  3564. dc.l `GYRO`
  3565. dc.l `Hauk`
  3566. dc.l `H.C.`
  3567. dc.l `H.C.`
  3568. dc.l `HIGH`
  3569. dc.l $0007FF00
  3570. dc.l `HODE`
  3571. dc.l `INC!`
  3572. dc.l $2C790000
  3573. dc.l `iana`
  3574. dc.l $6000FC38
  3575. dc.l `FUCK`
  3576. dc.l `nger`
  3577. dc.l `INGO`
  3578. dc.l `JITR`
  3579. dc.l $00BFE001
  3580. dc.l $E0014E75
  3581. dc.l `dos.`
  3582. dc.l `efre`
  3583. dc.l `Kill`
  3584. dc.l `LADS`
  3585. dc.l $6100FFDE
  3586. dc.l $ABCD0000
  3587. dc.l $ABCD0000
  3588. dc.l $FEDC0000
  3589. dc.l $ABCD0000
  3590. dc.l $ABCD0000
  3591. dc.l $ABCD0000
  3592. dc.l $ABCD0000
  3593. dc.l $ABCD0000
  3594. dc.l ` Sex`
  3595. dc.l `LSD!`
  3596. dc.l `Infe`
  3597. dc.l `cker`
  3598. dc.l `DERK`
  3599. dc.l `MEXX`
  3600. dc.l `MGM8`
  3601. dc.l `MICR`
  3602. dc.l `MOSH`
  3603. dc.l `MOSH`
  3604. dc.l `dos.`
  3605. dc.l `Nast`
  3606. dc.l `Nort`
  3607. dc.l `Nort`
  3608. dc.l `GURU`
  3609. dc.l ` OBE`
  3610. dc.l ` OPA`
  3611. dc.l $4BF90007
  3612. dc.l `TAX `
  3613. dc.l `ATAX`
  3614. dc.l `ATAX`
  3615. dc.l `PayD`
  3616. dc.l `enta`
  3617. dc.l `Circ`
  3618. dc.l `enta`
  3619. dc.l ` P L`
  3620. dc.l `REP!`
  3621. dc.l `Reve`
  3622. dc.l `Reve`
  3623. dc.l $00078400
  3624. dc.l `2000`
  3625. dc.l `PAUL`
  3626. dc.l `SATA`
  3627. dc.l `SCA!`
  3628. dc.l `SCAR`
  3629. dc.l `Send`
  3630. dc.l `ORSI`
  3631. dc.l $6100000A
  3632. dc.l `!SS!`
  3633. dc.l `HEIL`
  3634. dc.l $2C790000
  3635. dc.l `Supe`
  3636. dc.l ` Sup`
  3637. dc.l `3.0 `
  3638. dc.l `4.0 `
  3639. dc.l `5.0 `
  3640. dc.l `5.1 `
  3641. dc.l `V5.3`
  3642. dc.l `V5.4`
  3643. dc.l `V6.1`
  3644. dc.l `V6.4`
  3645. dc.l `V6.5`
  3646. dc.l $43524E00
  3647. dc.l `6.0 `
  3648. dc.l `intu`
  3649. dc.l ` 199`
  3650. dc.l `IME `
  3651. dc.l `TNK!`
  3652. dc.l `OMAT`
  3653. dc.l `Toma`
  3654. dc.l `TURK`
  3655. dc.l $4EF900FC
  3656. dc.l $61000338
  3657. dc.l `Sent`
  3658. dc.l `grap`
  3659. dc.l `VIPH`
  3660. dc.l $00BFE001
  3661. dc.l `VIRU`
  3662. dc.l `sind`
  3663. dc.l $2C780004
  3664. dc.l `AHNF`
  3665. dc.l `WARH`
  3666. dc.l `Wars`
  3667. dc.l `ZACC`
  3668. dc.l `ZACC`
  3669. dc.l `ACCE`
  3670. dc.l `ZENK`
  3671. dc.l `Z.E.`
  3672. dc.l `ZLX!`
  3673. dc.l $075A6F6D
  3674.  
  3675. even
  3676. BootblockvirusOffsetList:
  3677. dc.l $000001E0
  3678. dc.l $000003F0
  3679. dc.l $000003D0
  3680. dc.l $000002FC
  3681. dc.l $000003F0
  3682. dc.l $000002D0
  3683. dc.l $00000240
  3684. dc.l $0000001E
  3685. dc.l $0000037A
  3686. dc.l $00000054
  3687. dc.l $00000344
  3688. dc.l $000002F0
  3689. dc.l $00000330
  3690. dc.l $0000036C
  3691. dc.l $000003A0
  3692. dc.l $000003F0
  3693. dc.l $00000338
  3694. dc.l $000003F0
  3695. dc.l $00000010
  3696. dc.l $00000330
  3697. dc.l $0000030E
  3698. dc.l $0000002A
  3699. dc.l $0000002A
  3700. dc.l $0000002A
  3701. dc.l $0000028E
  3702. dc.l $0000032C
  3703. dc.l $00000020
  3704. dc.l $000002A8
  3705. dc.l $000003C2
  3706. dc.l $00000320
  3707. dc.l $00000010
  3708. dc.l $0000000C
  3709. dc.l $000000C0
  3710. dc.l $000003E2
  3711. dc.l $00000054
  3712. dc.l $00000004
  3713. dc.l $000003B8
  3714. dc.l $00000306
  3715. dc.l $0000005A
  3716. dc.l $00000018
  3717. dc.l $00000014
  3718. dc.l $000003BA
  3719. dc.l $000002C0
  3720. dc.l $000001C6
  3721. dc.l $000001F4
  3722. dc.l $00000010
  3723. dc.l $00000280
  3724. dc.l $000001B8
  3725. dc.l $000003E8
  3726. dc.l $000003B2
  3727. dc.l $000002F4
  3728. dc.l $00000390
  3729. dc.l $000003C6
  3730. dc.l $00000096
  3731. dc.l $00000018
  3732. dc.l $00000010
  3733. dc.l $00000010
  3734. dc.l $00000010
  3735. dc.l $00000054
  3736. dc.l $00000348
  3737. dc.l $00000274
  3738. dc.l $00000044
  3739. dc.l $000003F8
  3740. dc.l $000003F2
  3741. dc.l $0000001A
  3742. dc.l $00000018
  3743. dc.l $000002DA
  3744. dc.l $00000040
  3745. dc.l $00000010
  3746. dc.l $00000730
  3747. dc.l $00000390
  3748. dc.l $00000360
  3749. dc.l $00000394
  3750. dc.l $000001E0
  3751. dc.l $0000023E
  3752. dc.l $00000010
  3753. dc.l $00000328
  3754. dc.l $0000034E
  3755. dc.l $0000025C
  3756. dc.l $0000009C
  3757. dc.l $000002D4
  3758. dc.l $000003F0
  3759. dc.l $00000120
  3760. dc.l $00000320
  3761. dc.l $000003F8
  3762. dc.l $00000066
  3763. dc.l $00000014
  3764. dc.l $00000008
  3765. dc.l $00000008
  3766. dc.l $000001F4
  3767. dc.l $00000334
  3768. dc.l $00000298
  3769. dc.l $000003AC
  3770. dc.l $00000264
  3771. dc.l $00000008
  3772. dc.l $00000058
  3773. dc.l $000003A6
  3774. dc.l $00000396
  3775. dc.l $00000342
  3776. dc.l $00000392
  3777. dc.l $000003F4
  3778. dc.l $000003AE
  3779. dc.l $000003AA
  3780. dc.l $00000396
  3781. dc.l $000001E0
  3782. dc.l $000003F0
  3783. dc.l $00000010
  3784. dc.l $000000A0
  3785. dc.l $00000008
  3786. dc.l $000003F0
  3787. dc.l $00000282
  3788. dc.l $000003F4
  3789. dc.l $00000016
  3790. dc.l $00000016
  3791. dc.l $000002A0
  3792. dc.l $000001D6
  3793. dc.l $00000010
  3794. dc.l $00000012
  3795. dc.l $00000038
  3796. dc.l $00000370
  3797. dc.l $00000368
  3798. dc.l $00000014
  3799. dc.l $000003F0
  3800. dc.l $000003B0
  3801. dc.l $00000220
  3802. dc.l $00000010
  3803. dc.l $00000286
  3804. dc.l $00000370
  3805. dc.l $000002DA
  3806. dc.l $00000210
  3807. dc.l $000003F0
  3808. dc.l $00000010
  3809. dc.l $000003E2
  3810. dc.l $00000038
  3811. dc.l $00000012
  3812. dc.l $000002F0
  3813. dc.l $00000280
  3814. dc.l $000003F0
  3815. dc.l $00000308
  3816. dc.l $000003E2
  3817. dc.l $000002F6
  3818. dc.l $00000010
  3819. dc.l $00000012
  3820. dc.l $0000001A
  3821. dc.l $0000032C
  3822. dc.l $000002E2
  3823. dc.l $00000324
  3824. dc.l $0000002C
  3825. dc.l $0000002C
  3826. dc.l $0000002C
  3827. dc.l $0000002C
  3828. dc.l $0000002A
  3829. dc.l $0000002A
  3830. dc.l $0000002A
  3831. dc.l $0000002A
  3832. dc.l $0000002A
  3833. dc.l $0000019C
  3834. dc.l $00000024
  3835. dc.l $000003EC
  3836. dc.l $0000002C
  3837. dc.l $00000342
  3838. dc.l $000003F0
  3839. dc.l $00000182
  3840. dc.l $00000040
  3841. dc.l $00000066
  3842. dc.l $00000036
  3843. dc.l $00000368
  3844. dc.l $00000054
  3845. dc.l $00000168
  3846. dc.l $00000022
  3847. dc.l $00000146
  3848. dc.l $00000010
  3849. dc.l $00000322
  3850. dc.l $00000050
  3851. dc.l $00000312
  3852. dc.l $00000366
  3853. dc.l $00000386
  3854. dc.l $000001D6
  3855. dc.l $00000016
  3856. dc.l $0000027A
  3857. dc.l $00000252
  3858. dc.l $00000332
  3859. dc.l $000003F0
  3860. dc.l $00000184
  3861.  
  3862. CPUCrashDummy:
  3863. dc.l $00000000
  3864.  
  3865. even
  3866. BootBlock:
  3867.     start:    
  3868.     dc.l    $7ECF6BD7
  3869.     dc.l    880
  3870. main:    lea    dosname2(PC),a1
  3871.     jsr    -96(a6)
  3872.     tst.l    d0
  3873.     beq.S    error
  3874.     move.l    d0,a0
  3875.     move.l    $16(a0),a0
  3876.     moveq    #0,d0
  3877. halt:    rts
  3878. error:    moveq    #-1,d0
  3879.     bra.S    halt
  3880. dosname2:    dc.b    'dos.library',0
  3881.     
  3882. dc.b `Disk installed by AntiCicloVir V2.3a`,0
  3883. dc.b `Send new viruses to Matthias Gutt * Kantstr. 16 `,0
  3884. dc.b `* 21335 Lueneburg * Germany`,0
  3885. blk.b 900,0
  3886.  
  3887. even
  3888. VirusCheck:
  3889. move.l DiskValMem(pc),a5    ;get DiskValMemPtr
  3890. move.l #SADDAM,d4        ;get pathname
  3891. move.l Dosbase(pc),a6        ;get DosBase
  3892. move.l #SADDAM,d1        ;get filename
  3893. move.l #1005,d2            ;mode old
  3894. jsr Open(a6)            ;call subroutine
  3895.  
  3896. cmp.l #0,d0            ;Error ?
  3897. beq VirusCheckEnde        ;Yes, go to VirusCheckEnde
  3898. move.l d0,DiskValHandle        ;No, get DiskValHandle
  3899.  
  3900. move.l Dosbase(pc),a6        ;get DosBase
  3901. move.l DiskValHandle(pc),d1    ;get DiskValHandle
  3902. move.l a5,d2            ;get filebuffer
  3903. move.l #1848,d3            ;get size
  3904. jsr Read(a6)            ;call subroutine
  3905.  
  3906. move.l Dosbase(pc),a6        ;get DosBase
  3907. move.l DiskValHandle(pc),d1    ;get DiskValHandle
  3908. jsr Close(a6)            ;call subroutine
  3909.  
  3910. cmp.l #"BitM",$00000702(a5)    ;SADDAM-Virus ?
  3911. beq SADDAMRequest        ;Yes !
  3912. cmp.l #$60040000,$00000024(a5)    ;RoLE-Virus ?
  3913. beq ReturnRequest        ;Yes !
  3914. cmp.l #"trac",$000006C0(a5)    ;DiskVal1234-Virus ?
  3915. beq DiskVal1234Request        ;Yes !
  3916.  
  3917. VirusCheckEnde:
  3918. clr.l DriveLoopCounter        ;clear DriveLoopCounter
  3919. clr.l DriveCounter        ;clear DriveCounter
  3920. clr.l AddressCounter        ;clear AddressCounter
  3921.  
  3922. DriveLoop:
  3923. bsr ReadBootblock        ;jump to subroutine
  3924. add.l #1,DriveLoopCounter    ;count up
  3925. add.l #1,DriveCounter        ;count up
  3926. add.l #4,AddressCounter        ;count up
  3927. move.l DriveLoopCounter,d0
  3928. cmp.l OpenDriveCount,d0        ;all floppydisks read ?
  3929. bne DriveLoop
  3930.  
  3931. DriveLoopEnd:
  3932. sub.l #4,AddressCounter
  3933. sub.l #1,DriveCounter
  3934.  
  3935. bra IntuiWait            ;Go to IntuiWait
  3936.  
  3937.  
  3938. SADDAMRequest:
  3939. Requester #SADDAMReq,#ContinueText,#ContinueText,#610,#70
  3940. bsr KillFileVirus2        ;jump to subroutine
  3941. bra VirusCheckEnde        ;end VirusCheck
  3942.  
  3943. ReturnRequest:
  3944. Requester #ReturnReq,#ContinueText,#ContinueText,#610,#70
  3945. move.l #SADDAM,d4        ;get pathname
  3946. bsr KillFileVirus3        ;jump to subroutine
  3947. bra VirusCheckEnde        ;end VirusCheck
  3948.  
  3949. DiskVal1234Request:
  3950. Requester #DiskVal1234Req,#ContinueText,#ContinueText,#610,#70
  3951. bsr KillFileVirus2        ;jump to subroutine
  3952. bra VirusCheckEnde        ;end VirusCheck
  3953.  
  3954. Hochofen:
  3955. lea HochofenText(pc),a0        ;get HochofenTextaddress
  3956. move.l a0,(a3)            
  3957. bra AMIGAMemoryVirus        ;jump to subroutine
  3958.  
  3959. ModemChecker:
  3960. lea ModemCheckerText(pc),a0    ;get ModemCheckerTextaddress
  3961. move.l a0,(a3)
  3962. bra AMIGAMemoryVirus        ;jump to subroutine
  3963.  
  3964. even
  3965. SADDAMReq:
  3966. dc.b `Disk-Validator: SADDAM Virus !!!`,0
  3967.  
  3968. even
  3969. ReturnReq:
  3970. dc.b `Disk-Validator: Return of the Lamer Exterminator virus !!!`,0
  3971.  
  3972. even
  3973. DiskVal1234Req:
  3974. dc.b `Disk-Validator: DiskVal1234 virus !!!`,0
  3975.  
  3976. DiskValHandle:
  3977. dc.l 0
  3978.  
  3979. DiskValMem:
  3980. dc.l 0
  3981.  
  3982. even
  3983. SADDAM:
  3984. dc.b `:l/Disk-Validator`,0
  3985.  
  3986.  
  3987. AMIGAMemoryVirus:
  3988. move.l Intuibase(pc),a6        ;get Intuibase
  3989. lea NewWindow(pc),a0        ;get NewWindow-structure
  3990. jsr OpenWindow(a6)        ;call subroutine
  3991. move.l d0,Winhandle        ;get Winhandle
  3992.  
  3993. move.l #40,d0            ;get counter
  3994. lea VirusName(pc),a0        ;get VirusNamebuffer
  3995.  
  3996. ClearVirusNameLoop:
  3997. move.b #00,(a0)+        ;clear the buffer
  3998. sub.l #1,d0            ;count down
  3999. cmp.l #0,d0            ;Zero ?
  4000. bne ClearVirusNameLoop        ;No, continue the loop !
  4001.  
  4002. lea VirusName(pc),a0        ;get VirusNameBuffer
  4003. move.l (a3),a1            ;get VirusNameText-Address
  4004.  
  4005. AMIGAMemoryVirusNameLoop:
  4006. move.b (a1)+,(a0)+        ;write VirusNameText to
  4007.                 ;VirusNameBuffer
  4008. cmp.b #0,(a1)            ;Zero ?
  4009. bne AMIGAMemoryVirusNameLoop    ;No, continue the loop !
  4010.  
  4011. AMIGAMemoryVirusRequest:
  4012. Requester #MemoryText,#ContinueText,#ContinueText,#610,#70
  4013.  
  4014. move.l Winhandle(pc),a0        ;get Winhandle
  4015. move.l Intuibase(pc),a6        ;get Intuibase
  4016. jsr CloseWindow(a6)        ;call subroutine
  4017. bra KillMem            ;jump to subroutine
  4018.  
  4019. even
  4020. MemoryText:
  4021. dc.b `VIRUS IS STILL in memory: `
  4022. Virusname: blk.b 40,0
  4023.  
  4024. even
  4025. VirusNameList:
  4026. The16BitCrewText:
  4027. dc.b `16 Bit Crew`,0
  4028.  
  4029. even
  4030. The2001Text:
  4031. dc.b `2001`,0
  4032.  
  4033. even
  4034. AEKText:
  4035. dc.b `AEK`,0
  4036.  
  4037. even
  4038. AHCText:
  4039. dc.b `A.H.C.`,0
  4040.  
  4041. even
  4042. AIDSText:
  4043. dc.b `AIDS (SCA)`,0
  4044.  
  4045. even
  4046. AIDS2Text:
  4047. dc.b `AIDS (VKill)`,0
  4048.  
  4049. even
  4050. AlienNewBeatText:
  4051. dc.b `Alien New Beat V1.0`,0
  4052.  
  4053. even
  4054. AmigaFreakText:
  4055. dc.b `AMIGA Freak`,0
  4056.  
  4057. even
  4058. AmigaKnightText:
  4059. dc.b `AMIGA Knight`,0
  4060.  
  4061. even
  4062. AmigaMasterText:
  4063. dc.b `AMIGA Master`,0
  4064.  
  4065. even
  4066. AngelText:
  4067. dc.b `Angel`,0
  4068.  
  4069. even
  4070. AntiChristText:
  4071. dc.b `AntiChrist`,0
  4072.  
  4073. even
  4074. AntiChristTextText:
  4075. dc.b `AntiChrist-Text`,0
  4076.  
  4077. even
  4078. ASSText:
  4079. dc.b `ASS Virusprotector V1.0`,0
  4080.  
  4081. even
  4082. ASVText:
  4083. dc.b `ASV V0.000123`,0
  4084.  
  4085. even
  4086. AsylantText:
  4087. dc.b `Asylant`,0
  4088.  
  4089. even
  4090. AustralianParasiteText:
  4091. dc.b `Australian Parasite`,0
  4092.  
  4093. even
  4094. BadBytesText:
  4095. dc.b `Bad Bytes`,0
  4096.  
  4097. even
  4098. BamigaSectorOneText:
  4099. dc.b `Bamiga Sector One`,0
  4100.  
  4101. even
  4102. BBProtText:
  4103. dc.b `BB-Prot`,0
  4104.  
  4105. even
  4106. BeethovenText:
  4107. dc.b `Beethoven`,0
  4108.  
  4109. even
  4110. BestialDevastationText:
  4111. dc.b `Bestial Devastation`,0
  4112.  
  4113. even
  4114. BGS9Text:
  4115. dc.b `BGS 9`,0
  4116.  
  4117. even
  4118. BGS9IIText:
  4119. dc.b `BGS 9 II`,0
  4120.  
  4121. even
  4122. BigBossText:
  4123. dc.b `Big Boss`,0
  4124.  
  4125. even
  4126. BlackflashText:
  4127. dc.b `Blackflash V2.0`,0
  4128.  
  4129. even
  4130. BladeRunnersText:
  4131. dc.b `Blade Runners`,0
  4132.  
  4133. even
  4134. BLFText:
  4135. dc.b `BLF`,0
  4136.  
  4137. even
  4138. BlizzProV31Text:
  4139. dc.b `Blizz Pro V3.1`,0
  4140.  
  4141. even
  4142. BlizzProV33Text:
  4143. dc.b `Blizz Pro V3.3`,0
  4144.  
  4145. even
  4146. BlowJobText:
  4147. dc.b `BlowJob`,0
  4148.  
  4149. even
  4150. BlueboxText:
  4151. dc.b `BlueBox.icon.library`,0
  4152.  
  4153. even
  4154. BootXText:
  4155. dc.b `BootX`,0
  4156.  
  4157. even
  4158. BretHawnesText:
  4159. dc.b `Bret Hawnes`,0
  4160.  
  4161. even
  4162. ButonicText:
  4163. dc.b `Butonic 1.1`,0
  4164.  
  4165. even
  4166. ByteBanditText:
  4167. dc.b `Byte Bandit`,0
  4168.  
  4169. even
  4170. ByteBanditPlusText:
  4171. dc.b `Byte Bandit +`,0
  4172.  
  4173. even
  4174. ByteBandit2Text:
  4175. dc.b `Byte Bandit 2`,0
  4176.  
  4177. even
  4178. ByteBanditturboText:
  4179. dc.b `Byte Bandit turbo`,0
  4180.  
  4181. even
  4182. ByteVoyagerText:
  4183. dc.b `BYTE VOYAGER`,0
  4184.  
  4185. even
  4186. ByteVoyagerIIText:
  4187. dc.b `Byte Voyager II`,0
  4188.  
  4189. even
  4190. ByteWarriorText:
  4191. dc.b `Byte Warrior`,0
  4192.  
  4193. even
  4194. CascadeText:
  4195. dc.b `Cascade`,0
  4196.  
  4197. even
  4198. CCCPText:
  4199. dc.b `CCCP`,0
  4200.  
  4201. even
  4202. ClaasAbrahamText:
  4203. dc.b `Claas Abraham`,0
  4204.  
  4205. even
  4206. ClonkText:
  4207. dc.b `CLONK`,0
  4208.  
  4209. even
  4210. COBRAText:
  4211. dc.b `COBRA`,0
  4212.  
  4213. even
  4214. CodersNightmareText:
  4215. dc.b `Coders Nightmare`,0
  4216.  
  4217. even
  4218. CommodoreText:
  4219. dc.b `Commodore`,0
  4220.  
  4221. even
  4222. CopyLockText:
  4223. dc.b `CopyLock`,0
  4224.  
  4225. even
  4226. ColorText:
  4227. dc.b `Color (TURK V1.3)`,0
  4228.  
  4229. even
  4230. CompuPhagozyteText:
  4231. dc.b `CompuPhagozyte`,0
  4232.  
  4233. even
  4234. CompuPhagozyte2Text:
  4235. dc.b `CompuPhagozyte 2`,0
  4236.  
  4237. even
  4238. CompuPhagozyteIIText:
  4239. dc.b `COMPUPhagozyte II`,0
  4240.  
  4241. even
  4242. CompuPhagozyteIIIText:
  4243. dc.b `CompuPhagozyte III A`,0
  4244.  
  4245. even
  4246. CompuPhagozyteIIIBCText:
  4247. dc.b `CompuPhagozyte III B/C`,0
  4248.  
  4249. even
  4250. CompuPhagozyteIVText:
  4251. dc.b `CompuPhagozyte IV`,0
  4252.  
  4253. even
  4254. CrackerExterminatorText:
  4255. dc.b `Cracker Exterminator`,0
  4256.  
  4257. even
  4258. Crime2Text:
  4259. dc.b `Crime 2`,0
  4260.  
  4261. even
  4262. CrimePlusText:
  4263. dc.b `Crime!++`,0
  4264.  
  4265. even
  4266. DStructureText:
  4267. dc.b `D-Structure`,0
  4268.  
  4269. even
  4270. DAGText:
  4271. dc.b `DAG`,0
  4272.  
  4273. even
  4274. DAGCreatorText:
  4275. dc.b `DAG-Creator`,0
  4276.  
  4277. even
  4278. DarthVaderText:
  4279. dc.b `DARTH VADER 1.1`,0
  4280.  
  4281. even
  4282. DAT89Text:
  4283. dc.b `DAT '89`,0
  4284.  
  4285. even
  4286. DatacrimeText:
  4287. dc.b `Datacrime`,0
  4288.  
  4289. even
  4290. DestructorText:
  4291. dc.b `Destructor V1.2`,0
  4292.  
  4293. even
  4294. DetlefText:
  4295. dc.b `Detlef`,0
  4296.  
  4297. even
  4298. DigitalEmotionsText:
  4299. dc.b `DIGITAL EMOTIONS`,0
  4300.  
  4301. even
  4302. DisasterMasterText:
  4303. dc.b `DISASTER-MASTER V2`,0
  4304.  
  4305. even
  4306. DisgustText:
  4307. dc.b `Disgust`,0
  4308.  
  4309. even
  4310. DiskDoktorsText:
  4311. dc.b `Disk-Doktors`,0
  4312.  
  4313. even
  4314. DISKFurunkelText:
  4315. dc.b `DISK-Furunkel`,0
  4316.  
  4317. even
  4318. DiskguardText:
  4319. dc.b `DISK GUARD V1.0`,0
  4320.  
  4321. even
  4322. DiskHerpesText:
  4323. dc.b `Disk-Herpes`,0
  4324.  
  4325. even
  4326. DiskKillerText:
  4327. dc.b `DISK-KILLER V1.0`,0
  4328.  
  4329. even
  4330. DiskTerminatorText:
  4331. dc.b `Disk-Terminator`,0
  4332.  
  4333. even
  4334. DisktroyerV10Text:
  4335. dc.b `Disktroyer V1.0`,0
  4336.  
  4337. even
  4338. DisktroyerV20Text:
  4339. dc.b `Disktroyer V2.0`,0
  4340.  
  4341. even
  4342. DiskVal1234Text:
  4343. dc.b `Disk-Val1234`,0
  4344.  
  4345. even
  4346. DivinaExterminatorText:
  4347. dc.b `Divina Exterminator`,0
  4348.  
  4349. even
  4350. DMTrashText:
  4351. dc.b `DM-Trash`,0
  4352.  
  4353. even
  4354. DottyText:
  4355. dc.b `Dotty`,0
  4356.  
  4357. even
  4358. DriveInfoText:
  4359. dc.b `Drive Info(Crime!Linkvirus)`,0
  4360.  
  4361. even
  4362. DUMDUMText:
  4363. dc.b `DUMDUM`,0
  4364.  
  4365. even
  4366. ElectroVisionText:
  4367. dc.b `ELECTRO.VISION`,0
  4368.  
  4369. even
  4370. EuropeanText:
  4371. dc.b `European`,0
  4372.  
  4373. even
  4374. ExcrementText:
  4375. dc.b `EXCREMENT`,0
  4376.  
  4377. even
  4378. ExcrementCreatorText:
  4379. dc.b `EXCREMENT Creator`,0
  4380.  
  4381. even
  4382. ExecutorsText:
  4383. dc.b `EXECUTORS`,0
  4384.  
  4385. even
  4386. ExtremeText:
  4387. dc.b `EXTREME`,0
  4388.  
  4389. even
  4390. FASTText:
  4391. dc.b `F.A.S.T`,0
  4392.  
  4393. even
  4394. FastEddieText:
  4395. dc.b `Fast Eddie`,0
  4396.  
  4397. even
  4398. FICAText:
  4399. dc.b `FICA`,0
  4400.  
  4401. even
  4402. ForpibText:
  4403. dc.b `FORPIB`,0
  4404.  
  4405. even
  4406. FreedomText:
  4407. dc.b `Freedom!`,0
  4408.  
  4409. even
  4410. FrityText:
  4411. dc.b `Frity`,0
  4412.  
  4413. even
  4414. fuckdeviceText:
  4415. dc.b `fuck.device`,0
  4416.  
  4417. even
  4418. GadaffiText:
  4419. dc.b `GADAFFI`,0
  4420.  
  4421. even
  4422. GermanyText:
  4423. dc.b `Germany`,0
  4424.  
  4425. even
  4426. GlasnostText:
  4427. dc.b `GLASNOST`,0
  4428.  
  4429. even
  4430. GoldenRiderText:
  4431. dc.b `Golden Rider`,0
  4432.  
  4433. even
  4434. GotchaLamerText:
  4435. dc.b `Gotcha Lamer`,0
  4436.  
  4437. even
  4438. GotchaLamerCreatorText:
  4439. dc.b `Gotcha Lamer Creator`,0
  4440.  
  4441. even
  4442. GraffitiText:
  4443. dc.b `Graffiti`,0
  4444.  
  4445. even
  4446. GremlinText:
  4447. dc.b `Gremlin`,0
  4448.  
  4449. even
  4450. GuardiansBootAidsText:
  4451. dc.b `Guardians BootAids`,0
  4452.  
  4453. even
  4454. GXTeamText:
  4455. dc.b `GX.Team`,0
  4456.  
  4457. even
  4458. GyrosText:
  4459. dc.b `GYROS`,0
  4460.  
  4461. even
  4462. GZUSText:
  4463. dc.b `G-Zus`,0
  4464.  
  4465. even
  4466. HARDEXText:
  4467. dc.b `HARDEX`,0
  4468.  
  4469. even
  4470. HaukeText:
  4471. dc.b `Hauke`,0
  4472.  
  4473. even
  4474. HCSText:
  4475. dc.b `H.C.S`,0
  4476.  
  4477. even
  4478. HCSIIText:
  4479. dc.b `H.C.S II`,0
  4480.  
  4481. even
  4482. HighlanderText:
  4483. dc.b `HIGHLANDER`,0
  4484.  
  4485. even
  4486. HillyText:
  4487. dc.b `Hilly`,0
  4488.  
  4489. even
  4490. HochofenText:
  4491. dc.b `Hochofen`,0
  4492.  
  4493. even
  4494. HODENText:
  4495. dc.b `HODEN V33.17`,0
  4496.  
  4497. even
  4498. IceText:
  4499. dc.b `ICE`,0
  4500.  
  4501. even
  4502. IncognitoText:
  4503. dc.b `Incognito`,0
  4504.  
  4505. even
  4506. IndianaJonesText:
  4507. dc.b `Indiana Jones`,0
  4508.  
  4509. even
  4510. InfectorText:
  4511. dc.b `Infector`,0
  4512.  
  4513. even
  4514. InfluenzaText:
  4515. dc.b `INFLUENZA`,0
  4516.  
  4517. even
  4518. IngerIQText:
  4519. dc.b `Inger IQ`,0
  4520.  
  4521. even
  4522. IngoText:
  4523. dc.b `INGO`,0
  4524.  
  4525. even
  4526. IngosReturnText:
  4527. dc.b `INGOs Return`,0
  4528.  
  4529. even
  4530. IntelText:
  4531. dc.b `INTEL`,0
  4532.  
  4533. even
  4534. IRQText:
  4535. dc.b `IRQ`,0
  4536.  
  4537. even
  4538. JeffBUTONICV131Text:
  4539. dc.b `Jeff BUTONIC V1.31`,0
  4540.  
  4541. even
  4542. JeffBUTONICV300Text:
  4543. dc.b `Jeff BUTONIC V3.00`,0
  4544.  
  4545. even
  4546. JITRText:
  4547. dc.b `JITR`,0
  4548.  
  4549. even
  4550. JoshuaText:
  4551. dc.b `Joshua`,0
  4552.  
  4553. even
  4554. Joshua2Text:
  4555. dc.b `Joshua 2`,0
  4556.  
  4557. even
  4558. JulieText:
  4559. dc.b `Julie`,0
  4560.  
  4561. even
  4562. KaukiText:
  4563. dc.b `Kauki`,0
  4564.  
  4565. even
  4566. KefrensText:
  4567. dc.b `Kefrens`,0
  4568.  
  4569. even
  4570. KilledText:
  4571. dc.b `Killed`,0
  4572.  
  4573. even
  4574. LADSText:
  4575. dc.b `LADS`,0
  4576.  
  4577. even
  4578. LAMEText:
  4579. dc.b `LAME`,0
  4580.  
  4581. even
  4582. LameBlameText:
  4583. dc.b `Lame Blame!`,0
  4584.  
  4585. even
  4586. LamerExterminatoroldText:
  4587. dc.b `old LAMER Exterminator`,0
  4588.  
  4589. even
  4590. LamerExterminatoroldIIIText:
  4591. dc.b `(old) LAMER Exterminator (III)`,0
  4592.  
  4593. even
  4594. LamerExterminatornewText:
  4595. dc.b `new Lamer Exterminator`,0
  4596.  
  4597. even
  4598. LamerExterminatorIText:
  4599. dc.b `LAMER Exterminator I`,0
  4600.  
  4601. even
  4602. LamerExterminatorIIText:
  4603. dc.b `LAMER Exterminator II`,0
  4604.  
  4605. LamerExterminatorIIIText:
  4606. dc.b `LAMER Exterminator III`,0
  4607.  
  4608. even
  4609. LamerExterminatorIVText:
  4610. dc.b `LAMER Exterminator IV`,0
  4611.  
  4612. even
  4613. LamerExterminatorIVVText:
  4614. dc.b `LAMER Exterminator IV or V`,0
  4615.  
  4616. even
  4617. LamerExterminatorVText:
  4618. dc.b `LAMER Exterminator V`,0
  4619.  
  4620. even
  4621. LamerExterminatorVIText:
  4622. dc.b `LAMER Exterminator VI`,0
  4623.  
  4624. even
  4625. LamerExterminatorVIItext:
  4626. dc.b `LAMER Exterminator VII`,0
  4627.  
  4628. even
  4629. LamerExterminatorVIIIText:
  4630. dc.b `LAMER Exterminator VIII`,0
  4631.  
  4632. even
  4633. LamerLoadWBText:
  4634. dc.b `LAMER LoadWB`,0
  4635.  
  4636. even
  4637. LamerVirusXText:
  4638. dc.b `LAMER VirusX`,0
  4639.  
  4640. even
  4641. Liberatorv121Text:
  4642. dc.b `Liberator v1.21`,0
  4643.  
  4644. even
  4645. Liberatorv30Text:
  4646. dc.b `Liberator v3.0`,0
  4647.  
  4648. even
  4649. Liberatorv501Text:
  4650. dc.b `Liberator v5.01`,0
  4651.  
  4652. even
  4653. LOOMText:
  4654. dc.b `LOOM`,0
  4655.  
  4656. even
  4657. LoverboySexmachineText:
  4658. dc.b `Loverboy & Sexmachine`,0
  4659.  
  4660. even
  4661. LSDText:
  4662. dc.b `LSD`,0
  4663.  
  4664. even
  4665. MADText:
  4666. dc.b `MAD`,0
  4667.  
  4668. even
  4669. MADIIText:
  4670. dc.b `MAD II`,0
  4671.  
  4672. even
  4673. MallanderText:
  4674. dc.b `MALLANDER V1.0`,0
  4675.  
  4676. even
  4677. MENEMSREVENGEText:
  4678. dc.b `MENEMs REVENGE`,0
  4679.  
  4680. even
  4681. MEXXText:
  4682. dc.b `MEXX`,0
  4683.  
  4684. even
  4685. MGM89Text:
  4686. dc.b `MGM 89`,0
  4687.  
  4688. even
  4689. MICROSYSTEMSText:
  4690. dc.b `MICROSYSTEMS`,0
  4691.  
  4692. even
  4693. ModemCheckerText:
  4694. dc.b `MODEMCHECKER`,0
  4695.  
  4696. even
  4697. ModemCheckerLoadWBText:
  4698. dc.b `MODEMCHECKER LoadWB`,0
  4699.  
  4700. even
  4701. MOSHText:
  4702. dc.b `MOSH`,0
  4703.  
  4704. even
  4705. MOSH2Text:
  4706. dc.b `MOSH 2`,0
  4707.  
  4708. even
  4709. MutilatorText:
  4710. dc.b `Mutilator`,0
  4711.  
  4712. even
  4713. NANOoldText:
  4714. dc.b `old NANO`,0
  4715.  
  4716. even
  4717. NanonewText:
  4718. dc.b `Nano (new)`,0
  4719.  
  4720. even
  4721. NaSTText:
  4722. dc.b `NaST`,0
  4723.  
  4724. even
  4725. NastyNastyText:
  4726. dc.b `Nasty-nasty`,0
  4727.  
  4728. even
  4729. NoGuruV20Text:
  4730. dc.b `No Guru V2.0`,0
  4731.  
  4732. even
  4733. NorthStarText:
  4734. dc.b `NORTH STAR`,0
  4735.  
  4736. even
  4737. NorthStarIIText:
  4738. dc.b `NORTH STAR II`,0
  4739.  
  4740. even
  4741. ObeliskText:
  4742. dc.b `OBELISK`,0
  4743.  
  4744. even
  4745. Obelisk2Text:
  4746. dc.b `OBELISK 2`,0
  4747.  
  4748. even
  4749. OPAPAText:
  4750. dc.b `OPAPA`,0
  4751.  
  4752. even
  4753. OverkillText:
  4754. dc.b `Overkill`,0
  4755.  
  4756. even
  4757. PARATAXIText:
  4758. dc.b `PARATAX I`,0
  4759.  
  4760. even
  4761. PARATAXIIText:
  4762. dc.b `PARATAX II`,0
  4763.  
  4764. even
  4765. PARATAXIIIText:
  4766. dc.b `PARATAX III`,0
  4767.  
  4768. even
  4769. PayDayText:
  4770. dc.b `PayDay`,0
  4771.  
  4772. even
  4773. PentagonSlayerText:
  4774. dc.b `Pentagon-Slayer`,0
  4775.  
  4776. even
  4777. PentagonSlayer2Text:
  4778. dc.b `Pentagon-Slayer 2`,0
  4779.  
  4780. even
  4781. PentagonSlayer3Text:
  4782. dc.b `Pentagon-Slayer 3`,0
  4783.  
  4784. even
  4785. PlastiqueText:
  4786. dc.b `Plastique`,0
  4787.  
  4788. even
  4789. PPBombText:
  4790. dc.b `PP-Bomb`,0
  4791.  
  4792. even
  4793. QRDLText:
  4794. dc.b `QRDL 1.1`,0
  4795.  
  4796. even
  4797. RedOctoberText:
  4798. dc.b `Red October 1.7`,0
  4799.  
  4800. even
  4801. REPText:
  4802. dc.b `REP!`,0
  4803.  
  4804. even
  4805. ReturnoftheLamerExterminatorText:
  4806. dc.b `Return of the Lamer Exterminator`,0
  4807.  
  4808. even
  4809. RevengeBootloaderText:
  4810. dc.b `Revenge Bootloader`,0
  4811.  
  4812. even
  4813. RevengeOfTheLamerExterminatorText:
  4814. dc.b `Revenge Of The LAMER Exterminator`,0
  4815.  
  4816. even
  4817. RevengeOfTheLamerExterminator2Text:
  4818. dc.b `Revenge Of The LAMER Exterminator 2`,0
  4819.  
  4820. even
  4821. REVENGEText:
  4822. dc.b `REVENGE V1.2`,0
  4823.  
  4824. even
  4825. RISCText:
  4826. dc.b `RISC`,0
  4827.  
  4828. even
  4829. SachsenText:
  4830. dc.b `SACHSEN No.1`,0
  4831.  
  4832. even
  4833. SADDAMText:
  4834. dc.b `SADDAM`,0
  4835.  
  4836. even
  4837. SADDAMHUSSEINText:
  4838. dc.b `SADDAM HUSSEIN`,0
  4839.  
  4840. even
  4841. SaoPauloText:
  4842. dc.b `Sao Paulo`,0
  4843.  
  4844. even
  4845. SATANText:
  4846. dc.b `SATAN`,0
  4847.  
  4848. even
  4849. SCAText:
  4850. dc.b `SCA`,0
  4851.  
  4852. even
  4853. SCARFACEText:
  4854. dc.b `SCARFACE`,0
  4855.  
  4856. even
  4857. SendarionText:
  4858. dc.b `Sendarion #1`,0
  4859.  
  4860. even
  4861. SEPULTURAText:
  4862. dc.b `SEPULTURA`,0
  4863.  
  4864. even
  4865. SherlockText:
  4866. dc.b `Sherlock2.0`,0
  4867.  
  4868. even
  4869. ShitText:
  4870. dc.b `Shit`,0
  4871.  
  4872. even
  4873. ShowSysopText:
  4874. dc.b `ShowSysop`,0
  4875.  
  4876. even
  4877. SmilyCancerText:
  4878. dc.b `Smily Cancer`,0
  4879.  
  4880. even
  4881. SmilyCancerLoadWBText:
  4882. dc.b `Smily Cancer LoadWB`,0
  4883.  
  4884. even
  4885. SnoopDosText:
  4886. dc.b `SnoopDos 1.6`,0
  4887.  
  4888. even
  4889. SonjaText:
  4890. dc.b `Sonja`,0
  4891.  
  4892. even
  4893. SSText:
  4894. dc.b `SS`,0
  4895.  
  4896. even
  4897. SSIIText:
  4898. dc.b `SS II`,0
  4899.  
  4900. even
  4901. SuicideMachineText:
  4902. dc.b `Suicide Machine`,0
  4903.  
  4904. even
  4905. SuperboyText:
  4906. dc.b `Superboy`,0
  4907.  
  4908. even
  4909. SupplyTeamText:
  4910. dc.b `Supply Team`,0
  4911.  
  4912. even
  4913. SystemZV30Text:
  4914. dc.b `System Z V3.0`,0
  4915.  
  4916. even
  4917. systemZV40Text:
  4918. dc.b `System Z V4.0`,0
  4919.  
  4920. even
  4921. SystemZV50Text:
  4922. dc.b `System Z V5.0`,0
  4923.  
  4924. even
  4925. SystemZV51Text:
  4926. dc.b `System Z V5.1`,0
  4927.  
  4928. even
  4929. SystemZV53Text:
  4930. dc.b `System Z V5.3`,0
  4931.  
  4932. even
  4933. SystemZV54Text:
  4934. dc.b `System Z V5.4`,0
  4935.  
  4936. even
  4937. SystemZV61Text:
  4938. dc.b `System Z V6.1`,0
  4939.  
  4940. even
  4941. SystemZV64Text:
  4942. dc.b `System Z V6.4`,0
  4943.  
  4944. even
  4945. SystemZV65Text:
  4946. dc.b `System Z V6.5`,0
  4947.  
  4948. even
  4949. TargetText:
  4950. dc.b `TARGET`,0
  4951.  
  4952. even
  4953. TelecomText:
  4954. dc.b `Telecom`,0
  4955.  
  4956. even
  4957. TelStarText:
  4958. dc.b `TelStar`,0
  4959.  
  4960. even
  4961. TermigatorText:
  4962. dc.b `Termigator`,0
  4963.  
  4964. even
  4965. TerroristsText:
  4966. dc.b `Terrorists`,0
  4967.  
  4968. even
  4969. TFCRevengeText:
  4970. dc.b `T.F.C. Revenge`,0
  4971.  
  4972. even
  4973. TFCRevengeLoadWBText:
  4974. dc.b `T.F.C. Revenge LoadWB`,0
  4975.  
  4976. even
  4977. TimeBombText:
  4978. dc.b `TIME BOMB 1.0`,0
  4979.  
  4980. even
  4981. TimeBombV09Text:
  4982. dc.b `TIME BOMB V0.9`,0
  4983.  
  4984. even
  4985. TNKText:
  4986. dc.b `TNK!`,0
  4987.  
  4988. even
  4989. TomatesGentechnic10Text:
  4990. dc.b `TOMATES GENTECHNIC 1.0`,0
  4991.  
  4992. even
  4993. TomatesGentechnic20Text:
  4994. dc.b `TOMATES GENTECHNIC 2.0`,0
  4995.  
  4996. even
  4997. TravelingJackText:
  4998. dc.b `Traveling Jack`,0
  4999.  
  5000. even
  5001. TravelingJack2Text:
  5002. dc.b `Traveling Jack 2`,0
  5003.  
  5004. even
  5005. TravelingJackTextText:
  5006. dc.b `Traveling Jack-Text`,0
  5007.  
  5008. even
  5009. TURKText:
  5010. dc.b `TURK V1.3`,0
  5011.  
  5012. even
  5013. UltrafoxText:
  5014. dc.b `Ultrafox`,0
  5015.  
  5016. even
  5017. UKLamerStyleText:
  5018. dc.b `UK Lamer Style`,0
  5019.  
  5020. USSR492Text:
  5021. dc.b `USSR 492`,0
  5022.  
  5023. even
  5024. VCCofTNTText:
  5025. dc.b `VCC of TNT`,0
  5026.  
  5027. even
  5028. VIPHSText:
  5029. dc.b `VIPHS`,0
  5030.  
  5031. even
  5032. VirusConstructionSetText:
  5033. dc.b `Virus Construction Set`,0
  5034.  
  5035. even
  5036. VirusConstructionSetBootblockText:
  5037. dc.b `Virus Construction Set-Bootblock`,0
  5038.  
  5039. even
  5040. VirusSlayerText:
  5041. dc.b `Virus Slayer`,0
  5042.  
  5043. even
  5044. VirusV1Text:
  5045. dc.b `Virus V1`,0
  5046.  
  5047. even
  5048. WAFTText:
  5049. dc.b `WAFT`,0
  5050.  
  5051. even
  5052. WahnfriedText:
  5053. dc.b `WAHNFRIED`,0
  5054.  
  5055. even
  5056. WARHAWKText:
  5057. dc.b `WARHAWK`,0
  5058.  
  5059. even
  5060. WarsawAvengerText:
  5061. dc.b `Warsaw Avenger`,0
  5062.  
  5063. even
  5064. XenoText:
  5065. dc.b `Xeno`,0
  5066.  
  5067. even
  5068. xprzspeedV32Text:
  5069. dc.b `xprzspeed V3.2`,0
  5070.  
  5071. even
  5072. ZaccessV10Text:
  5073. dc.b `ZACCESS V1.0`,0
  5074.  
  5075. even
  5076. ZaccessV20Text:
  5077. dc.b `ZACCESS V2.0`,0
  5078.  
  5079. even
  5080. ZaccessV30Text:
  5081. dc.b `ZACCESS V3.0`,0
  5082.  
  5083. even
  5084. ZenkerText:
  5085. dc.b `ZENKER`,0
  5086.  
  5087. even
  5088. ZESTText:
  5089. dc.b `Z.E.S.T`,0
  5090.  
  5091. even
  5092. ZLXText:
  5093. dc.b `ZLX!`,0
  5094.  
  5095. even
  5096. ZombiText:
  5097. dc.b `Zombi I`,0
  5098.  
  5099.